List of usage examples for org.eclipse.jface.action MenuManager getMenuText
public String getMenuText()
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; }