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

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

Introduction

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

Prototype

IContributionItem remove(IContributionItem item);

Source Link

Document

Removes the given contribution item from the contribution items known to this manager.

Usage

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 w  w.jav a  2s  .  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 -->/* w  w w.j  av  a  2  s .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

/**
 * Dispose the contributions./*from   w  w  w. j av  a  2s .c o  m*/
 */
public void dispose() {
    super.dispose();
    if (coolItemToolBarMgr == null) {
        return;
    }
    IContributionItem[] items = coolItemToolBarMgr.getItems();
    // remove the action set's items from its action bar, don't use
    // removeAll since other items from other actions sets may be in
    // the action bar's cool item
    for (int i = 0; i < items.length; i++) {
        IContributionItem item = items[i];
        if (item instanceof PluginActionCoolBarContributionItem) {
            PluginActionCoolBarContributionItem actionSetItem = (PluginActionCoolBarContributionItem) item;
            if (actionSetItem.getActionSetId().equals(actionSetId)) {
                coolItemToolBarMgr.remove(item);
                item.dispose();
            }
        } else {
            // leave separators and group markers intact, doing
            // so allows ordering to be maintained when action sets
            // are removed then added back
        }
    }

    // remove items from this action set that are in other action bars
    for (int i = 0; i < adjunctContributions.size(); i++) {
        ContributionItem item = (ContributionItem) adjunctContributions.get(i);
        IContributionManager parent = item.getParent();
        if (parent != null) {
            parent.remove(item);
            item.dispose();
        }
    }
    toolBarContributionItem = null;
    coolItemToolBarMgr = null;
    adjunctContributions = new ArrayList();
}

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;
        }//from w  ww  .j av  a2s .c om
        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.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage.java

License:Open Source License

/**
 * Configures (or reconfigures) the page according to the given
 * configuration.// www .  j  a  v a  2 s . co  m
 * 
 * @param configuration
 */
public void setConfiguration(ContentOutlineConfiguration configuration) {
    // intentionally do not check to see if the new configuration != old
    // configuration
    if (getTreeViewer() != null) {
        // remove the key listeners
        if (getControl() != null && !getControl().isDisposed()) {
            KeyListener[] listeners = getConfiguration().getKeyListeners(getTreeViewer());
            if (listeners != null) {
                for (int i = 0; i < listeners.length; i++) {
                    getControl().removeKeyListener(listeners[i]);
                }
            }
        }

        IContributionManager toolbar = getSite().getActionBars().getToolBarManager();
        if (toolbar != null) {
            IContributionItem[] toolbarItems = getConfiguration().getToolbarContributions(getTreeViewer());
            if (toolbarItems != null && toolbarItems.length > 0) {
                for (int i = 0; i < toolbarItems.length; i++) {
                    toolbar.remove(toolbarItems[i]);
                }
                toolbar.update(false);
            }
        }

        IContributionManager menubar = getSite().getActionBars().getMenuManager();
        if (menubar != null) {
            IContributionItem[] menuItems = getConfiguration().getMenuContributions(getTreeViewer());
            if (menuItems != null && menuItems.length > 0) {
                for (int i = 0; i < menuItems.length; i++) {
                    menubar.remove(menuItems[i]);
                }
                menubar.remove(IWorkbenchActionConstants.MB_ADDITIONS);
                menubar.update(false);
            }
        }
        // clear the DnD listeners and transfer types
        if (fDragAdapter != null && !fDragAdapter.isEmpty() && fDragSource != null && !fDragSource.isDisposed()
                && fDragSource.getTransfer().length > 0) {
            if (fActiveDragListeners != null) {
                for (int i = 0; i < fActiveDragListeners.length; i++) {
                    fDragAdapter.removeDragSourceListener(fActiveDragListeners[i]);
                }
            }
            fActiveDragListeners = null;
            fDragSource.removeDragListener(fDragAdapter);
            fDragSource.setTransfer(new Transfer[0]);
        }
        if (fDropAdapter != null && !fDropAdapter.isEmpty() && fDropTarget != null && !fDropTarget.isDisposed()
                && fDropTarget.getTransfer().length > 0) {
            if (fActiveDropListeners != null) {
                for (int i = 0; i < fActiveDropListeners.length; i++) {
                    fDropAdapter.removeDropTargetListener(fActiveDropListeners[i]);
                }
            }
            fActiveDropListeners = null;
            fDropTarget.removeDropListener(fDropAdapter);
            fDropTarget.setTransfer(new Transfer[0]);
        }
        getConfiguration().getContentProvider(getTreeViewer()).inputChanged(getTreeViewer(), fInput, null);
        // release any ties to this tree viewer
        getConfiguration().unconfigure(getTreeViewer());
    }

    fConfiguration = configuration;

    if (getTreeViewer() != null && getControl() != null && !getControl().isDisposed()) {
        // (re)set the providers
        getTreeViewer().setLabelProvider(getConfiguration().getLabelProvider(getTreeViewer()));
        getTreeViewer().setContentProvider(getConfiguration().getContentProvider(getTreeViewer()));

        // view toolbar
        IContributionManager toolbar = getSite().getActionBars().getToolBarManager();
        if (toolbar != null) {
            IContributionItem[] toolbarItems = getConfiguration().getToolbarContributions(getTreeViewer());
            if (toolbarItems != null) {
                for (int i = 0; i < toolbarItems.length; i++) {
                    toolbar.add(toolbarItems[i]);
                }
                toolbar.update(true);
            }
        }
        // view menu
        IContributionManager menu = getSite().getActionBars().getMenuManager();
        if (menu != null) {
            IContributionItem[] menuItems = getConfiguration().getMenuContributions(getTreeViewer());
            if (menuItems != null) {
                for (int i = 0; i < menuItems.length; i++) {
                    menuItems[i].setVisible(true);
                    menu.add(menuItems[i]);
                    menuItems[i].update();
                }
                menu.update(true);
            }
        }
        // add the allowed DnD listeners and types
        TransferDragSourceListener[] dragListeners = getConfiguration()
                .getTransferDragSourceListeners(getTreeViewer());
        if (fDragAdapter != null && dragListeners.length > 0) {
            for (int i = 0; i < dragListeners.length; i++) {
                fDragAdapter.addDragSourceListener(dragListeners[i]);
            }
            fActiveDragListeners = dragListeners;
            fDragSource.addDragListener(fDragAdapter);
            fDragSource.setTransfer(fDragAdapter.getTransfers());
        }
        TransferDropTargetListener[] dropListeners = getConfiguration()
                .getTransferDropTargetListeners(getTreeViewer());
        if (fDropAdapter != null && dropListeners.length > 0) {
            for (int i = 0; i < dropListeners.length; i++) {
                fDropAdapter.addDropTargetListener(dropListeners[i]);
            }
            fActiveDropListeners = dropListeners;
            fDropTarget.addDropListener(fDropAdapter);
            fDropTarget.setTransfer(fDropAdapter.getTransfers());
        }
        // add the key listeners
        KeyListener[] listeners = getConfiguration().getKeyListeners(getTreeViewer());
        if (listeners != null) {
            for (int i = 0; i < listeners.length; i++) {
                getControl().addKeyListener(listeners[i]);
            }
        }
    }

    if (fInput != null) {
        setInput(fInput);
    }
}

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 -->// w  w  w  .  j av  a  2s  .  co  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.fusesource.ide.foundation.ui.util.Menus.java

