package net.ms.designer.editors.enumcomponentdetail.tools; import net.ms.designer.editors.enumcomponentdetail.action.PropertyAction; 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 MyContextMenuProvider extends ContextMenuProvider { private ActionRegistry actionRegistry; public MyContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) { super(viewer); setActionRegistry(registry); } /* * (non-Javadoc) * * @see org.eclipse.gef.ContextMenuProvider#menuAboutToShow(org.eclipse.jface.action.IMenuManager) */ 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(PropertyAction.COPY); if (action.isEnabled()) manager.appendToGroup(GEFActionConstants.GROUP_REST, action); manager.add(new Separator()); action = getActionRegistry().getAction(ActionFactory.SAVE.getId()); manager.appendToGroup(GEFActionConstants.GROUP_SAVE, action); } private IAction getAction(String actionId) { return actionRegistry.getAction(actionId); } private ActionRegistry getActionRegistry() { return actionRegistry; } private void setActionRegistry(ActionRegistry registry) { actionRegistry = registry; } }