List of usage examples for org.eclipse.jface.action IContributionManager update
void update(boolean force);
From source file:org.jboss.tools.openshift.internal.common.ui.utils.UIUtils.java
License:Open Source License
/** * Register a {@link ContributionManager}. The contribution manager gets * unregistered on control disposal// ww w. j a v a 2s . c o m * * @param id * the id * @param contributionManager * the contribution manager * @param control * the control * * @see ContributionManager * @see IMenuService * @see DisposeListener */ public static void registerContributionManager(final String id, final IContributionManager contributionManager, final Control control) { Assert.isNotNull(id); Assert.isNotNull(contributionManager); Assert.isTrue(control != null && !control.isDisposed()); final IMenuService menuService = (IMenuService) PlatformUI.getWorkbench().getService(IMenuService.class); menuService.populateContributionManager((ContributionManager) contributionManager, id); contributionManager.update(true); control.addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { menuService.releaseContributions((ContributionManager) contributionManager); } }); }
From source file:org.jkiss.dbeaver.ui.controls.StatusLineContributionItemEx.java
License:Apache License
private void updateUI() { setVisible(true);//from w w w. j a v a 2 s. c om IContributionManager contributionManager = getParent(); if (contributionManager != null) { contributionManager.update(true); } }
From source file:org.kalypso.ui.internal.layoutwizard.map.MapLayoutPart.java
License:Open Source License
/** * Fills the toolbar according to the configuration. *///from ww w. j a v a 2s . co m private void fillMapToolbar(final IContributionManager manager, final Arguments toolbarArguments) { final String[] urisKeys = toolbarArguments.findAllKeys(PROP_MAP_TOOLBAR_URI); for (final String key : urisKeys) { final String uri = toolbarArguments.getProperty(key); // REMARK: we use a general eclipse mechanism to populate the toolbar here // we only use 'toolbar'-uris at the moment, maybe we can later add popup and menu. if (uri.startsWith("toolbar")) //$NON-NLS-1$ ContributionUtils.populateContributionManager(getContext(), manager, uri); } manager.update(true); }
From source file:org.netxms.ui.eclipse.console.ServerNameStatusLineItem.java
License:Open Source License
/** * Sets the text to be displayed in the status line. * // ww w .j av a 2 s.com * @param text the text to be displayed, must not be <code>null</code> */ public void setServerInfo(String name, String color) { serverName = name; serverColor = (color != null) ? ColorConverter.parseColorDefinition(color) : null; if (label != null && !label.isDisposed()) { label.setText(serverName); setColors(); } // Always update if using 'CALC_TRUE_WIDTH' if (!isVisible() || charWidth == CALC_TRUE_WIDTH) { setVisible(true); IContributionManager contributionManager = getParent(); if (contributionManager != null) { contributionManager.update(true); } } }
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 w w. j ava 2 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/* w w w . j a va2s . 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:uk.ac.gda.ui.status.LinkContributionItem.java
License:Open Source License
private void updateManager() { if (this.text.length() == 0) { if (isVisible()) { setVisible(false);/* w w w . jav a 2s . c om*/ IContributionManager contributionManager = getParent(); if (contributionManager != null) { contributionManager.update(true); } } } else { if (!isVisible()) { setVisible(true); IContributionManager contributionManager = getParent(); if (contributionManager != null) { contributionManager.update(true); } } } }