/******************************************************************************* * Copyright (c) 2004, 2005 Elias Volanakis and others. �* All rights reserved. This program and the accompanying materials �* are made available under the terms of the Eclipse Public License v1.0 �* which accompanies this distribution, and is available at �* http://www.eclipse.org/legal/epl-v10.html �* �* Contributors: �*����Elias Volanakis - initial API and implementation �*******************************************************************************/ package com.windowtester.internal.customer.cat.shapes; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.gef.ContextMenuProvider; import org.eclipse.gef.EditPartViewer; import org.eclipse.gef.ui.actions.ActionRegistry; import org.eclipse.gef.ui.actions.GEFActionConstants; /** * Provides context menu actions for the ShapesEditor. * @author Elias Volanakis */ class ShapesEditorContextMenuProvider extends ContextMenuProvider { /** The editor's action registry. */ private ActionRegistry actionRegistry; /** * Instantiate a new menu context provider for the specified EditPartViewer * and ActionRegistry. * @param viewer the editor's graphical viewer * @param registry the editor's action registry * @throws IllegalArgumentException if registry is <tt>null</tt>. */ public ShapesEditorContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) { super(viewer); if (registry == null) { throw new IllegalArgumentException(); } actionRegistry = registry; } /** * Called when the context menu is about to show. Actions, * whose state is enabled, will appear in the context menu. * @see org.eclipse.gef.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager) */ public void buildContextMenu(IMenuManager menu) { // Add standard action groups to the menu GEFActionConstants.addStandardActionGroups(menu); // Add actions to the menu menu.appendToGroup( GEFActionConstants.GROUP_UNDO, // target group id getAction(ActionFactory.UNDO.getId())); // action to add menu.appendToGroup( GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.REDO.getId())); menu.appendToGroup( GEFActionConstants.GROUP_EDIT, getAction(ActionFactory.DELETE.getId())); } private IAction getAction(String actionId) { return actionRegistry.getAction(actionId); } }