Example usage for org.eclipse.jface.action IContributionItem dispose

List of usage examples for org.eclipse.jface.action IContributionItem dispose

Introduction

In this page you can find the example usage for org.eclipse.jface.action IContributionItem dispose.

Prototype

void dispose();

Source Link

Document

Disposes of this contribution item.

Usage

From source file:com.github.haixing_hu.swt.menu.MenuManagerEx.java

License:Open Source License

/**
 * Disposes of this menu manager and frees all allocated SWT resources.
 * Notifies all contribution items of the dispose. Note that this method does
 * not clean up references between this menu manager and its associated
 * contribution items. Use <code>removeAll</code> for that purpose.
 *//*from www.j  a v a2  s.  co m*/
@Override
public void dispose() {
    if (menuExist()) {
        menu.dispose();
    }
    menu = null;

    if (menuItem != null) {
        menuItem.dispose();
        menuItem = null;
    }

    disposeOldImages();

    final IContributionItem[] items = getItems();
    for (final IContributionItem item : items) {
        item.dispose();
    }

    markDirty();
}

From source file:com.isb.datamodeler.internal.ui.views.actions.workingset.CompoundContributionItem.java

License:Open Source License

private void disposeOldItems() {
    if (oldItems != null) {
        for (int i = 0; i < oldItems.length; i++) {
            IContributionItem oldItem = oldItems[i];
            oldItem.dispose();
        }//from   www.  ja  v a2  s . c  om
        oldItems = null;
    }
}

From source file:com.nokia.tools.screen.ui.editor.BaseEditorContributor.java

License:Open Source License

@Override
public void dispose() {
    getPage().removePartListener(this);
    if (getContentEditor() != null) {
        getContentEditor().removePropertyListener(this);
    }/* w ww  . java  2 s .  c  o m*/
    if (parentCoolBarManager != null && canDisposeCoolBarItems()) {
        for (ToolBarContributionItem item : coolBarItems) {
            IContributionItem realItem = parentCoolBarManager.find(item.getId());

            // We should not call dispose method directly, unless we
            // removed contribution item from the containing
            // IContributionManager before the contribution lifecycle
            // has ended.
            parentCoolBarManager.remove(realItem);
            if (realItem != null) {
                realItem.dispose();
            }
        }
        if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null
                && PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() != null) {
            parentCoolBarManager.update(true);
        }
    }
    editor = null;
    super.dispose();
}

From source file:com.sap.dirigible.ide.ui.rap.managers.CoolBarManager.java

License:Open Source License

