List of usage examples for org.eclipse.jface.action IMenuManager isVisible
boolean isVisible();
From source file:com.aptana.ide.editors.unified.actions.UnifiedActionContributor.java
License:Open Source License
/** * Add actions to the editor's menus.//from w ww . j av a 2 s .c o m * * @param menu */ public void contributeToMenu(IMenuManager menu) { if (fShowDocAction == null) { return; } super.contributeToMenu(menu); IMenuManager editMenu = menu.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT); if (editMenu != null) { editMenu.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, fShowDocAction); editMenu.add(this.fCodeFormatAction); editMenu.setVisible(true); } if (fOpenDeclarationAction != null) { IMenuManager navigateMenu = menu.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE); if (navigateMenu != null) { navigateMenu.appendToGroup(IWorkbenchActionConstants.OPEN_EXT, fOpenDeclarationAction); navigateMenu.setVisible(true); } } if (fQuickOutlineAction != null) { IMenuManager navigateMenu = menu.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE); if (navigateMenu != null) { navigateMenu.appendToGroup(IWorkbenchActionConstants.OPEN_EXT, fQuickOutlineAction); navigateMenu.setVisible(true); } } IMenuManager gotoMenu = menu.findMenuUsingPath("navigate/goTo"); //$NON-NLS-1$ if (gotoMenu != null) { gotoMenu.add(new Separator("additions2")); //$NON-NLS-1$ gotoMenu.appendToGroup("additions2", fGotoMatchingBracket); //$NON-NLS-1$ if (!gotoMenu.isVisible()) gotoMenu.setVisible(true); } }
From source file:ext.org.eclipse.jdt.internal.ui.actions.CategoryFilterActionGroup.java
License:Open Source License
public void contributeToViewMenu(IMenuManager menuManager) { menuManager.add(new Separator(CATEGORY_MENU_GROUP_NAME)); menuManager.appendToGroup(CATEGORY_MENU_GROUP_NAME, fMenuAction); fMenuListener = new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { if (!manager.isVisible()) return; updateMenu(manager);/*w w w . ja v a 2s .c om*/ } }; menuManager.addMenuListener(fMenuListener); fMenuManager = menuManager; }
From source file:net.enilink.komma.edit.ui.action.ActionMenuManager.java
License:Open Source License
public void updateAll(boolean force) { update(force);/*from www .j a v a2s . co m*/ IContributionItem[] items = getRealItems(); for (int i = 0; i < items.length; ++i) { IContributionItem ci = items[i]; if (ci instanceof IMenuManager) { IMenuManager mm = (IMenuManager) ci; if (mm.isVisible()) { mm.updateAll(force); } } } }
From source file:net.refractions.udig.project.ui.internal.tool.display.ToolManager.java
License:Open Source License
/** * Used to contribute Tools to the provided menu manger. * <p>//from w w w . ja v a 2 s .c o m * The following contributions are made: * <ul> * <li>navigate: forward and backward buttons * <li>map: an entry for each tool category * </ul> */ public void contributeToMenu(IMenuManager manager) { IMenuManager navigateMenu = manager.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE); if (navigateMenu == null) { // I would like to arrange for the Navigate menu to already // be in place before the ToolManager is kicked into action // (this is part of the missions to have uDig plugins walk // softly when being hosted in other RCP applications) // See UDIGActionBarAdvisor for hosting requirements. navigateMenu = new MenuManager(Messages.ToolManager_menu_manager_title, IWorkbenchActionConstants.M_NAVIGATE); IContributionItem additions = manager.find(IWorkbenchActionConstants.MB_ADDITIONS); if (additions == null || !(additions instanceof GroupMarker)) { manager.add(navigateMenu); } else { manager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, navigateMenu); } navigateMenu.add(new GroupMarker(IWorkbenchActionConstants.NAV_START)); navigateMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); navigateMenu.add(new GroupMarker(IWorkbenchActionConstants.NAV_END)); } IWorkbench workbench = PlatformUI.getWorkbench(); IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); // we are using the global BACK and FORWARD actions here // and will register "handlers" for these commands navigateMenu.appendToGroup(IWorkbenchActionConstants.NAV_END, ActionFactory.BACK.create(window)); navigateMenu.appendToGroup(IWorkbenchActionConstants.NAV_END, ActionFactory.FORWARD.create(window)); if (!manager.isVisible()) { // since this is the top level menu bar why would it not be visible? manager.setVisible(true); } IMenuManager mapMenu = manager.findMenuUsingPath("map"); if (mapMenu == null) { // Once again the hosting RCP application should of provided // us with a Map menu; but let's be careful and make our own here // if needed. // See UDIGActionBarAdvisor for hosting requirements. mapMenu = new MenuManager(Messages.ToolManager_menu_manager_title, "map"); manager.add(mapMenu); mapMenu.add(new GroupMarker("mapStart")); mapMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); mapMenu.add(new GroupMarker("mapEnd")); } // churn through each category and add stuff as needed // note we check with the cmdService to see what we if the actionSet // associated with this cateogry is turned on by the // current perspective. for (MenuToolCategory category : menuCategories) { category.contribute(manager); } }
From source file:org.eclipse.gmf.runtime.gef.ui.internal.actions.MenuManagerEx.java
License:Open Source License
/** * Incrementally builds the menu from the contribution items. * This method leaves out double separators and separators in the first * or last position./*from w ww .ja v a 2 s .co m*/ * * @param force <code>true</code> means update even if not dirty, * and <code>false</code> for normal incremental updating * @param recursive <code>true</code> means recursively update * all submenus, and <code>false</code> means just this menu */ protected void update(boolean force, boolean recursive) { if (isDirty() || force) { if (menu != null && !menu.isDisposed()) { // clean contains all active items without double separators IContributionItem[] items = getItems(); List clean = new ArrayList(items.length); IContributionItem separator = null; for (int i = 0; i < items.length; ++i) { IContributionItem ci = items[i]; if (!shouldDisplay(ci)) { continue; } if (ci.isSeparator()) { // delay creation until necessary // (handles both adjacent separators, and separator at end) separator = ci; } else { if (separator != null) { if (clean.size() > 0) // no separator if first item clean.add(separator); separator = null; } clean.add(ci); } } // remove obsolete (removed or non active) Item[] mi = menu.getItems(); for (int i = 0; i < mi.length; i++) { Object data = mi[i].getData(); if (data == null || !clean.contains(data) || (data instanceof IContributionItem && ((IContributionItem) data).isDynamic())) mi[i].dispose(); } // add new mi = menu.getItems(); int srcIx = 0; int destIx = 0; for (Iterator e = clean.iterator(); e.hasNext();) { IContributionItem src = (IContributionItem) e.next(); IContributionItem dest; // get corresponding item in SWT widget if (srcIx < mi.length) dest = (IContributionItem) mi[srcIx].getData(); else dest = null; if (dest != null && src.equals(dest)) { srcIx++; destIx++; } else if (dest != null && dest.isSeparator() && src.isSeparator()) { mi[srcIx].setData(src); srcIx++; destIx++; } else { int start = menu.getItemCount(); src.fill(menu, destIx); int newItems = menu.getItemCount() - start; Item[] tis = menu.getItems(); for (int i = 0; i < newItems; i++) tis[destIx + i].setData(src); destIx += newItems; } // May be we can optimize this call. If the menu has just // been created via the call src.fill(fMenuBar, destIx) then // the menu has already been updated with update(true) // (see MenuManager). So if force is true we do it again. But // we can't set force to false since then information for the // sub sub menus is lost. if (recursive) { if (src instanceof IMenuManager) ((IMenuManager) src).updateAll(force); } } setDirty(false); updateMenuItem(); } } else { // I am not dirty. Check if I must recursivly walk down the hierarchy. if (recursive) { IContributionItem[] items = getItems(); for (int i = 0; i < items.length; ++i) { IContributionItem ci = items[i]; if (ci instanceof IMenuManager) { IMenuManager mm = (IMenuManager) ci; if (mm.isVisible()) { mm.updateAll(force); } } } } } }
From source file:org.infoglue.igide.view.actions.ActionsHandler.java
License:Open Source License
private void hookContextMenu() { Logger.logConsole("hookContextMenu"); MenuManager menuMgr = new MenuManager("#PopupMenu"); menuMgr.setRemoveAllWhenShown(true); menuMgr.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { try { ISelection selection = viewer.getSelection(); Logger.logConsole("selection:" + selection); ContentNode node = (ContentNode) ((IStructuredSelection) selection).getFirstElement(); Logger.logConsole("node:" + node); fillContextMenu(node, manager); } catch (Exception e) { Logger.logConsole("Error:" + e.getMessage()); } finally { fillContextMenu(manager); }/*from ww w . j a v a2 s . c om*/ Logger.logConsole("Ready to show:" + manager); Logger.logConsole("Ready to show:" + manager.getItems()); Logger.logConsole("Ready to show:" + manager.getItems() + ":" + manager.isVisible()); } }); Menu menu = menuMgr.createContextMenu(viewer.getControl()); Logger.logConsole("menu:" + menu); viewer.getControl().setMenu(menu); Logger.logConsole("viewer:" + viewer); viewPart.getSite().registerContextMenu(menuMgr, viewPart.getSite().getSelectionProvider()); viewPart.getSite().registerContextMenu(menuMgr, viewer); Logger.logConsole("Site:" + viewPart.getSite() + ":" + viewPart.getSite().getRegisteredName()); }