/** * Creates and returns an SWT menu bar control for this menu, for use in the given <code> * Decorations</code>, and installs all registered contributions. Does not create a new control if * one already exists. * * @param parent the parent decorations * @return the menu control * @since 2.1 */ public Menu createMenuBar(Decorations parent) { if (!menuExist()) { menu = new Menu(parent, SWT.BAR); menu.setData(MANAGER_KEY, this); update(false); } return menu; }
/** Notifies all listeners that this menu is about to appear. */ private void handleAboutToShow() { if (removeAllWhenShown) { removeAll(); } MenuManagerEventHelper.showEventPreHelper(this); fireAboutToShow(this); MenuManagerEventHelper.showEventPostHelper(this); update(false, false); }
protected void update(final boolean force, final boolean recursive) { super.update(force, recursive); if (menuParent != null && (force || isDirty())) { disposeToolItems(); IContributionItem[] items = getItems(); if (items.length > 0 && menuParent != null) { for (int i = 0; i < items.length; i++) { IContributionItem item = items[i]; if (item.isVisible()) { makeEntry(item); } } } menuParent.layout(true, true); } }
/* * (non-Javadoc) * * @see * org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer#processContents * (org.eclipse.e4.ui.model.application.ui.MElementContainer) */ @Override public void processContents(MElementContainer<MUIElement> container) { // I can either simply stop processing, or we can walk the model // ourselves like the "old" days // EMF gives us null lists if empty if (container == null) return; // this is in direct violation of good programming MenuManager parentManager = getManager((MMenu) ((Object) container)); if (parentManager == null) { return; } // Process any contents of the newly created ME List<MUIElement> parts = container.getChildren(); if (parts != null) { MUIElement[] plist = parts.toArray(new MUIElement[parts.size()]); for (int i = 0; i < plist.length; i++) { MUIElement childME = plist[i]; modelProcessSwitch(parentManager, (MMenuElement) childME); } } parentManager.update(false); }
/* (non-Javadoc) * @see org.eclipse.jface.action.IMenuManager#updateAll(boolean) */ public void updateAll(boolean force) { update(force, true); }
/** * The <code>MenuManager</code> implementation of this <code>IContributionManager</code> updates * this menu, but not any of its submenus. * * @see #updateAll */ public void update(boolean force) { update(force, false); }
/** * @param part * @param point */ protected void showPaneMenu(IPresentablePart part, Point point) { systemMenuManager.update(false); Menu aMenu = systemMenuManager.createContextMenu(tabFolder.getParent()); aMenu.setLocation(point.x, point.y); aMenu.setVisible(true); }