Example usage for com.google.gwt.user.client.ui MenuBar insertItem

List of usage examples for com.google.gwt.user.client.ui MenuBar insertItem

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui MenuBar insertItem.

Prototype

public MenuItem insertItem(MenuItem item, int beforeIndex) throws IndexOutOfBoundsException 

Source Link

Document

Adds a menu item to the bar at a specific index.

Usage

From source file:com.ponysdk.ui.terminal.ui.PTMenuBar.java

License:Apache License

@Override
public void add(final PTInstruction add, final UIService uiService) {

    final PTObject child = uiService.getPTObject(add.getObjectID());
    final MenuBar menuBar = cast();

    if (child instanceof PTMenuItem) {
        final PTMenuItem menuItem = (PTMenuItem) child;
        if (add.containsKey(PROPERTY.BEFORE_INDEX)) {
            menuBar.insertItem(menuItem.cast(), add.getInt(PROPERTY.BEFORE_INDEX));
        } else {/*  ww  w. java2  s . co  m*/
            menuBar.addItem(menuItem.cast());
        }
    } else {
        final PTMenuItemSeparator menuItem = (PTMenuItemSeparator) child;
        menuBar.addSeparator(menuItem.cast());
    }

}

From source file:org.pentaho.mantle.client.ui.xul.MantleController.java

License:Open Source License

/**
 * Called when the Xul Dom is ready, grab all Xul references here.
 *///ww w  .jav  a 2 s .com
