Example usage for org.eclipse.jface.action MenuManager getMenuText

List of usage examples for org.eclipse.jface.action MenuManager getMenuText

Introduction

In this page you can find the example usage for org.eclipse.jface.action MenuManager getMenuText.

Prototype

public String getMenuText() 

Source Link

Document

Returns the text shown in the menu, potentially with a shortcut appended.

Usage

From source file:com.aptana.ruby.internal.rake.actions.RakeTasksContributionItem.java

License:Open Source License

/**
 * For inserting submenus under submenus
 * /*from  w  w  w  . ja v a 2s.  co m*/
 * @param parent
 * @param item
 * @return
 */
private int getInsertIndex(MenuManager parent, MenuManager item) {
    if (parent == null || item == null) {
        return 0;
    }
    String text = item.getMenuText();
    if (text == null) {
        return 0;
    }
    IContributionItem[] items = parent.getItems();
    if (items == null) {
        return 0;
    }
    int index = 0;
    for (int i = 0; i < items.length; i++) {
        if (items[i] == null)
            continue;
        if (items[i] instanceof ActionContributionItem) {
            ActionContributionItem actionItem = (ActionContributionItem) items[i];
            IAction action = actionItem.getAction();
            if (action == null)
                continue;
            String other = action.getText();
            if (text.compareTo(other) >= 0) {
                index = i + 1;
            } else {
                break;
            }
        }
    }
    return index;
}

From source file:com.aptana.ruby.internal.rake.actions.RakeTasksContributionItem.java

License:Open Source License

/**
 * For inserting submenus at first level.
 * /*from   w w  w .  jav a 2 s  .com*/
 * @param parent
 * @param item
 * @return
 */
private int getInsertIndex(Menu parent, MenuManager item) {
    String text = item.getMenuText();
    MenuItem[] items = parent.getItems();
    int index = 0;
    for (int i = 0; i < items.length; i++) {
        String other = items[i].getText();
        if (text.compareTo(other) >= 0) {
            index = i + 1;
        } else {
            break;
        }
    }
    return index;
}

From source file:com.sap.dirigible.ide.ui.rap.managers.MenuBarManager.java

License:Open Source License

@SuppressWarnings("deprecation")
private void makeEntry(final IContributionItem item) {
    IContributionItem tempItem = null;/*from  w  w  w.  ja  v  a  2  s  .com*/
    if (item instanceof SubContributionItem) {
        SubContributionItem subItem = (SubContributionItem) item;
        tempItem = subItem.getInnerItem();
    } else if (item instanceof MenuManager) {
        tempItem = item;
    }
    if (tempItem != null && tempItem instanceof MenuManager) {
        final MenuManager manager = (MenuManager) tempItem;
        int style = SWT.NONE;
        if (manager.getItems() != null && manager.getItems().length > 0) {
            style = SWT.DROP_DOWN;
        }
        final ToolItem toolItem = new ToolItem(toolbar, style);
        toolItem.setText(manager.getMenuText());
        toolItem.setData(WidgetUtil.CUSTOM_VARIANT, MENU_BAR_VARIANT);
        // create the menu
        final Menu menu = new Menu(menuParent);
        toolItem.setData(menu);
        menu.setData(WidgetUtil.CUSTOM_VARIANT, MENU_BAR_VARIANT);
        toolItem.addSelectionListener(new SelectionAdapter() {
            /**
             * 
             */
            private static final long serialVersionUID = -7781841225622682268L;

            public void widgetSelected(final SelectionEvent e) {
                // cleanup the menu
                MenuItem[] menuItems = menu.getItems();
                for (int i = 0; i < menuItems.length; i++) {
                    menuItems[i].dispose();
                }
                // hook menu to toolitem.
                IContributionItem[] contribItems = manager.getItems();
                if (contribItems != null && contribItems.length > 0) {
                    for (int i = 0; i < contribItems.length; i++) {
                        contribItems[i].fill(menu, -1);
                    }
                }
                // set the menu position
                Display display = toolItem.getDisplay();
                Rectangle bounds = toolItem.getBounds();
                int leftIndent = bounds.x;
                int topIndent = bounds.y + bounds.height;
                Point indent = new Point(leftIndent, topIndent);
                Point menuLocation = display.map(toolbar, toolbar.getShell(), indent);
                menu.setLocation(menuLocation);
                // style the menuitems and show the menu
                menu.setData(WidgetUtil.CUSTOM_VARIANT, MENU_BAR_VARIANT);
                styleMenuItems(menu);
                menu.setVisible(true);
            };
        });

        // needed to clear all controls in case of an update
        toolItemList.add(toolItem);
    }
}

