Example usage for com.google.gwt.i18n.client DateTimeFormat getMediumDateTimeFormat

List of usage examples for com.google.gwt.i18n.client DateTimeFormat getMediumDateTimeFormat

Introduction

In this page you can find the example usage for com.google.gwt.i18n.client DateTimeFormat getMediumDateTimeFormat.

Prototype

@Deprecated
public static DateTimeFormat getMediumDateTimeFormat() 

Source Link

Document

Retrieve the DateTimeFormat object for medium date and time format.

Usage

From source file:ccc.client.gwt.views.gxt.HistoryDialog.java

License:Open Source License

/** {@inheritDoc} */
@Override//from  w w w .  j a  v  a2  s  .c o m
protected ColumnModel defineColumnModel() {

    final List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    final ColumnConfig userColumn = new ColumnConfig(Revision.Properties.USERNAME, getUiConstants().user(),
            100);
    configs.add(userColumn);

    final ColumnConfig timeColumn = new ColumnConfig(Revision.Properties.HAPPENED_ON, getUiConstants().time(),
            150);
    timeColumn.setDateTimeFormat(DateTimeFormat.getMediumDateTimeFormat());
    configs.add(timeColumn);

    final ColumnConfig majorEditColumn = new ColumnConfig(Revision.Properties.IS_MAJOR_EDIT,
            getUiConstants().majorEdit(), 70);
    configs.add(majorEditColumn);

    final ColumnConfig commentColumn = new ColumnConfig();
    commentColumn.setId(Revision.Properties.COMMENT);
    commentColumn.setHeader(getUiConstants().comment());
    configs.add(commentColumn);

    final ColumnModel cm = new ColumnModel(configs);
    return cm;
}

From source file:ccc.client.gwt.widgets.CommentTable.java

License:Open Source License

private List<ColumnConfig> createColumnConfigs(final ContextActionGridPlugin gp) {

    final List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
    configs.add(gp);/*ww  w.  j  a  va 2s.  c o m*/

    final ColumnConfig authorColumn = new ColumnConfig();
    authorColumn.setId(Comment.Properties.AUTHOR);
    authorColumn.setHeader(UI_CONSTANTS.author());
    authorColumn.setWidth(COLUMN_WIDTH);
    configs.add(authorColumn);

    final ColumnConfig urlColumn = new ColumnConfig();
    urlColumn.setId(Comment.Properties.URL);
    urlColumn.setHeader(UI_CONSTANTS.url());
    urlColumn.setWidth(COLUMN_WIDTH);
    configs.add(urlColumn);

    final ColumnConfig timestampColumn = new ColumnConfig();
    timestampColumn.setDateTimeFormat(DateTimeFormat.getMediumDateTimeFormat());
    timestampColumn.setId(Comment.Properties.DATE_CREATED);
    timestampColumn.setHeader(UI_CONSTANTS.dateCreated());
    timestampColumn.setWidth(COLUMN_WIDTH);
    configs.add(timestampColumn);

    final ColumnConfig statusColumn = new ColumnConfig();
    statusColumn.setId(Comment.Properties.STATUS);
    statusColumn.setHeader(UI_CONSTANTS.status());
    statusColumn.setWidth(COLUMN_WIDTH);
    configs.add(statusColumn);

    return configs;
}

