List of usage examples for org.eclipse.jface.action IContributionManager add
void add(IContributionItem item);
From source file:org.nightlabs.base.ui.action.registry.AbstractActionRegistry.java
License:Open Source License
/** * This method contributes WITHOUT removing items before. * * @param contributionManager// w w w . j a v a 2s . co 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.nightlabs.base.ui.search.SearchContributionItem.java
License:Open Source License
@Override public void fill(ToolBar parent, int index) { // fillToolBar(parent, index); IContributionManager toolBarManager = getParent(); String id1 = ToolBarContributionItemText.class.getName(); toolBarManager.remove(id1);/*from w w w . j a va 2s .c o m*/ toolBarManager.add(new ToolBarContributionItemText(id1)); String id2 = ToolBarContributionItemButton.class.getName(); toolBarManager.remove(id2); toolBarManager.add(new ToolBarContributionItemButton(id2)); }
From source file:org.nightlabs.base.ui.search.SearchContributionItem.java
License:Open Source License
@Override public void fill(Menu menu, int index) { if (logger.isDebugEnabled()) logger.debug("fill called for menu " + menu); //$NON-NLS-1$ String id = SearchContributionItem.class.getName(); if (getParent() != null) { IContributionManager parent = getParent(); IContributionItem removedItem = parent.remove(id); if (removedItem != null) { if (logger.isDebugEnabled()) logger.debug("item " + removedItem + " was removed from contributionManager " + parent); //$NON-NLS-1$ //$NON-NLS-2$ }//from ww w . ja v a2s.c om IMenuManager menuManager = new MenuManager( Messages.getString("org.nightlabs.base.ui.search.SearchContributionItem.menu.search.title"), //$NON-NLS-1$ id); Map<ISearchResultProviderFactory, ISearchResultProvider> factory2Instance = getUseCase() .getFactory2Instance(); for (Map.Entry<ISearchResultProviderFactory, ISearchResultProvider> entry : factory2Instance .entrySet()) { ISearchResultProviderFactory factory = entry.getKey(); MenuContributionItem item = new MenuContributionItem(factory); menuManager.add(item); } if (parent != null) { if (parent.find(IWorkbenchActionConstants.M_FILE) != null) { parent.insertAfter(IWorkbenchActionConstants.M_FILE, menuManager); if (logger.isDebugEnabled()) logger.debug("added contribution after file menu of contributionManager " + getParent()); //$NON-NLS-1$ } else { parent.add(menuManager); if (logger.isDebugEnabled()) logger.debug("added contribution to the end of the contributionManager " + getParent()); //$NON-NLS-1$ } } else { if (logger.isDebugEnabled()) logger.info("getParent() == null, nothing contributed"); //$NON-NLS-1$ } } if (logger.isDebugEnabled()) logger.info("getParent() == null, nothing contributed"); //$NON-NLS-1$ // createMenu(menu); }
From source file:org.nightlabs.editor2d.ui.EditorActionBarContributor.java
License:Open Source License
protected void addOrderActions(IContributionManager cm) { cm.add(getAction(ChangeOrderToLocalFront.ID)); cm.add(getAction(ChangeOrderOneUp.ID)); cm.add(getAction(ChangeOrderOneDown.ID)); cm.add(getAction(ChangeOrderToLocalBack.ID)); }
From source file:org.nightlabs.editor2d.ui.EditorActionBarContributor.java
License:Open Source License
protected void addAlignActions(IContributionManager cm) { cm.add(getAction(GEFActionConstants.ALIGN_LEFT)); cm.add(getAction(GEFActionConstants.ALIGN_CENTER)); cm.add(getAction(GEFActionConstants.ALIGN_RIGHT)); cm.add(new Separator()); cm.add(getAction(GEFActionConstants.ALIGN_TOP)); cm.add(getAction(GEFActionConstants.ALIGN_MIDDLE)); cm.add(getAction(GEFActionConstants.ALIGN_BOTTOM)); cm.add(new Separator()); cm.add(getAction(GEFActionConstants.MATCH_WIDTH)); cm.add(getAction(GEFActionConstants.MATCH_HEIGHT)); }
From source file:org.nightlabs.editor2d.ui.EditorActionBarContributor.java
License:Open Source License
protected void addZoomActions(IContributionManager cm) { IAction zoomInAction = getAction(GEFActionConstants.ZOOM_IN); zoomInAction.setImageDescriptor(SharedImages.getSharedImageDescriptor(EditorPlugin.getDefault(), EditorActionBarContributor.class, "ZoomIn")); //$NON-NLS-1$ cm.add(zoomInAction); IAction zoomOutAction = getAction(GEFActionConstants.ZOOM_OUT); zoomOutAction.setImageDescriptor(SharedImages.getSharedImageDescriptor(EditorPlugin.getDefault(), EditorActionBarContributor.class, "ZoomOut")); //$NON-NLS-1$ cm.add(zoomOutAction);//w w w . j a v a 2s .co m cm.add(getAction(ZoomAllAction.ID)); cm.add(getAction(ZoomSelectionAction.ID)); cm.add(getAction(ZoomPageAction.ID)); }
From source file:org.nightlabs.editor2d.ui.EditorActionBarContributor.java
License:Open Source License
protected void addBooleanShapeActions(IContributionManager cm) { cm.add(getAction(ShapeUnionAction.ID)); cm.add(getAction(ShapeIntersectAction.ID)); cm.add(getAction(ShapeSubtractAction.ID)); cm.add(getAction(ShapeExclusiveOrAction.ID)); }
From source file:org.obeonetwork.dsl.uml2.editor.internal.UmlCommonActionProvider.java
License:Open Source License
/** * This populates the specified <code>manager</code> with * {@link org.eclipse.jface.action.MenuManager}s containing * {@link org.eclipse.jface.action.ActionContributionItem}s based on the * {@link org.eclipse.jface.action.IAction}s contained in the * <code>submenuActions</code> collection, by inserting them before the * specified contribution item <code>contributionID</code>. If * <code>contributionID</code> is <code>null</code>, they are simply added. * /*from ww w. j a v a 2 s.c o m*/ * Code duplicated from UMLActionBarContributor * * @see UMLActionBarContributor#populateManager */ private void populateManager(IContributionManager manager, Map<String, Collection<IAction>> submenuActions, String contributionID) { if (submenuActions != null) { for (Map.Entry<String, Collection<IAction>> entry : submenuActions.entrySet()) { MenuManager submenuManager = new MenuManager(entry.getKey()); if (contributionID != null) { manager.insertBefore(contributionID, submenuManager); } else { manager.add(submenuManager); } populateManager(submenuManager, entry.getValue(), null); } } }
From source file:org.obeonetwork.dsl.uml2.editor.internal.UmlCommonActionProvider.java
License:Open Source License
/** * This populates the specified <code>manager</code> with * {@link org.eclipse.jface.action.ActionContributionItem}s based on the * {@link org.eclipse.jface.action.IAction}s contained in the * <code>actions</code> collection, by inserting them before the specified * contribution item <code>contributionID</code>. If * <code>contributionID</code> is <code>null</code>, they are simply added. * /* www .j a v a2 s .c om*/ * Code duplicated from UMLActionBarContributor * * @see UMLActionBarContributor#populateManager */ private void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) { if (actions != null) { for (IAction action : actions) { if (contributionID != null) { manager.insertBefore(contributionID, action); } else { manager.add(action); } } } }
From source file:org.projectusus.ui.internal.coveredprojects.CoveredProjectsView.java
License:Open Source License
private void enableContributions(IContributionManager manager) { manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); }