From source file:edu.buffalo.cse.green.editor.DiagramEditor.java

License:Open Source License

/**
 * Creates the editor's context menu./*from w  w  w.  j av a  2  s.c om*/
 */
private void buildMenu(IMenuManager menuManager) {
    Map<String, MenuManager> menus = new HashMap<String, MenuManager>();
    Map<MenuManager, List<ContextAction>> mActions = new HashMap<MenuManager, List<ContextAction>>();

    MenuManager inv = new MenuManager("inv");
    inv.setVisible(false);
    menus.put(Submenu.Invisible.toString(), inv);

    // get all actions that must be added to the menu
    List<ContextAction> actions = new ArrayList<ContextAction>();

    actions.addAll(PlugIn.getActions());

    // moved to PlugIn, after the xml plugins are initialized
    // so that accelerator keys work.
    /*for (Class partClass : PlugIn.getRelationships()) {
       ContextAction action =
    new AlterRelationshipVisibilityAction(partClass);
       actions.add(action);
       action =
    new IncrementalExploreSingleAction(partClass);
       actions.add(action);
    }*/

    // add the actions to their appropriate submenus
    List<ContextAction> lastItems = new ArrayList<ContextAction>();

    for (ContextAction action : actions) {
        // add in menu group if it doesn't exist
        MenuManager submenu = menus.get(action.getPath());

        // initialize the action
        action.calculateEnabled();
        action.setSelectionProvider(this);
        action.setText(action.getLabel());

        // if the submenu doesn't exist, create it
        if (submenu == null) {
            submenu = createMenuGroup(menus, action.getPath());

            // add it to the end if it's a menu item
            if (submenu == null) {
                lastItems.add(action);
                continue;
            }

            List<ContextAction> actionList = mActions.get(submenu);

            if (actionList == null) {
                actionList = new ArrayList<ContextAction>();
                mActions.put(submenu, actionList);
            }

            actionList.add(action);
        }
    }

    // sort the menu alphabetically
    while (mActions.keySet().size() > 0) {
        String firstAlpha = "zzz";
        MenuManager addMenu = null;

        for (MenuManager menu : mActions.keySet()) {
            if (menu.getMenuText().compareTo(firstAlpha) < 0) {
                firstAlpha = menu.getMenuText();
                addMenu = menu;
            }
        }

        _contextMenu.add(addMenu);
        List<ContextAction> actionList = mActions.get(addMenu);
        mActions.remove(addMenu);

        while (actionList.size() > 0) {
            firstAlpha = "zzz";
            ContextAction addAction = null;

            for (ContextAction cAction : actionList) {
                if (cAction.getLabel().compareTo(firstAlpha) < 0) {
                    firstAlpha = cAction.getLabel();
                    addAction = cAction;
                }
            }

            addMenu.add(addAction);
            actionList.remove(addAction);
        }
    }

    while (lastItems.size() > 0) {
        String firstAlpha = "zzz";
        ContextAction addAction = null;

        for (ContextAction cAction : lastItems) {
            if (cAction.getLabel().compareTo(firstAlpha) < 0) {
                firstAlpha = cAction.getLabel();
                addAction = cAction;
            }
        }

        _contextMenu.add(addAction);
        lastItems.remove(addAction);
    }

    // add quick fixes, if applicable
    IJavaElement element = getContext().getElement();

    if (element instanceof IMember) {
        MemberModel model = (MemberModel) getRootModel().getModelFromElement(element);
        model.appendQuickFixActionsToMenu(_contextMenu);
    }
}