License:Open Source License

public static void removeAction(IContributionManager manager, Object actionOrContributionItem) {
    if (actionOrContributionItem instanceof IContributionItem) {
        IContributionItem item = (IContributionItem) actionOrContributionItem;
        manager.remove(item);
        String id = getContributionItemId(item);
        if (id != null) {
            manager.remove(id);/*from www.  java2 s.c om*/
        }
    } else if (actionOrContributionItem instanceof IAction) {
        IAction action = (IAction) actionOrContributionItem;
        String id = getActionId(action);
        if (id != null) {
            manager.remove(id);
        }
    }
}

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.
 *///www.  ja  v a  2  s  .co 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

protected void removeAll(IContributionManager contributionManager, ContributionManagerKind kind) {
    MenuManager tmpMenu = new MenuManager();
    ActionVisibilityDecider backupActionVisibilityDecider = this.actionVisibilityDecider;
    Map<Class<? extends ItemDescriptor>, List<ItemDescriptor>> itemDescriptorsToRemove;
    try {// ww  w.  java  2  s.c  o m
        this.actionVisibilityDecider = actionVisibilityDeciderAlwaysVisible;
        itemDescriptorsToRemove = contribute(tmpMenu, kind);
    } finally {
        this.actionVisibilityDecider = backupActionVisibilityDecider;
    }

    // We only remove ActionDescriptors (i.e. ContributionItems or Actions) and NO menus,
    // because menus and separators/groupmarkers might be used by someone else.
    List<ItemDescriptor> actionDescriptorsToRemove = itemDescriptorsToRemove.get(ActionDescriptor.class);
    if (actionDescriptorsToRemove != null) {
        for (ItemDescriptor _actionDescriptor : actionDescriptorsToRemove) {
            ActionDescriptor ad = (ActionDescriptor) _actionDescriptor;
            String path = getPath(ad, kind);
            IContributionItem anchor = findUsingPath(contributionManager, path);

            if (anchor != null) {
                if (anchor instanceof MenuManager) {
                    IContributionItem removedItem = ((MenuManager) anchor).remove(ad.getID());
                    String removed = removedItem != null ? "" : "NOT "; //$NON-NLS-1$ //$NON-NLS-2$
                    logger.debug("ActionDescriptor with id " + ad.getID() + " was " + removed + "removed from " //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
                            + kind + " !"); //$NON-NLS-1$
                } else {
                    IContributionManager parent = ((ContributionItem) anchor).getParent();
                    if (parent != null) {
                        IContributionItem removedItem = parent.remove(ad.getID());
                        String removed = removedItem != null ? "" : "NOT "; //$NON-NLS-1$ //$NON-NLS-2$
                        logger.debug("ActionDescriptor with id " + ad.getID() + "was" + removed //$NON-NLS-1$//$NON-NLS-2$
                                + "removed from " + kind + " !"); //$NON-NLS-1$ //$NON-NLS-2$
                    }
                }
            }
        }
    }
}

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  www  .  j  a v  a  2  s . co 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$
    }
}