List of usage examples for org.eclipse.jface.action IContributionManager getItems
IContributionItem[] getItems();
From source file:org.eclipse.wb.tests.designer.tests.DesignerTestCase.java
License:Open Source License
/** * @return the {@link IMenuManager} child with given text. *//*w ww . j a v a 2s. c o m*/ protected static IMenuManager findChildMenuManager(IContributionManager manager, String text) { IContributionItem[] items = manager.getItems(); for (int i = 0; i < items.length; i++) { IContributionItem contributionItem = items[i]; if (contributionItem instanceof MenuManager) { MenuManager managerChild = (MenuManager) contributionItem; if (managerChild.getMenuText().equals(text)) { return managerChild; } } } // not found return null; }
From source file:org.eclipse.wb.tests.designer.tests.DesignerTestCase.java
License:Open Source License
/** * @return the {@link IAction}-s children with given text. *//* www . j a v a 2s .c o m*/ protected static List<IAction> findChildActions(IContributionManager manager, String text) { List<IAction> actions = Lists.newArrayList(); text = getNormalizedActionText(text); for (IContributionItem contributionItem : manager.getItems()) { if (contributionItem instanceof ActionContributionItem) { ActionContributionItem actionContributionItem = (ActionContributionItem) contributionItem; IAction action = actionContributionItem.getAction(); if (getNormalizedActionText(action.getText()).equals(text)) { actions.add(action); } } } // done return actions; }
From source file:org.eclipse.wst.server.ui.internal.cnf.ServerActionProvider.java
License:Open Source License
public void fillActionBars(IActionBars actionBars) { actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug", actions[0]); actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]); actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]); actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish", actions[4]); actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open", openAction); actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction); actionBars.updateActionBars();//from w w w .j a va 2 s . co m actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction); actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction); actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), globalDeleteAction); actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction); IContributionManager cm = actionBars.getToolBarManager(); IContributionItem[] cis = cm.getItems(); List<IAction> existingActions = new ArrayList<IAction>(); for (IContributionItem ci : cis) { if (ci instanceof ActionContributionItem) { ActionContributionItem aci = (ActionContributionItem) ci; existingActions.add(aci.getAction()); } } for (int i = 0; i < actions.length - 1; i++) if (!existingActions.contains(actions[i])) cm.add(actions[i]); }
From source file:org.enterprisedomain.classmaker.presentation.ClassMakerActionBarContributor.java
License:Apache 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 -->/*from ww w . ja v a 2 s .c o m*/ * <!-- 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(submenuManager.getMenuText())); manager.remove(contributionItem); } } } } }
From source file:org.kalypso.ui.editor.mapeditor.GisMapOutlinePage.java
License:Open Source License
private void copyItems(final IContributionManager from, final IContributionManager to) { final IContributionItem[] items = from.getItems(); for (final IContributionItem item : items) to.add(item);// w ww.j a va 2 s .com }
From source file:org.modelversioning.emfprofile.application.registry.ui.observer.NestingCommonModelElementsInStereotypeApplications.java
License:Open Source License
/** * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection. *//* w w w.j a v a 2 s. c o m*/ public void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) { if (actions != null) { IContributionItem[] items = manager.getItems(); for (int i = 0; i < items.length; i++) { // Look into SubContributionItems // IContributionItem contributionItem = items[i]; while (contributionItem instanceof SubContributionItem) { contributionItem = ((SubContributionItem) contributionItem).getInnerItem(); } // Delete the ActionContributionItems with matching action. // if (contributionItem instanceof ActionContributionItem) { IAction action = ((ActionContributionItem) contributionItem).getAction(); if (actions.contains(action)) { manager.remove(contributionItem); } } } } }
From source file:org.nightlabs.base.ui.action.registry.AbstractActionRegistry.java
License:Open Source License
/** * Removes all contributions of this registry from the CoolBar of the * given coolBarManager. Ideally this is done by making the contributions * invisible, so Eclipse can remember their positions. However * this is currently not possible and thats why this method * removes the affected contributions from the CoolBar. * This behaviour can is configured via {@link #useRemoveInsteadOfUnvisibleWorkaround}. * * @param coolBarManager The {@link ICoolBarManager} where the contributions of this registry should be removed from. *//*from w ww .j a v a2 s . c o m*/ public void removeAllFromCoolBar(ICoolBarManager coolBarManager) { if (Display.getCurrent() == null) throw new IllegalStateException("This method must be called on the UI thread!"); //$NON-NLS-1$ IContributionManager coolBarContributionManager = coolBarManager; if (coolBarManager instanceof SubCoolBarManager) coolBarContributionManager = ((SubCoolBarManager) coolBarManager).getParent(); if (!useRemoveInsteadOfUnvisibleWorkaround) ((SubCoolBarManager) coolBarManager).setVisible(false); String baseID = this.getClass().getName(); String orphanageToolbarID = baseID + '.' + ORPHANAGE_TOOLBAR_ID; // We use a temporary MenuManager which will be translated into the real // coolbar afterwards. MenuManager tmpMenu = new MenuManager(); ActionVisibilityDecider backupActionVisibilityDecider = this.actionVisibilityDecider; try { this.actionVisibilityDecider = actionVisibilityDeciderAlwaysVisible; contribute(tmpMenu, ContributionManagerKind.coolBar); } finally { this.actionVisibilityDecider = backupActionVisibilityDecider; } // convert the existing items of the real coolbar-manager into a Map - the new items might // already exist because of Eclipse's workspace memory (and then the old ones need to be // manipulated - new ones would be ignored because of a bug/feature in the EclipseRCP) // IContributionItem[] coolBarItems = ((SubCoolBarManager)coolBarManager).getParent().getItems(); IContributionItem[] coolBarItems = coolBarContributionManager.getItems(); // key: String itemId // value: IXContributionItem Map<String, IContributionItem> coolBarItemMap = new HashMap<String, IContributionItem>(coolBarItems.length); for (int i = 0; i < coolBarItems.length; ++i) { IContributionItem coolBarItem = coolBarItems[i]; coolBarItemMap.put(coolBarItem.getId(), coolBarItem); logger.debug("Having " + coolBarItem.getId() + " in CoolBar"); //$NON-NLS-1$ //$NON-NLS-2$ } ToolBarContributionItem orphanageToolBarContributionItem = getToolBarContributionItem( coolBarItemMap.get(orphanageToolbarID)); if (orphanageToolBarContributionItem != null) { IContributionItem item = coolBarContributionManager.find(orphanageToolBarContributionItem.getId()); if (item != null) { if (useRemoveInsteadOfUnvisibleWorkaround) { coolBarContributionManager.remove(orphanageToolBarContributionItem.getId()); } else { orphanageToolBarContributionItem.setVisible(false); item.setVisible(false); } } } // Now, we iterate all the "precompiled" items and contribute them to the coolbar IContributionItem[] tmpItems = tmpMenu.getItems(); for (int i = 0; i < tmpItems.length; ++i) { IContributionItem tmpItem = tmpItems[i]; // Test for items that are already in the parent if (tmpItem instanceof IMenuManager) { IMenuManager tmpSubMenu = (IMenuManager) tmpItem; String tmpSubMenuID = baseID + '.' + tmpSubMenu.getId(); ToolBarContributionItem toolBarContributionItem = getToolBarContributionItem( coolBarItemMap.get(tmpSubMenuID)); if (toolBarContributionItem != null) { IContributionItem item = coolBarContributionManager.find(toolBarContributionItem.getId()); if (item != null) { if (useRemoveInsteadOfUnvisibleWorkaround) { coolBarContributionManager.remove(tmpSubMenuID); } else { toolBarContributionItem.setVisible(false); item.setVisible(false); } } } } } try { coolBarContributionManager.update(true); } catch (Exception x) { // https://bugs.eclipse.org/bugs/show_bug.cgi?id=239945 logger.error("CoolBarManager.update failed: " + x.getLocalizedMessage(), x); //$NON-NLS-1$ } }
From source file:org.nightlabs.base.ui.action.registry.AbstractActionRegistry.java
License:Open Source License
/** * This method contributes WITHOUT removing items before. * * @param contributionManager//ww w .j av a 2 s . c o m * @param kind * @return Returns the number of visible contribution items (i.e. actions) that have been added. */ protected Map<Class<? extends ItemDescriptor>, List<ItemDescriptor>> contribute( IContributionManager contributionManager, ContributionManagerKind kind) { Map<Class<? extends ItemDescriptor>, List<ItemDescriptor>> visibleItemDescriptors = new HashMap<Class<? extends ItemDescriptor>, List<ItemDescriptor>>(); ActionVisibilityContext actionVisibilityContext = new ActionVisibilityContext(kind); List<ItemDescriptor> menuSorted = contributionManagerKind2menuSorted.get(kind); boolean firstRun = menuSorted == null; LinkedList<ItemDescriptor> menuRaw = null; int lastMenuRawSize = 0; if (firstRun) { menuRaw = new LinkedList<ItemDescriptor>(this.menuRaw); menuRaw.add(new SeparatorDescriptor("additions")); //$NON-NLS-1$ lastMenuRawSize = menuRaw.size(); menuSorted = new LinkedList<ItemDescriptor>(); } // contributionManager.removeAll(); while ((firstRun && !menuRaw.isEmpty()) || !firstRun) { for (Iterator<?> itTopLevel = (firstRun ? menuRaw : menuSorted).iterator(); itTopLevel.hasNext();) { ItemDescriptor item = (ItemDescriptor) itTopLevel.next(); if (item instanceof ActionDescriptor) { ActionDescriptor ad = (ActionDescriptor) item; String path = getPath(ad, kind); IContributionItem anchor = path == null ? null : findUsingPath(contributionManager, path); if (anchor != null) { if (actionVisibilityDecider.isVisible(actionVisibilityContext, ad)) { addVisibleItemDescriptor(visibleItemDescriptors, ActionDescriptor.class, ad); if (anchor instanceof MenuManager) { if (ad.getAction() != null) ((MenuManager) anchor).add(ad.getAction()); else if (ad.getContributionItem() != null) ((MenuManager) anchor).add(ad.getContributionItem()); } else { if (ad.getAction() != null) ((ContributionItem) anchor).getParent().insertAfter(anchor.getId(), ad.getAction()); else if (ad.getContributionItem() != null) ((ContributionItem) anchor).getParent().insertAfter(anchor.getId(), ad.getContributionItem()); } } if (firstRun) { menuSorted.add(item); itTopLevel.remove(); } } } else if (item instanceof SeparatorDescriptor) { addVisibleItemDescriptor(visibleItemDescriptors, SeparatorDescriptor.class, item); SeparatorDescriptor s = (SeparatorDescriptor) item; String path = s.getPath(); IContributionItem anchor = path == null ? null : findUsingPath(contributionManager, path); if (path == null || anchor != null) { Separator separator = new Separator(s.getName()); if (anchor == null) { if (contributionManager.find(item.getID()) == null) contributionManager.add(separator); } else { if (((ContributionItem) anchor).getParent().find(item.getID()) == null) ((ContributionItem) anchor).getParent().insertAfter(anchor.getId(), separator); } if (firstRun) { menuSorted.add(item); itTopLevel.remove(); } } } else if (item instanceof GroupMarkerDescriptor) { addVisibleItemDescriptor(visibleItemDescriptors, GroupMarkerDescriptor.class, item); GroupMarkerDescriptor gm = (GroupMarkerDescriptor) item; String path = gm.getPath(); IContributionItem anchor = path == null ? null : findUsingPath(contributionManager, path); if (path == null || anchor != null) { GroupMarker groupMarker = new GroupMarker(gm.getName()); if (anchor == null) { if (contributionManager.find(item.getID()) == null) contributionManager.add(groupMarker); } else { if (((ContributionItem) anchor).getParent().find(item.getID()) == null) ((ContributionItem) anchor).getParent().insertAfter(anchor.getId(), groupMarker); } if (firstRun) { menuSorted.add(item); itTopLevel.remove(); } } } else if (item instanceof MenuDescriptor) { addVisibleItemDescriptor(visibleItemDescriptors, MenuDescriptor.class, item); MenuDescriptor md = (MenuDescriptor) item; String path = md.getPath(); // already existing in the contribution-manager? IContributionItem anchor = path == null ? null : findUsingPath(contributionManager, path); if (path == null || anchor != null) { MenuManager subMenu = new MenuManager(md.getLabel(), md.getID()); for (Iterator<?> itSub = md.getSubItems().iterator(); itSub.hasNext();) { Object obj = itSub.next(); if (obj instanceof SeparatorDescriptor) { SeparatorDescriptor separator = (SeparatorDescriptor) obj; subMenu.add(new Separator(separator.getName())); } else if (obj instanceof GroupMarkerDescriptor) { GroupMarkerDescriptor groupMarker = (GroupMarkerDescriptor) obj; subMenu.add(new GroupMarker(groupMarker.getName())); } else throw new IllegalStateException( "SubItem of menu is neither a SeparatorDescriptor nor a GroupMarkerDescriptor but " //$NON-NLS-1$ + obj.getClass().getName()); } if (anchor == null) { if (contributionManager.find(item.getID()) == null) contributionManager.add(subMenu); } else { if (((ContributionItem) anchor).getParent().find(item.getID()) == null) ((ContributionItem) anchor).getParent().insertAfter(anchor.getId(), subMenu); } if (firstRun) { menuSorted.add(item); itTopLevel.remove(); } } } else throw new IllegalStateException( "Item in menuRaw of type " + item.getClass() + " is an instance of an unknown class!"); //$NON-NLS-1$ //$NON-NLS-2$ } if (firstRun && (lastMenuRawSize == menuRaw.size())) { if (logger.isDebugEnabled()) { logger.debug("Could not add the following contributions to the menu (kind " + kind + "):"); //$NON-NLS-1$ //$NON-NLS-2$ for (Iterator<ItemDescriptor> it = menuRaw.iterator(); it.hasNext();) { ItemDescriptor item = it.next(); if (item instanceof ActionDescriptor) { logger.debug(" Action with id=" + ((ActionDescriptor) item).getID()); //$NON-NLS-1$ } else if (item instanceof MenuDescriptor) { logger.debug(" Menu with id=" + ((MenuDescriptor) item).getID()); //$NON-NLS-1$ } else if (item instanceof SeparatorDescriptor) { logger.debug(" Separator with name=" + ((SeparatorDescriptor) item).getName()); //$NON-NLS-1$ } else if (item instanceof GroupMarkerDescriptor) { logger.debug(" GroupMarker with name=" + ((GroupMarkerDescriptor) item).getName()); //$NON-NLS-1$ } else logger.debug(" " + item); //$NON-NLS-1$ } } break; } if (!firstRun) break; lastMenuRawSize = menuRaw.size(); } // while ((firstRun && !menuRaw.isEmpty()) || !firstRun) { if (firstRun) contributionManagerKind2menuSorted.put(kind, menuSorted); // flatten the menus if we're contributing to the toolbar (which doesn't understand sub-menus) // the coolbar is handled by contributeToCoolBar(...) directly if (ContributionManagerKind.toolBar == kind) { IContributionItem[] items = contributionManager.getItems(); contributionManager.removeAll(); for (int i = 0; i < items.length; ++i) { IContributionItem item = items[i]; if (item instanceof IMenuManager) addFlattenedMenu(contributionManager, null, (IMenuManager) item); else contributionManager.add(item); } } contributionManager.update(true); debugContributions(visibleItemDescriptors, kind, true); return visibleItemDescriptors; }
From source file:org.obeonetwork.dsl.uml2.editor.internal.UmlCommonActionProvider.java
License:Open Source License
/** * This removes from the specified <code>manager</code> all * {@link org.eclipse.jface.action.ActionContributionItem}s based on the * {@link org.eclipse.jface.action.IAction}s contained in the * <code>actions</code> collection. * /*from ww w. j a va 2 s .c o m*/ * Code duplicated from UMLActionBarContributor * * @see UMLActionBarContributor#depopulateManager */ private void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) { if (actions != null) { IContributionItem[] items = manager.getItems(); for (int i = 0; i < items.length; i++) { // Look into SubContributionItems // IContributionItem contributionItem = items[i]; while (contributionItem instanceof SubContributionItem) { contributionItem = ((SubContributionItem) contributionItem).getInnerItem(); } // Delete the ActionContributionItems with matching action. // if (contributionItem instanceof ActionContributionItem) { IAction action = ((ActionContributionItem) contributionItem).getAction(); if (actions.contains(action)) { manager.remove(contributionItem); } } } } }
From source file:org.obeonetwork.dsl.uml2.editor.internal.UmlCommonActionProvider.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. * /*from w ww . j ava2 s . c o m*/ * Code duplicated from UMLActionBarContributor * * @see UMLActionBarContributor#depopulateManager */ private 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); } } } } }