From source file:fr.obeo.dsl.tuto.mindstorms.presentation.MindstormsActionBarContributor.java

License:Open Source License

/**
 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.MenuManager}s and their
 * {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s
 * contained in the <code>submenuActions</code> map.
 * <!-- begin-user-doc -->//w w w .  j av  a  2s . c om
 * <!-- end-user-doc -->
 * @generated
 */
protected void depopulateManager(IContributionManager manager,
        Map<String, Collection<IAction>> submenuActions) {
    if (submenuActions != null) {
        IContributionItem[] items = manager.getItems();
        for (int i = 0; i < items.length; i++) {
            IContributionItem contributionItem = items[i];
            if (contributionItem instanceof MenuManager) {
                MenuManager submenuManager = (MenuManager) contributionItem;
                if (submenuActions.containsKey(submenuManager.getMenuText())) {
                    depopulateManager(submenuManager, submenuActions.get(contributionItem));
                    manager.remove(contributionItem);
                }
            }
        }
    }
}

From source file:net.sourceforge.veditor.editor.HdlActionContributor.java

License:Open Source License

public void init(IActionBars bars) {
    super.init(bars);

    IMenuManager menuManager = bars.getMenuManager();

    IMenuManager editMenu = menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT);
    if (editMenu != null) {
        editMenu.add(new Separator());
        editMenu.add(contentAssistProposal);
        editMenu.add(format);/* www.  j av  a  2  s . c  om*/
        editMenu.add(comment);
        editMenu.add(uncomment);
    }

    IMenuManager projectMenu = menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_PROJECT);
    if (projectMenu != null) {
        projectMenu.insertAfter("buildProject", compile);
        projectMenu.insertAfter(compile.getId(), synthesize);
    }

    IMenuManager navigateMenu = menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE);
    if (navigateMenu != null) {
        MenuManager showIn = null;
        IMenuManager gotoMenu = navigateMenu.findMenuUsingPath(IWorkbenchActionConstants.GO_TO);
        gotoMenu.add(gotoMatchingBracket);

        navigateMenu.add(openDeclaration);
        navigateMenu.add(collapseAllAction);
        navigateMenu.add(expandAllAction);

        IContributionItem[] contributionItems = navigateMenu.getItems();
        for (IContributionItem item : contributionItems) {
            if (item instanceof MenuManager) {
                MenuManager menu = (MenuManager) item;
                if (menu.getMenuText().startsWith("Sho&w In")) {
                    showIn = menu;
                    break;
                }
            }
        }
        if (showIn != null) {
            //FIXME Need to figure out how to properly add stuff to the "Show In"
            showIn.removeAll();
            showIn.add(showInHierarchy);
            showIn.add(showInOutline);
        }

    }

}

From source file:net.sourceforge.veditor.editor.HdlEditor.java

License:Open Source License

protected void editorContextMenuAboutToShow(IMenuManager menu) {
    MenuManager showIn = null;//from  www . j  a  v  a 2s .  c o m
    super.editorContextMenuAboutToShow(menu);
    menu.add(new Separator());
    menu.add(getAction("Format"));
    menu.add(getAction("OpenDeclaration"));
    menu.add(getAction("CollapseAll"));
    menu.add(getAction("ExpandAll"));
    menu.add(getAction(ClearErrorMarkersAction.ID));

    IContributionItem[] contributionItems = menu.getItems();
    for (IContributionItem item : contributionItems) {
        if (item instanceof MenuManager) {
            MenuManager menuManager = (MenuManager) item;
            if (menuManager.getMenuText().startsWith("Sho&w In")) {
                showIn = menuManager;
                break;
            }
        }
    }
    if (showIn != null) {
        //FIXME Need to figure out how to properly add stuff to the "Show In"
        if (hasHierarchy())
            showIn.add(getAction("ShowInHierarchy"));
        if (hasOutline())
            showIn.add(getAction("ShowInOutline"));
        showIn.add(getAction(HdlShowInNavigatorAction.ID));
    }

}