From source file:com.extjs.gxt.samples.client.examples.organizer.ImageOrganizerExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    LayoutContainer container = new LayoutContainer();
    container.setStyleAttribute("margin", "20px");
    container.setSize(650, 300);/*from   w w  w .java  2  s.c  om*/
    container.setBorders(true);
    container.setLayout(new BorderLayout());

    ContentPanel west = new ContentPanel();
    west.setHeading("My Albums");

    ToolBar toolBar = new ToolBar();
    Button newAlbum = new Button("New Album");
    newAlbum.setIcon(Resources.ICONS.album());
    newAlbum.addSelectionListener(new SelectionListener<ButtonEvent>() {
        @Override
        public void componentSelected(ButtonEvent ce) {
            MessageBox.prompt("New Album", "Enter the new album name:", new Listener<MessageBoxEvent>() {
                public void handleEvent(MessageBoxEvent be) {
                    if (be.getButtonClicked().getItemId().equals(Dialog.OK) && be.getValue() != null) {
                        tree.getStore().add(createAlbum(be.getValue()), false);
                        tree.setLeaf(
                                tree.getStore().getRootItems().get(tree.getStore().getRootItems().size() - 1),
                                false);
                    }
                }
            });
        }
    });
    toolBar.add(newAlbum);
    west.setTopComponent(toolBar);

    TreeStore<ModelData> treeStore = new TreeStore<ModelData>();

    tree = new TreePanel<ModelData>(treeStore);
    tree.setDisplayProperty("name");

    tree.getStyle().setLeafIcon(IconHelper.create("user"));
    tree.getStyle().setNodeCloseIcon(IconHelper.create("icon-album"));
    tree.getStyle().setNodeOpenIcon(IconHelper.create("icon-album"));
    west.add(tree);

    treeStore.add(createAlbum("Album 1"), false);
    tree.setLeaf(treeStore.getRootItems().get(0), false);

    BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 200, 100, 300);
    westData.setMargins(new Margins(5, 0, 5, 5));
    westData.setSplit(true);
    container.add(west, westData);

    ContentPanel center = new ContentPanel();
    center.setHeading("My Images");
    //    center.setScrollMode(Scroll.AUTO);
    center.setLayout(new FitLayout());

    BorderLayoutData centerData = new BorderLayoutData(LayoutRegion.CENTER);
    centerData.setMargins(new Margins(5));
    container.add(center, centerData);

    final ExampleServiceAsync service = (ExampleServiceAsync) Registry.get(Examples.SERVICE);

    RpcProxy<List<Photo>> proxy = new RpcProxy<List<Photo>>() {
        @Override
        protected void load(Object loadConfig, AsyncCallback<List<Photo>> callback) {
            service.getPhotos(callback);
        }
    };

    ListLoader<ListLoadResult<BeanModel>> loader = new BaseListLoader<ListLoadResult<BeanModel>>(proxy,
            new BeanModelReader());
    ListStore<BeanModel> store = new ListStore<BeanModel>(loader);
    loader.load();

    ListView<BeanModel> view = new ListView<BeanModel>() {
        @Override
        protected BeanModel prepareData(BeanModel model) {
            Photo photo = model.getBean();
            long size = photo.getSize() / 1000;
            model.set("shortName", Format.ellipse(photo.getName(), 15));
            model.set("sizeString", NumberFormat.getFormat("#0").format(size) + "k");
            model.set("dateString", DateTimeFormat.getMediumDateTimeFormat().format(photo.getDate()));
            model.set("path", GWT.getHostPageBaseURL() + photo.getPath());
            return model;
        }
    };
    view.setId("img-chooser-view");
    view.setTemplate(getTemplate());
    view.setBorders(false);
    view.setStore(store);
    view.setItemSelector("div.thumb-wrap");

    center.add(view);

    new ListViewDragSource(view);

    TreePanelDropTarget target = new TreePanelDropTarget(tree) {
        @SuppressWarnings("rawtypes")
        @Override
        protected void handleAppendDrop(DNDEvent event, TreeNode item) {
            List<BeanModel> sel = event.getData();
            for (BeanModel bean : sel) {
                ModelData m = new BaseModelData();
                for (String s : bean.getPropertyNames()) {
                    m.set(s, bean.get(s));
                }
                tree.getStore().add(item.getModel(), m, false);
            }
        }

    };
    target.setOperation(Operation.COPY);
    target.setFeedback(Feedback.APPEND);

    add(container);
}

