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.sirius.editor.editorPlugin.ContributionActionBarContributor.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   w  w  w . j  a v  a 2s.  c  o m*/
protected void depopulateManager(IContributionManager manager, Collection<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.eclipse.sirius.editor.tools.api.menu.AbstractMenuBuilder.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  w ww. ja  v a2 s. co m*/
 * @param manager
 *            the manager to update.
 * @param actions
 *            the actions to remove from the manager.
 */
protected void depopulateManager(final IContributionManager manager, final Collection actions) {
    if (actions != null) {
        final IContributionItem[] items = manager.getItems();
        for (IContributionItem item : items) {
            // Look into SubContributionItems
            //
            IContributionItem contributionItem = item;
            while (contributionItem instanceof SubContributionItem) {
                contributionItem = ((SubContributionItem) contributionItem).getInnerItem();
            }

            // Delete the ActionContributionItems with matching action.
            //
            if (contributionItem instanceof ActionContributionItem) {
                final IAction action = ((ActionContributionItem) contributionItem).getAction();
                if (actions.contains(action)) {
                    manager.remove(contributionItem);
                }
            }
        }
    }
}

From source file:org.eclipse.sirius.tests.sample.docbook.presentation.DocbookActionBarContributor.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. <!-- begin-user-doc --> <!--
 * end-user-doc -->//  ww  w .  j  a v  a2s  .  c  o m
 * 
 * @generated
 */
protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
    if (actions != null) {
        IContributionItem[] items = manager.getItems();
        for (IContributionItem item : items) {
            // Look into SubContributionItems
            //
            IContributionItem contributionItem = item;
            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.eclipse.ui.internal.ActionSetActionBars.java

License:Open Source License

/**
 * Returns the contribution item that the given contribution item should be
 * inserted after./*from   ww w. j  a  v a 2s .co m*/
 * 
 * @param startId
 *            the location to start looking alphabetically.
 * @param itemId
 *            the target item id.
 * @param mgr
 *            the contribution manager.
 * @return the contribution item that the given items should be returned
 *         after.
 * 
 * @since 3.0
 */
private IContributionItem findAlphabeticalOrder(String startId, String itemId, IContributionManager mgr) {
    IContributionItem[] items = mgr.getItems();
    int insertIndex = 0;

    // look for starting point
    while (insertIndex < items.length) {
        IContributionItem item = items[insertIndex];
        if (item.getId() != null && item.getId().equals(startId)) {
            break;
        }
        ++insertIndex;
    }

    // Find the index that this item should be inserted in
    for (int i = insertIndex + 1; i < items.length; i++) {
        IContributionItem item = items[i];
        String testId = item.getId();

        if (item.isGroupMarker()) {
            break;
        }

        if (itemId != null && testId != null) {
            if (itemId.compareTo(testId) < 1) {
                break;
            }
        }
        insertIndex = i;
    }
    // Should be inserted at the end
    if (insertIndex >= items.length) {
        return null;
    }
    return items[insertIndex];
}

From source file:org.eclipse.ui.internal.CoolBarToTrimManager.java

License:Open Source License

private void fill(MToolBar container, IContributionManager manager) {
    ToolBarManagerRenderer renderer = (ToolBarManagerRenderer) rendererFactory.getRenderer(container, null);

    for (IContributionItem item : manager.getItems()) {
        if (item == null) {
            continue;
        }// w  w  w. j  av  a 2s. c  o m
        if (renderer.getToolElement(item) != null) {
            continue;
        }
        if (item instanceof IToolBarContributionItem) {
            IToolBarManager manager2 = ((IToolBarContributionItem) item).getToolBarManager();
            //new Exception("fill(MToolBar container, IContributionManager manager) with " //$NON-NLS-1$
            //      + item + " to " + manager2).printStackTrace(); //$NON-NLS-1$
            fill(container, manager2);
        } else if (item instanceof IContributionManager) {
            // new Exception(
            //      "fill(MToolBar container, IContributionManager manager) with rogue contribution manager: " //$NON-NLS-1$
            // + item).printStackTrace();
            fill(container, (IContributionManager) item);
        } else if (item instanceof CommandContributionItem) {
            CommandContributionItem cci = (CommandContributionItem) item;
            MToolItem toolItem = MenuHelper.createToolItem(application, cci);
            manager.remove(item);
            if (toolItem != null) {
                container.getChildren().add(toolItem);
            }
        } else {
            MOpaqueToolItem toolItem = MenuFactoryImpl.eINSTANCE.createOpaqueToolItem();
            toolItem.setElementId(item.getId());
            if (item instanceof AbstractGroupMarker) {
                toolItem.setVisible(item.isVisible());
            }
            container.getChildren().add(toolItem);
            renderer.linkModelToContribution(toolItem, item);
        }
    }
}

From source file:org.eclipse.ui.internal.dialogs.cpd.CustomizePerspectiveDialog.java

License:Open Source License

/**
 * Causes all items under the manager to be visible, so they can be read.
 *
 * @param manager//from  w w w  .ja  v a 2 s .co  m
 */
private static void makeAllContributionsVisible(IContributionManager manager) {
    IContributionItem[] items = manager.getItems();

    for (IContributionItem item : items) {
        makeContributionVisible(item);
    }
}

From source file:org.eclipse.ui.internal.dialogs.cpd.CustomizePerspectiveDialog.java

License:Open Source License

private void createMenuEntries(MMenu menu, DisplayItem parent) {
    Map<IContributionItem, IContributionItem> findDynamics = new HashMap<>();
    DynamicContributionItem dynamicEntry = null;

    if (menu.getParent() != null) {
        // Search for any dynamic menu entries which will be handled later
        Object data = menuMngrRenderer.getManager(menu);
        if (data instanceof IContributionManager) {
            IContributionManager manager = (IContributionManager) data;
            IContributionItem[] items = manager.getItems();
            for (int i = 0; i < items.length; i++) {
                IContributionItem ci = items[i];
                if (ci.isDynamic()) {
                    findDynamics.put(i > 0 ? items[i - 1] : null, ci);
                }/*from www.  j a va  2  s .  co  m*/
            }
            // If there is an item with no preceding item, set it up to be
            // added first.
            if (findDynamics.containsKey(null)) {
                IContributionItem item = findDynamics.get(null);
                dynamicEntry = new DynamicContributionItem(item);
                dynamicEntry.setCheckState(getMenuItemIsVisible(dynamicEntry));
                dynamicEntry.setActionSet(idToActionSet.get(getActionSetID(item)));
                parent.addChild(dynamicEntry);
            }
        }
    }

    for (MMenuElement menuItem : menu.getChildren()) {
        dynamicEntry = createMenuEntry(parent, findDynamics, dynamicEntry, menuItem);
    }
}

From source file:org.eclipse.ui.internal.dialogs.CustomizePerspectiveDialog.java

License:Open Source License

/**
 * Causes all items under the manager to be visible, so they can be read.
 * /*from ww w  .  ja v a2  s  .com*/
 * @param manager
 */
private static void makeAllContributionsVisible(IContributionManager manager) {
    IContributionItem[] items = manager.getItems();

    for (int i = 0; i < items.length; i++) {
        makeContributionVisible(items[i]);
    }
}

From source file:org.eclipse.ui.internal.dialogs.CustomizePerspectiveDialog.java

License:Open Source License

private void createMenuEntries(MMenu menu, DisplayItem parent, boolean trackDynamics) {
    Map<IContributionItem, IContributionItem> findDynamics = new HashMap<IContributionItem, IContributionItem>();
    DynamicContributionItem dynamicEntry = null;

    if (trackDynamics && menu.getParent() != null) {
        // Search for any dynamic menu entries which will be handled later
        Object data = menuMngrRenderer.getManager(menu);
        if (data instanceof IContributionManager) {
            IContributionManager manager = (IContributionManager) data;
            IContributionItem[] items = manager.getItems();
            for (int i = 0; i < items.length; i++) {
                if (items[i].isDynamic()) {
                    findDynamics.put(i > 0 ? items[i - 1] : null, items[i]);
                }//from  w w w. j ava  2 s .  c  o  m
            }
            // If there is an item with no preceeding item, set it up to be
            // added first.
            if (findDynamics.containsKey(null)) {
                IContributionItem item = findDynamics.get(null);
                dynamicEntry = new DynamicContributionItem(item);
                parent.addChild(dynamicEntry);
            }
        }
    }

    for (MMenuElement menuItem : menu.getChildren()) {
        if ((menuItem.getLabel() != null && menuItem.getLabel().length() != 0)
                || (menuItem.getLocalizedLabel() != null && menuItem.getLocalizedLabel().length() != 0)
                || (menuItem instanceof MHandledMenuItem) || menuItem.getWidget() != null) {
            IContributionItem contributionItem;
            if (menuItem instanceof MMenu) {
                contributionItem = menuMngrRenderer.getManager((MMenu) menuItem);
            } else {
                contributionItem = menuMngrRenderer.getContribution(menuItem);
            }
            if (dynamicEntry != null && contributionItem.equals(dynamicEntry.getIContributionItem())) {
                // If the last item added is the item meant to go before the
                // given dynamic entry, add the dynamic entry so it is in
                // the
                // correct order.
                dynamicEntry.addCurrentItem((MenuItem) menuItem.getWidget());
                // TODO: might not work
            } else {
                String text = menuItem.getLocalizedLabel();
                if (text == null || text.length() == 0) {
                    text = menuItem.getLabel();
                }
                ImageDescriptor iconDescriptor = null;
                String iconURI = menuItem.getIconURI();
                if (iconURI != null && iconURI.length() > 0) {
                    iconDescriptor = resUtils.imageDescriptorFromURI(URI.createURI(iconURI));
                }

                if (menuItem.getWidget() instanceof MenuItem) {
                    MenuItem item = (MenuItem) menuItem.getWidget();
                    if (text == null) {
                        if ("".equals(item.getText())) { //$NON-NLS-1$
                            continue;
                        }
                        text = item.getText();
                    }
                    if (iconDescriptor == null) {
                        Image image = item.getImage();
                        if (image != null) {
                            iconDescriptor = ImageDescriptor.createFromImage(image);
                        }
                    }
                } else if (menuItem instanceof MHandledMenuItem) {
                    MHandledMenuItem hmi = (MHandledMenuItem) menuItem;
                    final String i18nLabel = hmi.getLocalizedLabel();
                    if (i18nLabel != null) {
                        text = i18nLabel;
                    } else if (hmi.getWbCommand() != null) {
                        try {
                            text = hmi.getWbCommand().getName();
                        } catch (NotDefinedException e) {
                            // we'll just ignore a failure
                        }
                    }
                }
                DisplayItem menuEntry = new DisplayItem(text, contributionItem);

                if (iconDescriptor != null) {
                    menuEntry.setImageDescriptor(iconDescriptor);
                }
                menuEntry.setActionSet((ActionSet) idToActionSet.get(getActionSetID(menuItem)));
                parent.addChild(menuEntry);

                if (ActionFactory.NEW.getId().equals(contributionItem.getId())) {
                    initializeNewWizardsMenu(menuEntry);
                    wizards = menuEntry;
                } else if (SHORTCUT_CONTRIBUTION_ITEM_ID_OPEN_PERSPECTIVE.equals(contributionItem.getId())) {
                    initializePerspectivesMenu(menuEntry);
                    perspectives = menuEntry;
                } else if (SHORTCUT_CONTRIBUTION_ITEM_ID_SHOW_VIEW.equals(contributionItem.getId())) {
                    initializeViewsMenu(menuEntry);
                    views = menuEntry;
                } else {
                    if (menuItem instanceof MMenu) {// TODO:menuItem any
                        // other instance
                        createMenuEntries((MMenu) menuItem, menuEntry, trackDynamics);
                    }
                }

                if (menuEntry.getChildren().isEmpty()) {
                    menuEntry.setCheckState(getMenuItemIsVisible(menuEntry));
                }

                if (iconDescriptor == null) {
                    if (parent != null && parent.getParent() == null) {
                        menuEntry.setImageDescriptor(menuImageDescriptor);
                    } else if (menuEntry.getChildren().size() > 0) {
                        menuEntry.setImageDescriptor(submenuImageDescriptor);
                    }
                }
            }
            if (trackDynamics && findDynamics.containsKey(contributionItem)) {
                IContributionItem item = findDynamics.get(contributionItem);
                dynamicEntry = new DynamicContributionItem(item);
                dynamicEntry.setCheckState(getMenuItemIsVisible(dynamicEntry));
                parent.addChild(dynamicEntry);
            }
        } else if (menuItem instanceof MOpaqueMenuItem) {
            IContributionItem contributionItem = menuMngrRenderer.getContribution(menuItem);
            if (contributionItem instanceof ActionContributionItem) {
                final IAction action = ((ActionContributionItem) contributionItem).getAction();
                DisplayItem menuEntry = new DisplayItem(action.getText(), contributionItem);
                menuEntry.setImageDescriptor(action.getImageDescriptor());
                menuEntry.setActionSet((ActionSet) idToActionSet.get(getActionSetID(contributionItem)));
                parent.addChild(menuEntry);
                if (menuEntry.getChildren().isEmpty()) {
                    menuEntry.setCheckState(getMenuItemIsVisible(menuEntry));
                }
            }
        }
    }
}

From source file:org.eclipse.ui.internal.PluginActionSetBuilder.java

License:Open Source License

/**
 * Returns the insertion point for a new contribution item.  Clients should
 * use this item as a reference point for insertAfter.
 *
 * @param startId the reference id for insertion
 * @param sortId the sorting id for the insertion.  If null then the item
 *      will be inserted at the end of all action sets.
 * @param mgr the target menu manager.//w w  w  .  ja  va2 s .c om
 * @param startVsEnd if <code>true</code> the items are added at the start of
 *      action with the same id; else they are added to the end
 * @return the insertion point, or null if not found.
 */
public static IContributionItem findInsertionPoint(String startId, String sortId, IContributionManager mgr,
        boolean startVsEnd) {
    // Get items.
    IContributionItem[] items = mgr.getItems();

    // Find the reference item.
    int insertIndex = 0;
    while (insertIndex < items.length) {
        if (startId.equals(items[insertIndex].getId())) {
            break;
        }
        ++insertIndex;
    }
    if (insertIndex >= items.length) {
        return null;
    }

    // Calculate startVsEnd comparison value.
    int compareMetric = 0;
    if (startVsEnd) {
        compareMetric = 1;
    }

    // Find the insertion point for the new item.
    // We do this by iterating through all of the previous
    // action set contributions define within the current group.
    for (int nX = insertIndex + 1; nX < items.length; nX++) {
        IContributionItem item = items[nX];
        if (item.isSeparator() || item.isGroupMarker()) {
            // Fix for bug report 18357
            break;
        }
        if (item instanceof IActionSetContributionItem) {
            if (sortId != null) {
                String testId = ((IActionSetContributionItem) item).getActionSetId();
                if (sortId.compareTo(testId) < compareMetric) {
                    break;
                }
            }
            insertIndex = nX;
        } else {
            break;
        }
    }
    // Return item.
    return items[insertIndex];
}