List of usage examples for org.eclipse.jface.action IContributionItem isGroupMarker
boolean isGroupMarker();
From source file:com.sap.dirigible.ide.ui.rap.managers.ContribItem.java
License:Open Source License
public boolean isVisible() { boolean visibleItem = false; if (toolBarManager != null) { IContributionItem[] contributionItems = toolBarManager.getItems(); for (int i = 0; i < contributionItems.length && !visibleItem; i++) { IContributionItem contributionItem = contributionItems[i]; if ((!contributionItem.isGroupMarker()) && (!contributionItem.isSeparator()) && (contributionItem.isVisible())) { visibleItem = true;/*from ww w . j a va 2s.c o m*/ } } } return (visibleItem || super.isVisible()); }
From source file:net.enilink.komma.edit.ui.action.ActionMenuManager.java
License:Open Source License
protected void itemAdded(IContributionItem item) { super.itemAdded(item); if (item instanceof SubContributionItem) item = ((SubContributionItem) item).getInnerItem(); if (!item.isGroupMarker()) action.setEnabled(true);/* ww w .j a va2 s .c om*/ }
From source file:net.enilink.komma.edit.ui.action.ActionMenuManager.java
License:Open Source License
protected void itemRemoved(IContributionItem item) { super.itemRemoved(item); if (item instanceof SubContributionItem) item = ((SubContributionItem) item).getInnerItem(); if (!item.isGroupMarker()) { action.setEnabled(false);/*from w ww . j ava 2 s . c o m*/ IContributionItem[] items = getItems(); for (int i = 0; i < items.length; i++) if (!items[i].isGroupMarker()) { action.setEnabled(true); break; } } }
From source file:net.refractions.udig.internal.ui.operations.OperationMenuFactory.java
License:Open Source License
/** * TODO summary sentence for addActionToMenu ... * //w ww.j a v a 2 s. c o m * @param menuBar * @param action */ private void addActionToMenu(IMenuManager menuBar, OpAction action) { if (action.getMenuPath() != null) try { String[] paths = action.getMenuPath().split("/"); //$NON-NLS-1$ IMenuManager manager = menuBar.findMenuUsingPath(IWorkbenchActionConstants.MB_ADDITIONS); if (manager == null) { manager = menuBar; } String markerID = null; for (String path : paths) { markerID = null; IContributionItem item = manager.findUsingPath(path); if (item == null) { UiPlugin.log(action.getMenuPath() + " is not a valid menuPath", null); //$NON-NLS-1$ break; } if (item instanceof IMenuManager) { manager = (IMenuManager) item; } else if (item.isGroupMarker()) { markerID = item.getId(); } else if (item instanceof SubContributionItem) { item = ((SubContributionItem) item).getInnerItem(); if (item instanceof IMenuManager) { manager = (IMenuManager) item; } else if (item.isGroupMarker()) { markerID = item.getId(); } } } if (manager != null) { if (markerID != null) manager.appendToGroup(markerID, action); else { manager.add(action); } } else { UiPlugin.log(action.getMenuPath() + " is not a valid menuPath", null); //$NON-NLS-1$ } } catch (Exception e) { UiPlugin.log("Error adding operation to menu", e); //$NON-NLS-1$ } }
From source file:net.yatomiya.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java
License:Open Source License
/** * @param menuManager//from w w w.j a va 2s.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:org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java
License:Open Source License
/** * @param menuManager/*w ww. ja v a2 s. 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.gmf.runtime.common.ui.services.action.contributionitem.AbstractContributionItemProvider.java
License:Open Source License
/** * Contributes the given item to the given manager in the given path/group. * //from www. j av a 2 s.co m * @param contributionItem * The item to be contributed * @param contributionManager * The manager to be contributed to * @param path * The path of contribution within the manager * @param group * The group of contribution within the path */ private void contributeItem(IAdaptable contributionItemAdapter, IContributionManager contributionManager, String path, String group) { // Find parent menu. if (path == null) return; IContributionManager parent = contributionManager; if (path.length() > 1) { // if path is more than '/' parent = findMenuUsingPath(parent, path.substring(1)); if (parent == null) { Log.info(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "The contribution item path is invalid"); //$NON-NLS-1$ return; } } //if contributing a menu group if (contributionItemAdapter instanceof MenuGroupContributionItemAdapter) { IContributionItem contributionItem = (IContributionItem) contributionItemAdapter .getAdapter(IContributionItem.class); parent.add(contributionItem); return; } //if contributing an action group if (contributionItemAdapter instanceof ActionGroupContributionItemAdapter) { try { ActionGroup actionGroup = (ActionGroup) contributionItemAdapter.getAdapter(ActionGroup.class); if (parent instanceof IMenuManager) { actionGroup.fillContextMenu((IMenuManager) parent); } } catch (IllegalArgumentException e) { Trace.catching(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionDebugOptions.EXCEPTIONS_CATCHING, CommonUIServicesActionPlugin.getDefault().getClass(), "Error adding contribution item", e); //$NON-NLS-1$ Log.error(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "Error adding contribution item", e); //$NON-NLS-1$ } return; } // Find reference group. if (group == null) return; IContributionItem sep = parent.find(group); if (sep == null) { if (group.equals(ContributionItemConstants.GROUP_ADDITIONS)) { sep = new Separator(group); parent.add(sep); } if (sep == null) { Log.info(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "The contribution item group is invalid"); //$NON-NLS-1$ return; } } // Add contribution to group try { IContributionItem contributionItem = (IContributionItem) contributionItemAdapter .getAdapter(IContributionItem.class); if (contributionItem != null) { if (sep.isGroupMarker()) parent.appendToGroup(group, contributionItem); else parent.insertAfter(group, contributionItem); } else Log.info(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "Failed to create the contribution with id: " //$NON-NLS-1$ + (String) contributionItemAdapter.getAdapter(String.class)); } catch (IllegalArgumentException e) { Trace.catching(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionDebugOptions.EXCEPTIONS_CATCHING, CommonUIServicesActionPlugin.getDefault().getClass(), "Error adding contribution item", e); //$NON-NLS-1$ Log.error(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "Error adding contribution item", e); //$NON-NLS-1$ } }
From source file:org.eclipse.rap.internal.design.example.managers.ViewToolBarManager.java
License:Open Source License
private void updateItemsData() { ToolBar toolBar = getControl();/* ww w . ja v a2 s. c o m*/ ToolItem[] items = toolBar.getItems(); List<ItemData> data = new ArrayList<ItemData>(); for (int i = 0; i < items.length; i++) { IContributionItem contributionItem = (IContributionItem) items[i].getData(); if (!contributionItem.isGroupMarker() && !contributionItem.isSeparator()) { ItemData itemData = new ItemData(contributionItem.getId(), items[i].getText(), items[i].getToolTipText(), items[i].getImage()); data.add(itemData); } } itemsData = data.toArray(new ItemData[0]); }
From source file:org.eclipse.ui.internal.ActionSetActionBars.java
License:Open Source License
/** * Returns the contribution item that the given contribution item should be * inserted after./*from w w w . j a va 2s . c o m*/ * * @param startId * the location to start looking alphabetically. * @param itemId * the target item id. * @param mgr * the contribution manager. * @return the contribution item that the given items should be returned * after. * * @since 3.0 */ private IContributionItem findAlphabeticalOrder(String startId, String itemId, IContributionManager mgr) { IContributionItem[] items = mgr.getItems(); int insertIndex = 0; // look for starting point while (insertIndex < items.length) { IContributionItem item = items[insertIndex]; if (item.getId() != null && item.getId().equals(startId)) { break; } ++insertIndex; } // Find the index that this item should be inserted in for (int i = insertIndex + 1; i < items.length; i++) { IContributionItem item = items[i]; String testId = item.getId(); if (item.isGroupMarker()) { break; } if (itemId != null && testId != null) { if (itemId.compareTo(testId) < 1) { break; } } insertIndex = i; } // Should be inserted at the end if (insertIndex >= items.length) { return null; } return items[insertIndex]; }
From source file:org.eclipse.ui.internal.dialogs.cpd.CustomizePerspectiveDialog.java
License:Open Source License
private static boolean isGroupOrSeparator(MToolBarElement element, IContributionItem contributionItem) { return element instanceof MToolBarSeparator || (contributionItem == null || contributionItem.isGroupMarker() || contributionItem.isSeparator()); }