List of usage examples for org.eclipse.jface.action IContributionItem dispose
void dispose();
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(); }