List of usage examples for org.eclipse.jface.action MenuManager isVisible
@Override
public boolean isVisible()
From source file:net.yatomiya.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java
License:Open Source License
/** * @param menuManager//ww w . j av a 2 s . c o m * @param menuModel */ public void reconcileManagerToModel(MenuManager menuManager, MMenu menuModel) { List<MMenuElement> modelChildren = menuModel.getChildren(); HashSet<MMenuItem> oldModelItems = new HashSet<>(); HashSet<MMenu> oldMenus = new HashSet<>(); HashSet<MMenuSeparator> oldSeps = new HashSet<>(); for (MMenuElement itemModel : modelChildren) { if (OpaqueElementUtil.isOpaqueMenuSeparator(itemModel)) { oldSeps.add((MMenuSeparator) itemModel); } else if (OpaqueElementUtil.isOpaqueMenuItem(itemModel)) { oldModelItems.add((MMenuItem) itemModel); } else if (OpaqueElementUtil.isOpaqueMenu(itemModel)) { oldMenus.add((MMenu) itemModel); } } IContributionItem[] items = menuManager.getItems(); for (int src = 0, dest = 0; src < items.length; src++, dest++) { IContributionItem item = items[src]; if (item instanceof SubContributionItem) { // get the wrapped contribution item item = ((SubContributionItem) item).getInnerItem(); } if (item instanceof MenuManager) { MenuManager childManager = (MenuManager) item; MMenu childModel = getMenuModel(childManager); if (childModel == null) { MMenu legacyModel = OpaqueElementUtil.createOpaqueMenu(); legacyModel.setElementId(childManager.getId()); legacyModel.setVisible(childManager.isVisible()); legacyModel.setLabel(childManager.getMenuText()); linkModelToManager(legacyModel, childManager); OpaqueElementUtil.setOpaqueItem(legacyModel, childManager); if (modelChildren.size() > dest) { modelChildren.add(dest, legacyModel); } else { modelChildren.add(legacyModel); } reconcileManagerToModel(childManager, legacyModel); } else { if (OpaqueElementUtil.isOpaqueMenu(childModel)) { oldMenus.remove(childModel); } if (modelChildren.size() > dest) { if (modelChildren.get(dest) != childModel) { modelChildren.remove(childModel); modelChildren.add(dest, childModel); } } else { modelChildren.add(childModel); } if (childModel instanceof MPopupMenu) { if (((MPopupMenu) childModel).getContext() == null) { IEclipseContext lclContext = getContext(menuModel); if (lclContext != null) { ((MPopupMenu) childModel) .setContext(lclContext.createChild(childModel.getElementId())); } } } if (childModel.getChildren().size() != childManager.getSize()) { reconcileManagerToModel(childManager, childModel); } } } else if (item.isSeparator() || item.isGroupMarker()) { MMenuElement menuElement = getMenuElement(item); if (menuElement == null) { MMenuSeparator legacySep = OpaqueElementUtil.createOpaqueMenuSeparator(); legacySep.setElementId(item.getId()); legacySep.setVisible(item.isVisible()); OpaqueElementUtil.setOpaqueItem(legacySep, item); linkModelToContribution(legacySep, item); if (modelChildren.size() > dest) { modelChildren.add(dest, legacySep); } else { modelChildren.add(legacySep); } } else if (OpaqueElementUtil.isOpaqueMenuSeparator(menuElement)) { MMenuSeparator legacySep = (MMenuSeparator) menuElement; oldSeps.remove(legacySep); if (modelChildren.size() > dest) { if (modelChildren.get(dest) != legacySep) { modelChildren.remove(legacySep); modelChildren.add(dest, legacySep); } } else { modelChildren.add(legacySep); } } } else { MMenuElement menuElement = getMenuElement(item); if (menuElement == null) { MMenuItem legacyItem = OpaqueElementUtil.createOpaqueMenuItem(); legacyItem.setElementId(item.getId()); legacyItem.setVisible(item.isVisible()); OpaqueElementUtil.setOpaqueItem(legacyItem, item); linkModelToContribution(legacyItem, item); if (modelChildren.size() > dest) { modelChildren.add(dest, legacyItem); } else { modelChildren.add(legacyItem); } } else if (OpaqueElementUtil.isOpaqueMenuItem(menuElement)) { MMenuItem legacyItem = (MMenuItem) menuElement; oldModelItems.remove(legacyItem); if (modelChildren.size() > dest) { if (modelChildren.get(dest) != legacyItem) { modelChildren.remove(legacyItem); modelChildren.add(dest, legacyItem); } } else { modelChildren.add(legacyItem); } } } } if (!oldModelItems.isEmpty()) { modelChildren.removeAll(oldModelItems); for (MMenuItem model : oldModelItems) { IContributionItem ici = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model); clearModelToContribution(model, ici); } } if (!oldMenus.isEmpty()) { modelChildren.removeAll(oldMenus); for (MMenu oldMenu : oldMenus) { MenuManager oldManager = getManager(oldMenu); clearModelToManager(oldMenu, oldManager); } } if (!oldSeps.isEmpty()) { modelChildren.removeAll(oldSeps); for (MMenuSeparator model : oldSeps) { IContributionItem item = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model); clearModelToContribution(model, item); } } }
From source file:net.yatomiya.e4.ui.workbench.renderers.swt.StackRenderer.java
License:Open Source License
/** * Determine whether the given view menu has any visible menu items. * * @param viewMenu/*from w ww .ja v a 2 s .c o m*/ * the view menu to check * @param part * the view menu's parent part * @return <tt>true</tt> if the specified view menu has visible children, * <tt>false</tt> otherwise */ private boolean hasVisibleMenuItems(MMenu viewMenu, MPart part) { if (!viewMenu.isToBeRendered() || !viewMenu.isVisible()) { return false; } for (MMenuElement menuElement : viewMenu.getChildren()) { if (menuElement.isToBeRendered() && menuElement.isVisible()) { if (OpaqueElementUtil.isOpaqueMenuItem(menuElement) || OpaqueElementUtil.isOpaqueMenuSeparator(menuElement)) { IContributionItem item = (IContributionItem) OpaqueElementUtil.getOpaqueItem(menuElement); if (item != null && item.isVisible()) { return true; } } else { return true; } } } Object menuRenderer = viewMenu.getRenderer(); if (menuRenderer instanceof MenuManagerRenderer) { MenuManager manager = ((MenuManagerRenderer) menuRenderer).getManager(viewMenu); if (manager != null && manager.isVisible()) { return true; } } Control control = (Control) part.getWidget(); if (control != null) { Menu menu = (Menu) renderer.createGui(viewMenu, control.getShell(), part.getContext()); if (menu != null) { menuRenderer = viewMenu.getRenderer(); if (menuRenderer instanceof MenuManagerRenderer) { MenuManagerRenderer menuManagerRenderer = (MenuManagerRenderer) menuRenderer; MenuManager manager = menuManagerRenderer.getManager(viewMenu); if (manager != null) { // remark ourselves as dirty so that the menu will be // reconstructed manager.markDirty(); } } return menu.getItemCount() != 0; } } return false; }
From source file:org.eclipse.e4.demo.split.renderer.swt.SplitStackRenderer.java
License:Open Source License
/** * Determine whether the given view menu has any visible menu items. * //from w w w. ja v a 2 s .c o m * @param viewMenu * the view menu to check * @param part * the view menu's parent part * @return <tt>true</tt> if the specified view menu has visible children, * <tt>false</tt> otherwise */ private boolean hasVisibleMenuItems(MMenu viewMenu, MPart part) { if (!viewMenu.isToBeRendered() || !viewMenu.isVisible()) { return false; } for (MMenuElement menuElement : viewMenu.getChildren()) { if (menuElement.isToBeRendered() && menuElement.isVisible()) { if (menuElement instanceof MOpaqueMenuItem) { IContributionItem item = (IContributionItem) ((MOpaqueMenuItem) menuElement).getOpaqueItem(); if (item != null && item.isVisible()) { return true; } } else if (menuElement instanceof MOpaqueMenuSeparator) { IContributionItem item = (IContributionItem) ((MOpaqueMenuSeparator) menuElement) .getOpaqueItem(); if (item != null && item.isVisible()) { return true; } } else { return true; } } } Object menuRenderer = viewMenu.getRenderer(); if (menuRenderer instanceof MenuManagerRenderer) { MenuManager manager = ((MenuManagerRenderer) menuRenderer).getManager(viewMenu); if (manager != null && manager.isVisible()) { return true; } } Control control = (Control) part.getWidget(); if (control != null) { Menu menu = (Menu) renderer.createGui(viewMenu, control.getShell(), part.getContext()); if (menu != null) { menuRenderer = viewMenu.getRenderer(); if (menuRenderer instanceof MenuManagerRenderer) { MenuManagerRenderer menuManagerRenderer = (MenuManagerRenderer) menuRenderer; MenuManager manager = menuManagerRenderer.getManager(viewMenu); if (manager != null) { // remark ourselves as dirty so that the menu will be // reconstructed manager.markDirty(); } } return menu.getItemCount() != 0; } } return false; }
From source file:org.eclipse.e4.ui.tests.workbench.MMenuItemTest.java
License:Open Source License
public void testMenuBarVisibility() throws Exception { MWindow window = BasicFactoryImpl.eINSTANCE.createWindow(); MMenu menuBar = MenuFactoryImpl.eINSTANCE.createMenu(); menuBar.setElementId("org.eclipse.ui.main.menu"); window.setMainMenu(menuBar);// w ww.ja va 2 s. c o m MMenu fileMenu = MenuFactoryImpl.eINSTANCE.createMenu(); fileMenu.setElementId("file"); fileMenu.setLabel("File"); menuBar.getChildren().add(fileMenu); MMenuItem item1 = MenuFactoryImpl.eINSTANCE.createDirectMenuItem(); item1.setElementId("item1"); item1.setLabel("item1"); fileMenu.getChildren().add(item1); MMenuSeparator sep = MenuFactoryImpl.eINSTANCE.createMenuSeparator(); sep.setElementId("group1"); fileMenu.getChildren().add(sep); MMenuItem item2 = MenuFactoryImpl.eINSTANCE.createDirectMenuItem(); item2.setElementId("item2"); item2.setLabel("item2"); fileMenu.getChildren().add(item2); MApplication application = ApplicationFactoryImpl.eINSTANCE.createApplication(); application.getChildren().add(window); application.setContext(appContext); appContext.set(MApplication.class.getName(), application); createMenuContribution(application); wb = new E4Workbench(window, appContext); wb.createAndRunUI(window); MenuManagerRenderer renderer = getRenderer(appContext, menuBar); MenuManager manager = renderer.getManager(menuBar); manager.updateAll(true); assertEquals(2, manager.getSize()); MenuManager vanishManager = (MenuManager) manager.getItems()[1]; assertEquals("vanish", vanishManager.getId()); assertFalse(vanishManager.isVisible()); assertNull(vanishManager.getMenu()); appContext.set("mmc1", Boolean.TRUE); assertTrue(vanishManager.isVisible()); assertNotNull(vanishManager.getMenu()); appContext.remove("mmc1"); assertFalse(vanishManager.isVisible()); Menu vanishMenu = vanishManager.getMenu(); if (vanishMenu != null) { assertTrue(vanishMenu.isDisposed()); } appContext.set("mmc1", Boolean.TRUE); assertTrue(vanishManager.isVisible()); assertNotNull(vanishManager.getMenu()); assertFalse(vanishManager.getMenu().isDisposed()); }
From source file:org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java
License:Open Source License
/** * @param menuManager/*from www . j av a 2s. c o m*/ * @param menuModel */ public void reconcileManagerToModel(MenuManager menuManager, MMenu menuModel) { List<MMenuElement> modelChildren = menuModel.getChildren(); HashSet<MOpaqueMenuItem> oldModelItems = new HashSet<MOpaqueMenuItem>(); HashSet<MOpaqueMenu> oldMenus = new HashSet<MOpaqueMenu>(); HashSet<MOpaqueMenuSeparator> oldSeps = new HashSet<MOpaqueMenuSeparator>(); for (MMenuElement itemModel : modelChildren) { if (itemModel instanceof MOpaqueMenuSeparator) { oldSeps.add((MOpaqueMenuSeparator) itemModel); } else if (itemModel instanceof MOpaqueMenuItem) { oldModelItems.add((MOpaqueMenuItem) itemModel); } else if (itemModel instanceof MOpaqueMenu) { oldMenus.add((MOpaqueMenu) itemModel); } } IContributionItem[] items = menuManager.getItems(); for (int src = 0, dest = 0; src < items.length; src++, dest++) { IContributionItem item = items[src]; if (item instanceof MenuManager) { MenuManager childManager = (MenuManager) item; MMenu childModel = getMenuModel(childManager); if (childModel == null) { MMenu legacyModel = MenuFactoryImpl.eINSTANCE.createOpaqueMenu(); legacyModel.setElementId(childManager.getId()); legacyModel.setVisible(childManager.isVisible()); linkModelToManager(legacyModel, childManager); modelChildren.add(dest, legacyModel); reconcileManagerToModel(childManager, legacyModel); } else { if (childModel instanceof MOpaqueMenu) { oldMenus.remove(childModel); } if (modelChildren.size() > dest) { if (modelChildren.get(dest) != childModel) { modelChildren.remove(childModel); modelChildren.add(dest, childModel); } } else { modelChildren.add(childModel); } if (childModel instanceof MPopupMenu) { if (((MPopupMenu) childModel).getContext() == null) { IEclipseContext lclContext = getContext(menuModel); if (lclContext != null) { ((MPopupMenu) childModel) .setContext(lclContext.createChild(childModel.getElementId())); } } } } } else if (item.isSeparator() || item.isGroupMarker()) { MMenuElement menuElement = getMenuElement(item); if (menuElement == null) { MOpaqueMenuSeparator legacySep = MenuFactoryImpl.eINSTANCE.createOpaqueMenuSeparator(); legacySep.setElementId(item.getId()); legacySep.setVisible(item.isVisible()); legacySep.setOpaqueItem(item); linkModelToContribution(legacySep, item); modelChildren.add(dest, legacySep); } else if (menuElement instanceof MOpaqueMenuSeparator) { MOpaqueMenuSeparator legacySep = (MOpaqueMenuSeparator) menuElement; oldSeps.remove(legacySep); if (modelChildren.size() > dest) { if (modelChildren.get(dest) != legacySep) { modelChildren.remove(legacySep); modelChildren.add(dest, legacySep); } } else { modelChildren.add(legacySep); } } } else { MMenuElement menuElement = getMenuElement(item); if (menuElement == null) { MOpaqueMenuItem legacyItem = MenuFactoryImpl.eINSTANCE.createOpaqueMenuItem(); legacyItem.setElementId(item.getId()); legacyItem.setVisible(item.isVisible()); legacyItem.setOpaqueItem(item); linkModelToContribution(legacyItem, item); modelChildren.add(dest, legacyItem); } else if (menuElement instanceof MOpaqueMenuItem) { MOpaqueMenuItem legacyItem = (MOpaqueMenuItem) menuElement; oldModelItems.remove(legacyItem); if (modelChildren.size() > dest) { if (modelChildren.get(dest) != legacyItem) { modelChildren.remove(legacyItem); modelChildren.add(dest, legacyItem); } } else { modelChildren.add(legacyItem); } } } } if (!oldModelItems.isEmpty()) { modelChildren.removeAll(oldModelItems); for (MOpaqueMenuItem model : oldModelItems) { clearModelToContribution(model, (IContributionItem) model.getOpaqueItem()); } } if (!oldMenus.isEmpty()) { modelChildren.removeAll(oldMenus); for (MOpaqueMenu oldMenu : oldMenus) { MenuManager oldManager = getManager(oldMenu); clearModelToManager(oldMenu, oldManager); } } if (!oldSeps.isEmpty()) { modelChildren.removeAll(oldSeps); for (MOpaqueMenuSeparator model : oldSeps) { clearModelToContribution(model, (IContributionItem) model.getOpaqueItem()); } } }
From source file:org.eclipse.mylyn.tasks.tests.TaskListUiTest.java
License:Open Source License
/** * Tests visibility of SubMenuManager/* w ww.j av a2 s .c o m*/ */ public void testVisibilityOfSubMenuManager() { //setup MoveToCategoryMenuContributor moveToMenuContrib = new MoveToCategoryMenuContributor(); MenuManager menuManager = null; List<IRepositoryElement> selectedElements = new Vector<IRepositoryElement>(); selectedElements.add(cat1task1); List<IRepositoryElement> emptySelection = new Vector<IRepositoryElement>(); List<IRepositoryElement> categorySelection = new Vector<IRepositoryElement>(); categorySelection.add(cat1); List<IRepositoryElement> querySelection = new Vector<IRepositoryElement>(); querySelection.add(new MockRepositoryQuery("query", null)); //execute system under test & assert menuManager = moveToMenuContrib.getSubMenuManager(selectedElements); assertTrue(menuManager.isVisible()); menuManager = null; menuManager = moveToMenuContrib.getSubMenuManager(emptySelection); assertFalse(menuManager.isVisible()); menuManager = null; menuManager = moveToMenuContrib.getSubMenuManager(categorySelection); assertFalse(menuManager.isVisible()); menuManager = null; menuManager = moveToMenuContrib.getSubMenuManager(querySelection); assertFalse(menuManager.isVisible()); //teardown }
From source file:org.eclipse.oomph.setup.presentation.SetupActionBarContributor.java
License:Open Source License
private void populateManagerEnablements(IContributionManager manager, String subMenuText, String insertBeforeID, final List<EnablementAction> additionalTasks) { int id = ++lastSubMenuID; String subMenuID = ENABLEMENT_ITEM_PREFIX + id; final MenuManager submenuManager = new MenuManager(subMenuText, subMenuID); submenuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { // Execute later in event loop to make sure the menu is visible when the first image is loaded. UIUtil.asyncExec(new Runnable() { public void run() { final Queue<EnablementAction> queue = new ConcurrentLinkedQueue<EnablementAction>( additionalTasks); int jobs = Math.max(queue.size(), 10); for (int i = 0; i < jobs; i++) { Job iconLoader = new Job("IconLoader-" + i) { @Override protected IStatus run(IProgressMonitor monitor) { EnablementAction action; while ((action = queue.poll()) != null && submenuManager.isVisible() && !monitor.isCanceled()) { action.loadImage(); }/*from w w w .j a v a 2 s.co m*/ return Status.OK_STATUS; } }; iconLoader.setSystem(true); iconLoader.schedule(); } } }); } }); Collections.sort(additionalTasks, ACTION_COMPARATOR); populateManagerGen(submenuManager, additionalTasks, null); manager.insertBefore(insertBeforeID, submenuManager); }
From source file:org.eclipse.riena.navigation.ui.swt.component.MenuCoolBarComposite.java
License:Open Source License
/** * Creates a top-level menu and adds it to the Riena menu bar. * /* w ww .jav a 2 s.com*/ * @param menuManager * @param listener */ private ToolItem createAndAddMenu(final MenuManager menuManager, final ToolBarMenuListener listener) { if (menuManager.isVisible()) { final ToolItem toolItem = new ToolItem(menuToolBar, SWT.CHECK); toolItem.setText(menuManager.getMenuText()); final MenuManagerHelper helper = new MenuManagerHelper(); final Menu menu = helper.createMenu(menuToolBar, toolItem, menuManager); toolItem.setData(MENU_DATA_KEY, menu); calcSize(menuCoolItem); toolItem.addSelectionListener(listener); return toolItem; } return null; }