From source file:com.extjs.gxt.samples.client.examples.treegrid.AsyncTreeGridExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FlowLayout(10));

    final FileServiceAsync service = (FileServiceAsync) Registry.get(Examples.FILE_SERVICE);

    // data proxy
    RpcProxy<List<FileModel>> proxy = new RpcProxy<List<FileModel>>() {
        @Override//from w ww.ja v  a2  s  .  com
        protected void load(Object loadConfig, AsyncCallback<List<FileModel>> callback) {
            service.getFolderChildren((FileModel) loadConfig, callback);
        }
    };

    // tree loader
    final TreeLoader<FileModel> loader = new BaseTreeLoader<FileModel>(proxy) {
        @Override
        public boolean hasChildren(FileModel parent) {
            return parent instanceof FolderModel;
        }
    };

    // trees store
    final TreeStore<FileModel> store = new TreeStore<FileModel>(loader);
    store.setStoreSorter(new StoreSorter<FileModel>() {

        @Override
        public int compare(Store<FileModel> store, FileModel m1, FileModel m2, String property) {
            boolean m1Folder = m1 instanceof FolderModel;
            boolean m2Folder = m2 instanceof FolderModel;

            if (m1Folder && !m2Folder) {
                return -1;
            } else if (!m1Folder && m2Folder) {
                return 1;
            }

            return super.compare(store, m1, m2, property);
        }
    });

    ColumnConfig name = new ColumnConfig("name", "Name", 100);
    name.setRenderer(new TreeGridCellRenderer<ModelData>());

    ColumnConfig date = new ColumnConfig("date", "Date", 100);
    date.setDateTimeFormat(DateTimeFormat.getMediumDateTimeFormat());

    ColumnConfig size = new ColumnConfig("size", "Size", 100);

    ColumnModel cm = new ColumnModel(Arrays.asList(name, date, size));

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);
    cp.setHeading("Async TreeGrid");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setFrame(true);
    cp.setSize(600, 300);

    TreeGrid<ModelData> tree = new TreeGrid<ModelData>(store, cm);
    tree.setStateful(true);
    // stateful components need a defined id
    tree.setId("statefullasynctreegrid");
    store.setKeyProvider(new ModelKeyProvider<FileModel>() {

        public String getKey(FileModel model) {
            return model.<String>get("id");
        }

    });
    tree.setBorders(true);
    tree.getStyle().setLeafIcon(IconHelper.createStyle("icon-page"));
    tree.setSize(400, 400);
    tree.setAutoExpandColumn("name");
    tree.setTrackMouseOver(false);
    cp.add(tree);

    ToolTipConfig config = new ToolTipConfig();
    config.setTitle("Example Information");
    config.setShowDelay(1);
    config.setText(
            "In this example state has been enabled for the treegrid. When enabled, the expand state of the treegrid is "
                    + "saved and restored using the StateManager. Try refreshing the browser after expanding some nodes in the "
                    + "treegrid. Notice that this works with asynchronous loading of nodes.");

    ToolButton btn = new ToolButton("x-tool-help");
    btn.setToolTip(config);

    cp.getHeader().addTool(btn);

    add(cp);
}