@Bindable
public void init() {

    openBtn = (XulToolbarbutton) document.getElementById("openButton"); //$NON-NLS-1$
    newBtn = (XulToolbarbutton) document.getElementById("newButton"); //$NON-NLS-1$
    saveBtn = (XulToolbarbutton) document.getElementById("saveButton"); //$NON-NLS-1$
    saveAsBtn = (XulToolbarbutton) document.getElementById("saveAsButton"); //$NON-NLS-1$
    printBtn = (XulToolbarbutton) document.getElementById("printButton");

    contentEditBtn = (XulToolbarbutton) document.getElementById("editContentButton"); //$NON-NLS-1$

    bf = new GwtBindingFactory(document);
    bf.createBinding(model, "saveEnabled", saveBtn, "visible"); //$NON-NLS-1$ //$NON-NLS-2$
    bf.createBinding(model, "saveAsEnabled", saveAsBtn, "visible"); //$NON-NLS-1$ //$NON-NLS-2$
    bf.createBinding(model, "contentEditEnabled", contentEditBtn, "visible"); //$NON-NLS-1$ //$NON-NLS-2$
    bf.createBinding(model, "contentEditSelected", this, "editContentSelected"); //$NON-NLS-1$ //$NON-NLS-2$
    bf.createBinding(model, "printVisible", printBtn, "visible");

    saveMenuItem = (XulMenuitem) document.getElementById("saveMenuItem"); //$NON-NLS-1$
    saveAsMenuItem = (XulMenuitem) document.getElementById("saveAsMenuItem"); //$NON-NLS-1$
    useDescriptionsMenuItem = (XulMenuitem) document.getElementById("useDescriptionsMenuItem"); //$NON-NLS-1$
    showHiddenFilesMenuItem = (XulMenuitem) document.getElementById("showHiddenFilesMenuItem"); //$NON-NLS-1$
    languageMenu = (XulMenubar) document.getElementById("languagemenu"); //$NON-NLS-1$
    themesMenu = (XulMenubar) document.getElementById("themesmenu"); //$NON-NLS-1$
    toolsMenu = (XulMenubar) document.getElementById("toolsmenu"); //$NON-NLS-1$
    recentMenu = (XulMenubar) document.getElementById("recentmenu"); //$NON-NLS-1$
    favoriteMenu = (XulMenubar) document.getElementById("favoritesmenu"); //$NON-NLS-1$

    if (PerspectiveManager.getInstance().isLoaded()) {
        PerspectiveManager.getInstance().enablePerspective(PerspectiveManager.OPENED_PERSPECTIVE, false);
    } else {
        EventBusUtil.EVENT_BUS.addHandler(PerspectivesLoadedEvent.TYPE, new PerspectivesLoadedEventHandler() {
            public void onPerspectivesLoaded(PerspectivesLoadedEvent event) {
                PerspectiveManager.getInstance().enablePerspective(PerspectiveManager.OPENED_PERSPECTIVE,
                        false);
            }
        });
    }

    // install language sub-menus
    Map<String, String> supportedLanguages = Messages.getResourceBundle().getSupportedLanguages();
    if (supportedLanguages != null && supportedLanguages.keySet() != null && !supportedLanguages.isEmpty()) {
        MenuBar langMenu = (MenuBar) languageMenu.getManagedObject();
        langMenu.insertSeparator(0);
        for (String lang : supportedLanguages.keySet()) {
            MenuItem langMenuItem = new MenuItem(supportedLanguages.get(lang), new SwitchLocaleCommand(lang));
            langMenuItem.getElement().setId(supportedLanguages.get(lang) + "_menu_item"); //$NON-NLS-1$
            langMenu.insertItem(langMenuItem, 0);
        }
    }
    buildFavoritesAndRecent(false);

    UserSettingsManager.getInstance().getUserSettings(new AsyncCallback<JsArray<JsSetting>>() {
        public void onSuccess(JsArray<JsSetting> settings) {
            processSettings(settings);
        }

        public void onFailure(Throwable caught) {
        }
    }, false);

    EventBusUtil.EVENT_BUS.addHandler(UserSettingsLoadedEvent.TYPE, new UserSettingsLoadedEventHandler() {
        public void onUserSettingsLoaded(UserSettingsLoadedEvent event) {
            processSettings(event.getSettings());
        }

    });

    // install themes
    RequestBuilder getActiveThemeRequestBuilder = new RequestBuilder(RequestBuilder.GET,
            GWT.getHostPageBaseURL() + "api/theme/active"); //$NON-NLS-1$
    try {
        getActiveThemeRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
        getActiveThemeRequestBuilder.sendRequest(null, new RequestCallback() {

            public void onError(Request request, Throwable exception) {
                // showError(exception);
            }

            public void onResponseReceived(Request request, Response response) {
                final String activeTheme = response.getText();
                RequestBuilder getThemesRequestBuilder = new RequestBuilder(RequestBuilder.GET,
                        GWT.getHostPageBaseURL() + "api/theme/list"); //$NON-NLS-1$
                getThemesRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
                getThemesRequestBuilder.setHeader("accept", "application/json"); //$NON-NLS-1$ //$NON-NLS-2$

                try {
                    getThemesRequestBuilder.sendRequest(null, new RequestCallback() {
                        public void onError(Request arg0, Throwable arg1) {
                        }

                        public void onResponseReceived(Request request, Response response) {
                            try {
                                final String url = GWT.getHostPageBaseURL() + "api/repo/files/canAdminister"; //$NON-NLS-1$
                                RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, url);
                                requestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
                                requestBuilder.setHeader("accept", "text/plain"); //$NON-NLS-1$ //$NON-NLS-2$
                                requestBuilder.sendRequest(null, new RequestCallback() {

                                    public void onError(Request request, Throwable caught) {
                                    }

                                    public void onResponseReceived(Request request, Response response) {
                                        toolsMenu.setVisible("true".equalsIgnoreCase(response.getText())); //$NON-NLS-1$
                                        showHiddenFilesMenuItem
                                                .setVisible("true".equalsIgnoreCase(response.getText())); //$NON-NLS-1$
                                    }

                                });
                            } catch (RequestException e) {
                                Window.alert(e.getMessage());
                            }

                            JsArray<JsTheme> themes = JsTheme
                                    .getThemes(JsonUtils.escapeJsonForEval(response.getText()));

                            for (int i = 0; i < themes.length(); i++) {
                                JsTheme theme = themes.get(i);
                                PentahoMenuItem themeMenuItem = new PentahoMenuItem(theme.getName(),
                                        new SwitchThemeCommand(theme.getId()));
                                themeMenuItem.getElement().setId(theme.getId() + "_menu_item"); //$NON-NLS-1$
                                themeMenuItem.setChecked(theme.getId().equals(activeTheme));
                                ((MenuBar) themesMenu.getManagedObject()).addItem(themeMenuItem);
                            }

                            bf.createBinding(model, "saveEnabled", saveMenuItem, "visible"); //$NON-NLS-1$ //$NON-NLS-2$
                            bf.createBinding(model, "saveAsEnabled", saveAsMenuItem, "visible"); //$NON-NLS-1$ //$NON-NLS-2$

                            if (PerspectiveManager.getInstance().isLoaded()) {
                                executeAdminContent();
                            } else {
                                EventBusUtil.EVENT_BUS.addHandler(PerspectivesLoadedEvent.TYPE,
                                        new PerspectivesLoadedEventHandler() {
                                            public void onPerspectivesLoaded(PerspectivesLoadedEvent event) {
                                                executeAdminContent();
                                            }
                                        });
                            }

                            setupNativeHooks(MantleController.this);
                        }
                    });

                } catch (RequestException e) {
                    // showError(e);
                }
            }

        });

    } catch (RequestException e) {
        Window.alert(e.getMessage());
        // showError(e);
    }
}