Example usage for org.eclipse.jface.action IContributionManager getItems

List of usage examples for org.eclipse.jface.action IContributionManager getItems

Introduction

In this page you can find the example usage for org.eclipse.jface.action IContributionManager getItems.

Prototype

IContributionItem[] getItems();

Source Link

Document

Returns all contribution items known to this manager.

Usage

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);
                }
            }
        }
    }
}