From source file:com.extjs.gxt.samples.client.examples.treegrid.RemoteSortTreeGridExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FlowLayout(10));

    final FileServiceAsync service = (FileServiceAsync) Registry.get(Examples.FILE_SERVICE);

    // data proxy
    RpcProxy<List<FileModel>> proxy = new RpcProxy<List<FileModel>>() {
        @Override//  w  w w  . ja v  a  2  s.  c o m
        protected void load(Object loadConfig, AsyncCallback<List<FileModel>> callback) {
            service.getFolderChildren((RemoteSortTreeLoadConfig) loadConfig, callback);
        }
    };

    // tree loader
    final RemoteSortTreeLoader<FileModel> loader = new BaseRemoteSortTreeLoader<FileModel>(proxy) {
        @Override
        public boolean hasChildren(FileModel parent) {
            return parent instanceof FolderModel;
        }
    };
    loader.setRemoteSort(true);

    // trees store
    TreeStore<FileModel> store = new TreeStore<FileModel>(loader);

    ColumnConfig name = new ColumnConfig("name", "Name", 100);
    name.setRenderer(new TreeGridCellRenderer<ModelData>());

    ColumnConfig date = new ColumnConfig("date", "Date", 140);
    date.setDateTimeFormat(DateTimeFormat.getMediumDateTimeFormat());

    ColumnConfig size = new ColumnConfig("size", "Size", 100);

    ColumnModel cm = new ColumnModel(Arrays.asList(name, date, size));

    ContentPanel cp = new ContentPanel();
    cp.setHeading("RemoteSort TreeGrid With State");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setFrame(true);
    cp.setSize(600, 300);

    final TreeGrid<ModelData> tree = new TreeGrid<ModelData>(store, cm);

    // by providing a key provider and enabling state, the trees expand state
    // will be restored when refreshing the page and also after sorting.
    tree.setStateful(true);
    // stateful components need a defined id
    tree.setId("statefullremotesorttreegrid");
    store.setKeyProvider(new ModelKeyProvider<FileModel>() {

        public String getKey(FileModel model) {
            return (String) model.get("id");
        }

    });
    tree.setBorders(true);
    tree.getStyle().setLeafIcon(IconHelper.createStyle("icon-page"));
    tree.setAutoExpandColumn("name");
    tree.setTrackMouseOver(false);
    cp.add(tree);

    ToolBar toolbar = new ToolBar();
    Button btn = new Button("Clear State");
    btn.addSelectionListener(new SelectionListener<ButtonEvent>() {
        @Override
        public void componentSelected(ButtonEvent ce) {
            tree.clearState();
        }
    });
    toolbar.add(btn);
    btn = new Button("Reload");
    btn.addSelectionListener(new SelectionListener<ButtonEvent>() {
        @Override
        public void componentSelected(ButtonEvent ce) {
            loader.load();
        }
    });
    toolbar.add(btn);
    cp.setTopComponent(toolbar);

    add(cp);
}

From source file:com.extjs.gxt.samples.client.examples.view.ImageChooserExample.java