public void update(final boolean force) {
    if ((isDirty() || force) && getControl2() != null) {
        refresh();/*from  w  w w.  j  a  va2s  .  c  o m*/
        boolean changed = false;

        /*
         * Make a list of items including only those items that are visible.
         * Separators are being removed. Because we use only one Toolbar all
         * ToolBarContributionItems will be extracted in their IContribution
         * Items.
         */
        final IContributionItem[] items = getItems();
        final List<IContributionItem> visibleItems = new ArrayList<IContributionItem>(items.length);
        for (int i = 0; i < items.length; i++) {
            final IContributionItem item = items[i];
            if (item.isVisible()) {
                if (item instanceof IToolBarContributionItem) {
                    IToolBarContributionItem toolbarItem = (IToolBarContributionItem) item;
                    IToolBarManager toolBarManager = toolbarItem.getToolBarManager();
                    IContributionItem[] toolbarItems = toolBarManager.getItems();
                    for (int j = 0; j < toolbarItems.length; j++) {
                        final IContributionItem toolItem = toolbarItems[j];
                        if (toolItem.isVisible() && !toolItem.isSeparator()) {
                            visibleItems.add(toolItem);
                        }
                    }
                }
            }
        }

        /*
         * Make a list of ToolItem widgets in the tool bar for which there
         * is no current visible contribution item. These are the widgets to
         * be disposed. Dynamic items are also removed.
         */
        ToolItem[] toolItems = toolbar.getItems();
        final ArrayList<ToolItem> toolItemsToRemove = new ArrayList<ToolItem>(toolItems.length);
        for (int i = 0; i < toolItems.length; i++) {
            final Object data = toolItems[i].getData();
            if ((data == null) || (!visibleItems.contains(data))
                    || ((data instanceof IContributionItem) && ((IContributionItem) data).isDynamic())) {
                toolItemsToRemove.add(toolItems[i]);
            }
        }

        // Dispose of any items in the list to be removed.
        for (int i = toolItemsToRemove.size() - 1; i >= 0; i--) {
            ToolItem toolItem = (ToolItem) toolItemsToRemove.get(i);
            if (!toolItem.isDisposed()) {
                Control control = toolItem.getControl();
                if (control != null) {
                    toolItem.setControl(null);
                    control.dispose();
                }
                toolItem.dispose();
            }
        }

        // Add any new items by telling them to fill.
        toolItems = toolbar.getItems();
        IContributionItem sourceItem;
        IContributionItem destinationItem;
        int sourceIndex = 0;
        int destinationIndex = 0;
        final Iterator<IContributionItem> visibleItemItr = visibleItems.iterator();
        while (visibleItemItr.hasNext()) {
            sourceItem = visibleItemItr.next();

            // Retrieve the corresponding contribution item from SWT's
            // data.
            if (sourceIndex < toolItems.length) {
                destinationItem = (IContributionItem) toolItems[sourceIndex].getData();
            } else {
                destinationItem = null;
            }

            // The items match if they are equal or both separators.
            if (destinationItem != null) {
                if (sourceItem.equals(destinationItem)) {
                    sourceIndex++;
                    destinationIndex++;
                    sourceItem.update();
                    continue;
                } else if ((destinationItem.isSeparator()) && (sourceItem.isSeparator())) {
                    toolItems[sourceIndex].setData(sourceItem);
                    sourceIndex++;
                    destinationIndex++;
                    sourceItem.update();
                    continue;
                }
            }

            // Otherwise, a new item has to be added.
            final int start = toolbar.getItemCount();
            sourceItem.fill(toolbar, destinationIndex);
            final int newItems = toolbar.getItemCount() - start;
            // add the selection listener for the styling
            StylingSelectionAdapter listener = new StylingSelectionAdapter(HEADER_TOOLBAR_VARIANT);
            for (int i = 0; i < newItems; i++) {
                ToolItem item = toolbar.getItem(destinationIndex++);
                item.setData(sourceItem);
                item.addSelectionListener(listener);
            }
            changed = true;
        }

        // Remove any old widgets not accounted for.
        for (int i = toolItems.length - 1; i >= sourceIndex; i--) {
            final ToolItem item = toolItems[i];
            if (!item.isDisposed()) {
                Control control = item.getControl();
                if (control != null) {
                    item.setControl(null);
                    control.dispose();
                }
                item.dispose();
                changed = true;
            }
        }

        // Update wrap indices. only needed by a coolbar
        // updateWrapIndices();

        // Update the sizes.
        for (int i = 0; i < items.length; i++) {
            IContributionItem item = items[i];
            item.update(SIZE);
        }

        if (changed) {
            updateToolbarTabOrder();
        }

        // We are no longer dirty.
        setDirty(false);
        styleToolItems();
        toolbar.pack();
        toolbar.layout(true, true);
        manageOverflow();
    }
}

From source file:de.loskutov.anyedit.actions.internal.StartupHelper.java

License:Open Source License

private static void remove(IContributionManager manager, int itemIndex, String id) {
    IContributionItem[] items = manager.getItems();
    int controlIdx = -1;
    for (int i = 0; i < items.length; i++) {
        if (items[i].isSeparator() || items[i] instanceof ActionContributionItem
                || items[i] instanceof CommandContributionItem) {
            controlIdx++;/*from www. j a v  a  2 s. co  m*/
            if (controlIdx == itemIndex && id.equals(items[i].getId())) {
                IContributionItem item = manager.remove(items[i]);
                // refresh menu gui
                manager.update(true);
                if (item != null) {
                    item.dispose();
                }
                break;
            }
        }
    }
}

