Example usage for org.eclipse.jface.action IContributionManager find

List of usage examples for org.eclipse.jface.action IContributionManager find

Introduction

In this page you can find the example usage for org.eclipse.jface.action IContributionManager find.

Prototype

IContributionItem find(String id);

Source Link

Document

Finds the contribution item with the given id.

Usage

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;
}