List of usage examples for org.eclipse.jface.action IContributionManager find
IContributionItem find(String id);
From source file:org.eclipse.birt.report.designer.internal.ui.editors.DesignerActionBarContributor.java
License:Open Source License
private void updateEditMenu(IContributionManager menubar) { IContributionItem editMenu = menubar.find(IWorkbenchActionConstants.M_EDIT); if (editMenu instanceof IMenuManager) { ((IMenuManager) editMenu).addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { refreshUpdateAction(ActionFactory.CUT.getId()); refreshUpdateAction(ActionFactory.COPY.getId()); refreshUpdateAction(ActionFactory.PASTE.getId()); refreshUpdateAction(ActionFactory.DELETE.getId()); }//from w w w . ja v a 2 s . c o m private void refreshUpdateAction(String actionId) { if (getActionRegistry() != null) { RetargetAction action = (RetargetAction) getAction(actionId); if (action != null && action.getActionHandler() != null && action.getActionHandler() instanceof UpdateAction) { ((UpdateAction) action.getActionHandler()).update(); } } } }); } }
From source file:org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.AbstractContributionItemProvider.java
License:Open Source License
/** * Finds a menu manager using a '/' separated path. * /*from w ww . j a v a 2 s .c om*/ * @param parent * The starting contribution manager * @param path * The '/' separated path * @return A menu manager described by the given path */ private IMenuManager findMenuUsingPath(IContributionManager parent, String path) { IContributionItem item = null; String id = path; String rest = null; int separator = path.indexOf('/'); if (separator != -1) { id = path.substring(0, separator); rest = path.substring(separator + 1); } else { item = parent.find(path); if (item instanceof IMenuManager) return (IMenuManager) item; } item = parent.find(id); if (item instanceof IMenuManager) { IMenuManager manager = (IMenuManager) item; return manager.findMenuUsingPath(rest); } return null; }
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 ww w.j a v a2 s.c o 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.gmf.runtime.common.ui.services.action.contributionitem.AbstractContributionItemProvider.java
License:Open Source License
/** * @param id/*from w w w . ja va2 s. co m*/ * @param path * @param contributionManager */ private void removeExistingItem(String id, String path, IContributionManager contributionManager, boolean useIdForRemoval) { // Find the menu or action or group. if (id == null) return; IContributionManager parent = contributionManager; if (path.length() > 1) { // if path is more than '/' parent = findMenuUsingPath(contributionManager, path.substring(1)); if (parent == null) { Log.info(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "The contribution item path is invalid"); //$NON-NLS-1$ return; } } IContributionItem predefinedItem = parent.find(id); if (predefinedItem == null) { Log.info(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "The contribution item path is invalid"); //$NON-NLS-1$ return; } if (predefinedItem instanceof AbstractGroupMarker) { IContributionItem allItems[] = parent.getItems(); int groupIndex; for (groupIndex = 0; groupIndex < allItems.length; groupIndex++) { IContributionItem item = allItems[groupIndex]; if (item.equals(predefinedItem)) { break; } } for (int j = groupIndex + 1; j < allItems.length; j++) { IContributionItem item = allItems[j]; if (item instanceof AbstractGroupMarker) { break; } parent.remove(item); } } // parent.remove(item) and parent.remove(item.getId()) yield different results in some cases // parent.remove(item) seems to be working for all cases except for removing a menu from menu bar (item defined as partMenu) if (useIdForRemoval) { parent.remove(predefinedItem.getId()); } else { parent.remove(predefinedItem); } }
From source file:org.eclipse.jst.pagedesigner.editors.actions.DesignPageActionContributor.java
License:Open Source License
/** * @param manager//from w ww . ja v a 2 s . com * @param id */ protected void doRemove(IContributionManager manager, String id) { try { if (manager.find(id) != null) { manager.remove(id); } } catch (Exception e) { _log.info("Error:", e); //$NON-NLS-1$ } }
From source file:org.eclipse.team.internal.ccvs.ui.mappings.ChangeSetActionProvider.java
License:Open Source License
private boolean appendToGroup(IContributionManager manager, String groupId, IContributionItem item) { if (manager == null || item == null) return false; IContributionItem group = manager.find(groupId); if (group != null) { manager.appendToGroup(group.getId(), item); return true; }/*from w ww . ja va 2 s . com*/ return false; }
From source file:org.eclipse.team.internal.ccvs.ui.mappings.ChangeSetActionProvider.java
License:Open Source License
private boolean appendToGroup(IContributionManager manager, String groupId, IAction action) { if (manager == null || action == null) return false; IContributionItem group = manager.find(groupId); if (group != null) { manager.appendToGroup(group.getId(), action); // registerActionWithWorkbench(action); return true; }/*from w ww . j a v a 2 s .co m*/ return false; }
From source file:org.eclipse.team.svn.ui.mapping.SVNChangeSetActionProvider.java
License:Open Source License
private boolean appendToGroup(IContributionManager manager, String groupId, IContributionItem item) { if (manager == null || item == null) { return false; }/*from w w w. j a va2s . co m*/ IContributionItem group = manager.find(groupId); if (group != null) { manager.appendToGroup(group.getId(), item); return true; } return false; }
From source file:org.eclipse.team.svn.ui.mapping.SVNChangeSetActionProvider.java
License:Open Source License
private boolean appendToGroup(IContributionManager manager, String groupId, IAction action) { if (manager == null || action == null) { return false; }/* www. j a va2 s. c o m*/ IContributionItem group = manager.find(groupId); if (group != null) { manager.appendToGroup(group.getId(), action); return true; } return false; }
From source file:org.eclipse.team.ui.synchronize.SynchronizePageActionGroup.java
License:Open Source License
/** * Helper method to find the group of the given id for the page associated * with the configuration of this action group. The id of the returned group * will not match that of the provided id since the group must be modified * to ensure that groups are unique across pages. * //from w ww.j a v a2s. c o m * @param menu the menu * @param groupId the id of the group being searched for * @return the group for the given id or <code>null</code> */ protected IContributionItem findGroup(IContributionManager menu, String groupId) { if (menu == null) return null; IContributionItem item = menu.find(((SynchronizePageConfiguration) configuration).getGroupId(groupId)); if (item == null) { // Context menus do not change the id item = menu.find(groupId); } return item; }