/** * @author liuchunxia * * action registry */ package net.ms.designer.editors.workflow.tools; import net.ms.designer.editors.workflow.actions.WorkflowPropertyAction; import org.eclipse.gef.ContextMenuProvider; import org.eclipse.gef.EditPartViewer; import org.eclipse.gef.ui.actions.ActionRegistry; import org.eclipse.gef.ui.actions.GEFActionConstants; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.ui.actions.ActionFactory; public class WorkflowContextMenuProvider extends ContextMenuProvider { private ActionRegistry actionRegistry; private ActionRegistry getActionRegistry() { return actionRegistry; } private void setActionRegistry(ActionRegistry registry) { actionRegistry = registry; } public WorkflowContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) { super(viewer); setActionRegistry(registry); } public void buildContextMenu(IMenuManager manager) { GEFActionConstants.addStandardActionGroups(manager); IAction action; action = getActionRegistry().getAction(ActionFactory.UNDO.getId()); manager.appendToGroup(GEFActionConstants.GROUP_UNDO, action); action = getActionRegistry().getAction(ActionFactory.REDO.getId()); manager.appendToGroup(GEFActionConstants.GROUP_UNDO, action); manager.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(ActionFactory.DELETE.getId())); manager.add(new Separator()); action = getActionRegistry().getAction(WorkflowPropertyAction.WORKFLOW_PROPERTY); if (action.isEnabled()) manager.appendToGroup(GEFActionConstants.GROUP_REST, action); } private IAction getAction(String actionId) { return actionRegistry.getAction(actionId); } }