From source file:net.yatomiya.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java

License:Open Source License

/**
 * @param menuManager//from  w w  w . j a v a  2  s .  c  om
 * @param menuModel
 */
public void reconcileManagerToModel(MenuManager menuManager, MMenu menuModel) {
    List<MMenuElement> modelChildren = menuModel.getChildren();

    HashSet<MMenuItem> oldModelItems = new HashSet<>();
    HashSet<MMenu> oldMenus = new HashSet<>();
    HashSet<MMenuSeparator> oldSeps = new HashSet<>();
    for (MMenuElement itemModel : modelChildren) {
        if (OpaqueElementUtil.isOpaqueMenuSeparator(itemModel)) {
            oldSeps.add((MMenuSeparator) itemModel);
        } else if (OpaqueElementUtil.isOpaqueMenuItem(itemModel)) {
            oldModelItems.add((MMenuItem) itemModel);
        } else if (OpaqueElementUtil.isOpaqueMenu(itemModel)) {
            oldMenus.add((MMenu) itemModel);
        }
    }

    IContributionItem[] items = menuManager.getItems();
    for (int src = 0, dest = 0; src < items.length; src++, dest++) {
        IContributionItem item = items[src];

        if (item instanceof SubContributionItem) {
            // get the wrapped contribution item
            item = ((SubContributionItem) item).getInnerItem();
        }

        if (item instanceof MenuManager) {
            MenuManager childManager = (MenuManager) item;
            MMenu childModel = getMenuModel(childManager);
            if (childModel == null) {
                MMenu legacyModel = OpaqueElementUtil.createOpaqueMenu();
                legacyModel.setElementId(childManager.getId());
                legacyModel.setVisible(childManager.isVisible());
                legacyModel.setLabel(childManager.getMenuText());

                linkModelToManager(legacyModel, childManager);
                OpaqueElementUtil.setOpaqueItem(legacyModel, childManager);
                if (modelChildren.size() > dest) {
                    modelChildren.add(dest, legacyModel);
                } else {
                    modelChildren.add(legacyModel);
                }
                reconcileManagerToModel(childManager, legacyModel);
            } else {
                if (OpaqueElementUtil.isOpaqueMenu(childModel)) {
                    oldMenus.remove(childModel);
                }
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != childModel) {
                        modelChildren.remove(childModel);
                        modelChildren.add(dest, childModel);
                    }
                } else {
                    modelChildren.add(childModel);
                }
                if (childModel instanceof MPopupMenu) {
                    if (((MPopupMenu) childModel).getContext() == null) {
                        IEclipseContext lclContext = getContext(menuModel);
                        if (lclContext != null) {
                            ((MPopupMenu) childModel)
                                    .setContext(lclContext.createChild(childModel.getElementId()));
                        }
                    }
                }

                if (childModel.getChildren().size() != childManager.getSize()) {
                    reconcileManagerToModel(childManager, childModel);
                }
            }
        } else if (item.isSeparator() || item.isGroupMarker()) {
            MMenuElement menuElement = getMenuElement(item);
            if (menuElement == null) {
                MMenuSeparator legacySep = OpaqueElementUtil.createOpaqueMenuSeparator();
                legacySep.setElementId(item.getId());
                legacySep.setVisible(item.isVisible());
                OpaqueElementUtil.setOpaqueItem(legacySep, item);
                linkModelToContribution(legacySep, item);
                if (modelChildren.size() > dest) {
                    modelChildren.add(dest, legacySep);
                } else {
                    modelChildren.add(legacySep);
                }
            } else if (OpaqueElementUtil.isOpaqueMenuSeparator(menuElement)) {
                MMenuSeparator legacySep = (MMenuSeparator) menuElement;
                oldSeps.remove(legacySep);
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != legacySep) {
                        modelChildren.remove(legacySep);
                        modelChildren.add(dest, legacySep);
                    }
                } else {
                    modelChildren.add(legacySep);
                }
            }
        } else {
            MMenuElement menuElement = getMenuElement(item);
            if (menuElement == null) {
                MMenuItem legacyItem = OpaqueElementUtil.createOpaqueMenuItem();
                legacyItem.setElementId(item.getId());
                legacyItem.setVisible(item.isVisible());
                OpaqueElementUtil.setOpaqueItem(legacyItem, item);
                linkModelToContribution(legacyItem, item);
                if (modelChildren.size() > dest) {
                    modelChildren.add(dest, legacyItem);
                } else {
                    modelChildren.add(legacyItem);
                }
            } else if (OpaqueElementUtil.isOpaqueMenuItem(menuElement)) {
                MMenuItem legacyItem = (MMenuItem) menuElement;
                oldModelItems.remove(legacyItem);
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != legacyItem) {
                        modelChildren.remove(legacyItem);
                        modelChildren.add(dest, legacyItem);
                    }
                } else {
                    modelChildren.add(legacyItem);
                }
            }
        }
    }
    if (!oldModelItems.isEmpty()) {
        modelChildren.removeAll(oldModelItems);
        for (MMenuItem model : oldModelItems) {
            IContributionItem ici = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model);
            clearModelToContribution(model, ici);
        }
    }
    if (!oldMenus.isEmpty()) {
        modelChildren.removeAll(oldMenus);
        for (MMenu oldMenu : oldMenus) {
            MenuManager oldManager = getManager(oldMenu);
            clearModelToManager(oldMenu, oldManager);
        }
    }
    if (!oldSeps.isEmpty()) {
        modelChildren.removeAll(oldSeps);
        for (MMenuSeparator model : oldSeps) {
            IContributionItem item = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model);
            clearModelToContribution(model, item);
        }
    }
}

