/******************************************************************************* * Copyright (c) 2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.gef.common; import org.eclipse.gef.ContextMenuProvider; import org.eclipse.gef.DefaultEditDomain; import org.eclipse.gef.EditPartViewer; import org.eclipse.gef.ui.actions.ActionRegistry; import org.eclipse.gef.ui.actions.GEFActionConstants; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.actions.ActionFactory; import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator; import org.jboss.tools.smooks.configuration.editors.GraphicsConstants; /** * @author Dart (dpeng@redhat.com) * */ public class SmooksGraphicalMenuContextProvider extends ContextMenuProvider { public static final String GROUP_CUSTOME = "custom_group"; //$NON-NLS-1$ protected ActionRegistry actionRegistry; /** * @return the actionRegistry */ public ActionRegistry getActionRegistry() { return actionRegistry; } /** * @param actionRegistry * the actionRegistry to set */ public void setActionRegistry(ActionRegistry actionRegistry) { this.actionRegistry = actionRegistry; } /* * (non-Javadoc) * * @see * org.eclipse.gef.ContextMenuProvider#buildContextMenu(org.eclipse.jface * .action.IMenuManager) */ @Override public void buildContextMenu(IMenuManager menu) { menu.add(new Separator(GROUP_CUSTOME)); GEFActionConstants.addStandardActionGroups(menu); IAction action; action = getActionRegistry().getAction(ActionFactory.UNDO.getId()); menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action); action = getActionRegistry().getAction(ActionFactory.REDO.getId()); menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action); action = getActionRegistry().getAction(ActionFactory.DELETE.getId()); if (action.isEnabled()) menu.appendToGroup(GEFActionConstants.GROUP_EDIT, action); action = new Action() { public void run() { DefaultEditDomain domain = (DefaultEditDomain) getViewer().getEditDomain(); IWorkbenchWindow window = domain.getEditorPart().getSite().getWorkbenchWindow(); try { window.getActivePage().showView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$ } catch (PartInitException e) { e.printStackTrace(); } } }; action.setText(Messages.SmooksGraphicalMenuContextProvider_Action_Properties); action.setImageDescriptor(SmooksConfigurationActivator .getImageDescriptor(GraphicsConstants.IMAGE_PROPERTY_SHEET_PAGE)); menu.add(action); } public SmooksGraphicalMenuContextProvider(EditPartViewer viewer, ActionRegistry actionRegistry) { super(viewer); this.actionRegistry = actionRegistry; } }