License:Open Source License

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    detailTp = XTemplate.create(getDetailTemplate());

    final ExampleServiceAsync service = (ExampleServiceAsync) Registry.get(Examples.SERVICE);

    RpcProxy<List<Photo>> proxy = new RpcProxy<List<Photo>>() {
        @Override//w  ww . j  a  va 2  s.c  o m
        protected void load(Object loadConfig, AsyncCallback<List<Photo>> callback) {
            service.getPhotos(callback);
        }
    };

    ListLoader<ListLoadResult<BeanModel>> loader = new BaseListLoader<ListLoadResult<BeanModel>>(proxy,
            new BeanModelReader());
    store = new ListStore<BeanModel>(loader);
    loader.load();

    chooser = new Dialog();
    chooser.setId("img-chooser-dlg");
    chooser.setHeading("Choose an Image");
    chooser.setMinWidth(500);
    chooser.setMinHeight(300);
    chooser.setModal(true);
    chooser.setLayout(new BorderLayout());
    chooser.setBodyStyle("border: none;background: none");
    chooser.setBodyBorder(false);
    chooser.setButtons(Dialog.OKCANCEL);
    chooser.setHideOnButtonClick(true);
    chooser.addListener(Events.Hide, new Listener<WindowEvent>() {
        public void handleEvent(WindowEvent be) {
            BeanModel model = view.getSelectionModel().getSelectedItem();
            if (model != null) {
                Photo photo = model.getBean();
                if (be.getButtonClicked() == chooser.getButtonById("ok")) {
                    image.setUrl(photo.getPath());
                    image.setVisible(true);
                }
            }
        }
    });

    ContentPanel main = new ContentPanel();
    main.setBorders(true);
    main.setBodyBorder(false);
    main.setLayout(new FitLayout());
    main.setHeaderVisible(false);

    ToolBar bar = new ToolBar();
    bar.add(new LabelToolItem("Filter:"));

    StoreFilterField<BeanModel> field = new StoreFilterField<BeanModel>() {
        @Override
        protected boolean doSelect(Store<BeanModel> store, BeanModel parent, BeanModel record, String property,
                String filter) {
            Photo photo = record.getBean();
            String name = photo.getName().toLowerCase();
            if (name.indexOf(filter.toLowerCase()) != -1) {
                return true;
            }
            return false;
        }

        @Override
        protected void onFilter() {
            super.onFilter();
            view.getSelectionModel().select(0, false);
        }

    };
    field.setWidth(100);
    field.bind(store);

    bar.add(field);
    bar.add(new SeparatorToolItem());
    bar.add(new LabelToolItem("Sort By:"));

    sort = new SimpleComboBox<String>();
    sort.setTriggerAction(TriggerAction.ALL);
    sort.setEditable(false);
    sort.setForceSelection(true);
    sort.setWidth(90);
    sort.add("Name");
    sort.add("File Size");
    sort.add("Last Modified");
    sort.setSimpleValue("Name");
    sort.addListener(Events.Select, new Listener<FieldEvent>() {
        public void handleEvent(FieldEvent be) {
            sort();
        }
    });

    bar.add(sort);

    main.setTopComponent(bar);

    view = new ListView<BeanModel>() {
        @Override
        protected BeanModel prepareData(BeanModel model) {
            Photo photo = model.getBean();
            long size = photo.getSize() / 1000;
            model.set("shortName", Format.ellipse(photo.getName(), 15));
            model.set("sizeString", NumberFormat.getFormat("#0").format(size) + "k");
            model.set("dateString", DateTimeFormat.getMediumDateTimeFormat().format(photo.getDate()));
            model.set("modPath", GWT.getHostPageBaseURL() + photo.getPath());
            return model;
        }
    };
    view.setId("img-chooser-view");
    view.setTemplate(getTemplate());
    view.setBorders(false);
    view.setStore(store);
    view.setItemSelector("div.thumb-wrap");
    view.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
    view.getSelectionModel().addListener(Events.SelectionChange,
            new Listener<SelectionChangedEvent<BeanModel>>() {
                public void handleEvent(SelectionChangedEvent<BeanModel> be) {
                    onSelectionChange(be);
                }
            });
    main.add(view);

    details = new LayoutContainer();
    details.setBorders(true);
    details.setStyleAttribute("backgroundColor", "white");

    BorderLayoutData eastData = new BorderLayoutData(LayoutRegion.EAST, 150, 150, 250);
    eastData.setSplit(true);

    BorderLayoutData centerData = new BorderLayoutData(LayoutRegion.CENTER);
    centerData.setMargins(new Margins(0, 5, 0, 0));

    chooser.add(main, centerData);
    chooser.add(details, eastData);

    setLayout(new FlowLayout(10));
    add(new Button("Choose", new SelectionListener<ButtonEvent>() {
        @Override
        public void componentSelected(ButtonEvent ce) {
            chooser.show();
            view.getSelectionModel().select(0, false);
        }
    }));

    image = new Image();
    image.getElement().getStyle().setProperty("marginTop", "10px");
    image.setVisible(false);
    add(image);
}

From source file:com.google.appinventor.client.explorer.commands.BuildCommand.java

License:Open Source License