From source file:org.ebayopensource.vjet.eclipse.core.test.bug.BugVerifyTests.java

License:Open Source License

/**
 * verify bug 3331/* ww  w  .  j  a v  a  2s . co m*/
 * 
 * @throws Exception
 */
public void test3331() throws Exception {
    IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
    IViewPart viewPart = workbenchPage.showView("org.eclipse.debug.ui.VariableView");

    IMenuManager menuManager = ((PartSite) viewPart.getSite()).getActionBars().getMenuManager();
    IContributionItem[] contributionItems = menuManager.getItems();
    for (int i = 0; i < contributionItems.length; i++) {
        String id = contributionItems[i].getId();
        if ("org.ebayopensource.vjet.eclipse.debug.ui.menu.VariableView".equals(id)) {
            MenuManager vjetMenuManager = (MenuManager) contributionItems[i];
            assertTrue("menu text should be VJET!", "VJET".equals(vjetMenuManager.getMenuText()));
        }
    }
}

From source file:org.eclipse.babel.runtime.MenuAnalyzer.java

License:Open Source License

private TranslatableMenuItem createTranslatableMenu(IContributionItem item,
        ITranslatableText parentLocalizableText) {
    TranslatableMenuItem translatableMenuItem = new TranslatableMenuItem(parentLocalizableText);

    if (item == null) {
        return translatableMenuItem;
    }/*w ww  .j a  v a 2  s .  c o  m*/

    if (item instanceof MenuManager) {
        MenuManager menuManager = (MenuManager) item;

        //         System.out.print("\n children of " + item.toString() + "are:\n\n");
        //         for (IContributionItem contributionItem: menuManager.getItems()) {
        //            System.out.println(contributionItem.toString());
        //         }

        for (IContributionItem contributionItem : menuManager.getItems()) {

            if (!contributionItem.isVisible()) {
                continue;
            }

            if (contributionItem.isSeparator()) {
                continue;
            }

            if (contributionItem instanceof SubContributionItem) {
                contributionItem = ((SubContributionItem) contributionItem).getInnerItem();
            }

            if (contributionItem instanceof ShowViewMenu) {
                addShowViewChildren(translatableMenuItem);
            } else {
                /*
                 * Fetch the original localization text for this item.
                 */
                ITranslatableText localizableText = null;

                if (contributionItem instanceof MenuManager) {
                    MenuManager subMenuManager = (MenuManager) contributionItem;
                    String id = subMenuManager.getId();

                    localizableText = extractFromPluginXml("org.eclipse.ui.commands", "category", id, "name",
                            true);
                    if (localizableText == null) {
                        localizableText = extractFromPluginXml("org.eclipse.ui.commands", "command", id, "name",
                                true);
                    }
                    if (localizableText == null) {
                        localizableText = extractFromPluginXml("org.eclipse.ui.menus", "menuContribution",
                                "menu", id, "label", false);
                    }
                    if (localizableText == null) {
                        localizableText = extractFromPluginXml("org.eclipse.ui.actionSets", "actionSet", "menu",
                                id, "label", false);
                    }
                    if (localizableText == null) {
                        localizableText = new NonTranslatableText(subMenuManager.getMenuText());
                    }
                } else if (contributionItem instanceof ActionContributionItem) {
                    ActionContributionItem pluginAction = (ActionContributionItem) contributionItem;
                    String localId = pluginAction.getId();

                    // Something weird happens here.
                    // A null localId occurs here when running the plug-in in normal deployed
                    // mode but is never null when running the plug-in by starting a new JVM
                    // from within the IDE.
                    if (localId != null) { // needed???
                        // Does this line find anything????
                        localizableText = extractFromPluginXml("org.eclipse.ui.actionSets", "actionSet",
                                "action", localId, "label", false);
                        if (localizableText != null) {
                            textSet.associate(pluginAction, localizableText);
                        } else {
                            String fullId = pluginAction.getAction().getActionDefinitionId();
                            localizableText = extractFromPluginXml("org.eclipse.ui.commands", "command", fullId,
                                    "name", false);
                            if (localizableText != null) {
                                textSet.associate(pluginAction, localizableText);
                            } else {
                                localizableText = new NonTranslatableText(pluginAction.getAction().getText());
                            }
                        }
                    } // needed???
                } else if (contributionItem instanceof CommandContributionItem) {
                    CommandContributionItem pluginAction = (CommandContributionItem) contributionItem;
                    String id = pluginAction.getId();
                    //                  for (IConfigurationElement element: RegistryFactory.getRegistry().getConfigurationElementsFor("org.eclipse.ui.commands")) {
                    //                     if (element instanceof ConfigurationElementHandle) {
                    //                        System.out.println(element.toString());
                    //                     }
                    //                  }

                    Bundle bundle = null;
                    String commandId = null;

                    outer1: for (IConfigurationElement element : RegistryFactory.getRegistry()
                            .getConfigurationElementsFor("org.eclipse.ui.menus")) {
                        if (element instanceof ConfigurationElementHandle) {
                            //                        System.out.println(element.toString());

                            for (IConfigurationElement element2 : element.getChildren()) {
                                if (element2 instanceof ConfigurationElementHandle) {
                                    if (element2.toString().equals(id)) {
                                        commandId = element2.getAttribute("commandId");
                                        String contributorName = element2.getDeclaringExtension()
                                                .getContributor().getName();
                                        bundle = InternalPlatform.getDefault().getBundle(contributorName);
                                        break outer1;
                                    }
                                }
                            }
                        }
                    }

                    if (commandId == null) {

                        outer: for (IConfigurationElement element : Platform.getExtensionRegistry()
                                .getConfigurationElementsFor("org.eclipse.ui.menus")) {
                            if (element.getName().equals("menuContribution")) {
                                for (IConfigurationElement subElement1 : element.getChildren("menu")) {
                                    for (IConfigurationElement subElement : subElement1
                                            .getChildren("command")) {
                                        if (subElement.getAttribute("id").equals(id)) {
                                            String contributorName = element.getDeclaringExtension()
                                                    .getContributor().getName();
                                            bundle = InternalPlatform.getDefault().getBundle(contributorName);

                                            try {
                                                LocalizableContribution contribution = PluginXmlRegistry
                                                        .getInstance().getLocalizableContribution(bundle);
                                                commandId = contribution.getValue("org.eclipse.ui.menus",
                                                        "menuContribution", "menu", "command", id, "commandId");
                                            } catch (ParserConfigurationException e1) {
                                                e1.printStackTrace();
                                                commandId = null;
                                            } catch (SAXException e1) {
                                                e1.printStackTrace();
                                                commandId = null;
                                            } catch (IOException e1) {
                                                e1.printStackTrace();
                                                commandId = null;
                                            }

                                            break outer;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (commandId != null) {

                        try {

                            // repeat whole process with the command id
                            LocalizableContribution contribution = PluginXmlRegistry.getInstance()
                                    .getLocalizableContribution(bundle);
                            localizableText = contribution.getLocalizableText("org.eclipse.ui.commands",
                                    "command", commandId, "name");

                            textSet.associate(pluginAction, localizableText);
                        } catch (ParserConfigurationException e1) {
                            e1.printStackTrace();
                            localizableText = new NonTranslatableText(pluginAction.getId());
                        } catch (SAXException e1) {
                            e1.printStackTrace();
                            localizableText = new NonTranslatableText(pluginAction.getId());
                        } catch (IOException e1) {
                            e1.printStackTrace();
                            localizableText = new NonTranslatableText(pluginAction.getId());
                        }
                    } else {
                        localizableText = new NonTranslatableText(pluginAction.getId());
                    }

                    //               } else if (contributionItem instanceof NewWizardMenu) {
                } else if (contributionItem instanceof SubMenuManager) {

                    SubMenuManager pluginAction = (SubMenuManager) contributionItem;
                    // TODO: Sort this out.  Problem occurs because of bad use of action sets in
                    // the copier plug-in.  Generally these should be completely ignored, so set
                    // the localized text object to null which will result in nothing being added.                  
                    localizableText = null;
                    /*
                                              
                                      //                  String id = pluginAction.getId();
                            
                                      for (IContributionItem subItem: pluginAction.getItems()) {
                                         if (subItem instanceof SubContributionItem) {
                                            subItem = ((SubContributionItem) subItem).getInnerItem();
                                         }
                            
                                         if (!(subItem instanceof GroupMarker)
                                               && !(subItem instanceof Separator)) {
                                         String id = subItem.getId();
                                         localizableText = extractFromPluginXml("org.eclipse.ui.actionSets", "actionSet", "action", id, "label", true);
                                         if (localizableText != null) {
                    //                        textSet.associate(subItem, localizableText);
                                         } else {
                                            localizableText = extractFromPluginXml("org.eclipse.ui.commands", "command", id, "name", true);
                                            if (localizableText != null) {
                    //                           textSet.associate(pluginAction, localizableText);
                                            } else {
                                               localizableText = new NonTranslatableText(subItem.toString());
                                            }
                                         }
                            
                                         TranslatableMenuItem childItem = createTranslatableMenu(subItem, localizableText);
                                         translatableMenuItem.add(childItem);
                                         }
                                      }
                    */

                } else {
                    localizableText = new NonTranslatableText(contributionItem.toString());
                }

                if (localizableText != null) {
                    //                  System.out.print("\n " + contributionItem.toString() + " resulted in " + localizableText.getLocalizedText(Locale.getDefault()) + "\n");
                    TranslatableMenuItem childItem = createTranslatableMenu(contributionItem, localizableText);
                    translatableMenuItem.add(childItem);
                }
            }
        }
    }

    return translatableMenuItem;
}