From source file:de.loskutov.anyedit.actions.internal.StartupHelper2.java

License:Open Source License

private static void remove(IContributionManager manager, String id) {
    IContributionItem[] items = manager.getItems();
    for (int i = 0; i < items.length; i++) {
        if (items[i].isSeparator() || items[i] instanceof ActionContributionItem
                || items[i] instanceof CommandContributionItem) {
            if (id.equals(items[i].getId())) {
                IContributionItem item = manager.remove(items[i]);
                // refresh menu gui
                manager.update(true);/*from   www .  j a v a 2  s. c o m*/
                if (item != null) {
                    item.dispose();
                }
                break;
            }
        }
    }
}

From source file:ext.org.eclipse.jdt.internal.ui.actions.CategoryFilterActionGroup.java

License:Open Source License

private void updateMenu(IMenuManager manager) {
    IContributionItem[] items = manager.getItems();
    if (items != null) {
        for (int i = 0; i < items.length; i++) {
            IContributionItem item = items[i];
            if (item != null && item.getId() != null && item.getId().equals(FILTER_CATEGORY_ACTION_ID)) {
                IContributionItem removed = manager.remove(item);
                if (removed != null) {
                    item.dispose();
                }/*w  w w  .  ja  va 2s . c  o  m*/
            }
        }
    }
    List<String> menuEntries = new ArrayList<String>();
    boolean hasUncategorizedMembers = getMenuCategories(menuEntries);
    Collections.sort(menuEntries, Collator.getInstance());

    if (menuEntries.size() > 0 && hasUncategorizedMembers)
        manager.appendToGroup(CATEGORY_MENU_GROUP_NAME, new FilterUncategorizedMembersAction());

    int count = 0;
    for (Iterator<String> iter = menuEntries.iterator(); iter.hasNext();) {
        String category = iter.next();
        manager.appendToGroup(CATEGORY_MENU_GROUP_NAME, new CategoryFilterAction(category, count + 1));
        count++;
    }
}

From source file:ext.org.eclipse.jdt.internal.ui.workingsets.WorkingSetFilterActionGroup.java

License:Open Source License

private void removePreviousLRUWorkingSetActions(IMenuManager mm) {
    for (int i = 1; i < fLRUMenuCount; i++) {
        String id = WorkingSetMenuContributionItem.getId(i);
        IContributionItem item = mm.remove(id);
        if (item != null) {
            item.dispose();
            fContributions.remove(item);
        }/*  w ww.j  a  va2 s . c o  m*/
    }
}

From source file:ext.org.eclipse.jdt.internal.ui.workingsets.WorkingSetFilterActionGroup.java

License:Open Source License

public void cleanViewMenu(IMenuManager menuManager) {
    for (Iterator<IContributionItem> iter = fContributions.iterator(); iter.hasNext();) {
        IContributionItem removed = menuManager.remove(iter.next());
        if (removed != null) {
            removed.dispose();
        }//ww  w .java  2s  .  c o  m
    }
    fContributions.clear();
    fMenuManager.removeMenuListener(fMenuListener);
    fMenuListener = null;
}

From source file:ext.org.eclipse.jdt.internal.ui.workingsets.WorkingSetShowActionGroup.java

License:Open Source License

public void cleanViewMenu(IMenuManager menuManager) {
    for (Iterator<IContributionItem> iter = fContributions.iterator(); iter.hasNext();) {
        IContributionItem removed = menuManager.remove(iter.next());
        if (removed != null) {
            removed.dispose();
        }/*from w w  w.j av  a 2s.  com*/
    }
    fContributions.clear();
}