@Override
public void execute(final ProjectNode node) {
    final Ode ode = Ode.getInstance();
    final MessagesOutput messagesOutput = MessagesOutput.getMessagesOutput();
    messagesOutput.clear();/*from ww w  .j  a va  2  s . c  om*/
    messagesOutput.addMessages(MESSAGES.buildRequestedMessage(node.getName(),
            DateTimeFormat.getMediumDateTimeFormat().format(new Date())));

    OdeAsyncCallback<RpcResult> callback = new OdeAsyncCallback<RpcResult>(
            // failure message
            MESSAGES.buildError()) {
        @Override
        public void onSuccess(RpcResult result) {
            messagesOutput.addMessages(result.getOutput());
            messagesOutput.addMessages(result.getError());
            Tracking.trackEvent(Tracking.PROJECT_EVENT, Tracking.PROJECT_SUBACTION_BUILD_YA, node.getName(),
                    getElapsedMillis());
            if (result.succeeded()) {
                executeNextCommand(node);
            } else {
                // The result is the HTTP response code from the build server.
                int responseCode = result.getResult();
                switch (responseCode) {
                case Response.SC_SERVICE_UNAVAILABLE:
                    // SC_SERVICE_UNAVAILABLE (response code 503), means that the build server is too busy
                    // at this time to accept this build request.
                    // We use ErrorReporter.reportInfo so that the message has yellow background instead of
                    // red background.
                    ErrorReporter.reportInfo(MESSAGES.buildServerBusyError());
                    break;
                case Response.SC_CONFLICT:
                    // SC_CONFLICT (response code 409), means that the build server is running a
                    // different version of the App Inventor code.
                    // We use ErrorReporter.reportInfo so that the message has yellow background instead
                    // of red background.
                    ErrorReporter.reportInfo(MESSAGES.buildServerDifferentVersion());
                    break;
                default:
                    String errorMsg = result.getError();
                    // This is not an internal App Inventor bug. The error is reported as info so that
                    // the red background is not shown.
                    ErrorReporter.reportInfo(
                            MESSAGES.buildFailedError() + (errorMsg.isEmpty() ? "" : " " + errorMsg));
                    break;
                }
                executionFailedOrCanceled();
            }
        }

        @Override
        public void onFailure(Throwable caught) {
            super.onFailure(caught);
            executionFailedOrCanceled();
        }
    };

    String nonce = ode.generateNonce();
    ode.getProjectService().build(node.getProjectId(), nonce, target, callback);
}

From source file:com.google.appinventor.client.explorer.commands.BuildEclipseProjectCommand.java

License:Open Source License

@Override
public void execute(final ProjectNode node) {
    final Ode ode = Ode.getInstance();
    final MessagesOutput messagesOutput = MessagesOutput.getMessagesOutput();
    messagesOutput.clear();//from   w  w w.  j a  v  a 2  s  .  c  o m
    messagesOutput.addMessages(MESSAGES.buildRequestedMessage(node.getName(),
            DateTimeFormat.getMediumDateTimeFormat().format(new Date())));

    OdeAsyncCallback<RpcResult> callback = new OdeAsyncCallback<RpcResult>(
            // failure message
            MESSAGES.buildError()) {
        @Override
        public void onSuccess(RpcResult result) {
            messagesOutput.addMessages(result.getOutput());
            messagesOutput.addMessages(result.getError());
            Tracking.trackEvent(Tracking.PROJECT_EVENT, Tracking.PROJECT_SUBACTION_BUILD_YA, node.getName(),
                    getElapsedMillis());
            if (result.succeeded()) {
                executeNextCommand(node);
            } else {
                // The result is the HTTP response code from the build server.
                int responseCode = result.getResult();
                switch (responseCode) {
                case Response.SC_SERVICE_UNAVAILABLE:
                    // SC_SERVICE_UNAVAILABLE (response code 503), means that the build server is too busy
                    // at this time to accept this build request.
                    // We use ErrorReporter.reportInfo so that the message has yellow background instead of
                    // red background.
                    ErrorReporter.reportInfo(MESSAGES.buildServerBusyError());
                    break;
                case Response.SC_CONFLICT:
                    // SC_CONFLICT (response code 409), means that the build server is running a
                    // different version of the App Inventor code.
                    // We use ErrorReporter.reportInfo so that the message has yellow background instead
                    // of red background.
                    ErrorReporter.reportInfo(MESSAGES.buildServerDifferentVersion());
                    break;
                default:
                    String errorMsg = result.getError();
                    // This is not an internal App Inventor bug. The error is reported as info so that
                    // the red background is not shown.
                    ErrorReporter.reportInfo(
                            MESSAGES.buildFailedError() + (errorMsg.isEmpty() ? "" : " " + errorMsg));
                    break;
                }
                executionFailedOrCanceled();
            }
        }

        @Override
        public void onFailure(Throwable caught) {
            super.onFailure(caught);
            executionFailedOrCanceled();
        }
    };

    ode.getProjectService().buildEclipseProject(node.getProjectId(), target, buildOption, callback);
}

From source file:com.google.appinventor.client.explorer.commands.BuildWebCommand.java

License:Open Source License

@Override
public void execute(final ProjectNode node) {
    final Ode ode = Ode.getInstance();
    final MessagesOutput messagesOutput = MessagesOutput.getMessagesOutput();
    messagesOutput.clear();/*ww  w . jav  a 2s . c  o m*/
    messagesOutput.addMessages(MESSAGES.buildRequestedMessage(node.getName(),
            DateTimeFormat.getMediumDateTimeFormat().format(new Date())));

    OdeAsyncCallback<RpcResult> callback = new OdeAsyncCallback<RpcResult>(
            // failure message
            MESSAGES.buildError()) {
        @Override
        public void onSuccess(RpcResult result) {
            messagesOutput.addMessages(result.getOutput());
            messagesOutput.addMessages(result.getError());
            Tracking.trackEvent(Tracking.PROJECT_EVENT, Tracking.PROJECT_SUBACTION_BUILD_YA, node.getName(),
                    getElapsedMillis());
            if (result.succeeded()) {
                executeNextCommand(node);
            } else {
                // The result is the HTTP response code from the build server.
                int responseCode = result.getResult();
                switch (responseCode) {
                case Response.SC_SERVICE_UNAVAILABLE:
                    // SC_SERVICE_UNAVAILABLE (response code 503), means that the build server is too busy
                    // at this time to accept this build request.
                    // We use ErrorReporter.reportInfo so that the message has yellow background instead of
                    // red background.
                    ErrorReporter.reportInfo(MESSAGES.buildServerBusyError());
                    break;
                case Response.SC_CONFLICT:
                    // SC_CONFLICT (response code 409), means that the build server is running a
                    // different version of the App Inventor code.
                    // We use ErrorReporter.reportInfo so that the message has yellow background instead
                    // of red background.
                    ErrorReporter.reportInfo(MESSAGES.buildServerDifferentVersion());
                    break;
                default:
                    String errorMsg = result.getError();
                    // This is not an internal App Inventor bug. The error is reported as info so that
                    // the red background is not shown.
                    ErrorReporter.reportInfo(
                            MESSAGES.buildFailedError() + (errorMsg.isEmpty() ? "" : " " + errorMsg));
                    break;
                }
                executionFailedOrCanceled();
            }
        }

        @Override
        public void onFailure(Throwable caught) {
            super.onFailure(caught);
            executionFailedOrCanceled();
        }
    };

    String nonce = ode.generateNonce();
    ode.getProjectService().buildDemo(node.getProjectId(), nonce, target, callback);
}

From source file:com.google.appinventor.client.explorer.commands.SaveAllEditorsCommand.java

License:Open Source License

@Override
public void execute(final ProjectNode node) {
    // Ode.getInstance().getEditorManager().saveDirtyEditors(new Command() {
    final Ode ode = Ode.getInstance();
    ode.lockScreens(true); // Lock out screen switching
    ode.getEditorManager().saveDirtyEditors(new Command() {
        @Override//from   www  .j av  a 2s . c  o m
        public void execute() {
            ode.lockScreens(false); // Screen switch OK now
            ErrorReporter.reportInfo(
                    MESSAGES.savedProject(DateTimeFormat.getMediumDateTimeFormat().format(new Date())));
            executeNextCommand(node);
        }
    });
}