/*******************************************************************************
* Copyright (c) 2013 Arapiki Solutions Inc.
* 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:
* psmith - initial API and
* implementation and/or initial documentation
*******************************************************************************/
package com.buildml.eclipse.packages;
import org.eclipse.gef.EditPartViewer;
import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
import org.eclipse.gef.editparts.ZoomManager;
import org.eclipse.gef.ui.actions.ActionRegistry;
import org.eclipse.gef.ui.actions.GEFActionConstants;
import org.eclipse.gef.ui.actions.ZoomInAction;
import org.eclipse.gef.ui.actions.ZoomOutAction;
import org.eclipse.graphiti.dt.IDiagramTypeProvider;
import org.eclipse.graphiti.ui.editor.DiagramEditorContextMenuProvider;
import org.eclipse.graphiti.ui.platform.IConfigurationProvider;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.ui.actions.ActionFactory;
/**
* A provider class for generating the content of a PackageDiagram's context menu.
*
* @author Peter Smith <psmith@arapiki.com>
*/
public class PackageDiagramEditorContextMenuProvider extends
DiagramEditorContextMenuProvider {
/** the ZoomManager for this PackageDiagram */
private ZoomManager zoomManager;
/** Action for zooming in */
private ZoomInAction zoomInAction;
/** Action for zooming out */
private ZoomOutAction zoomOutAction;
/*=====================================================================================*
* CONSTRUCTORS
*=====================================================================================*/
/**
* Create a new {@link PackageDiagramEditorContextMenuProvider} object.
* @param viewer
* @param registry
* @param configurationProvider
*/
public PackageDiagramEditorContextMenuProvider(EditPartViewer viewer,
ActionRegistry registry, IConfigurationProvider configurationProvider) {
super(viewer, registry, configurationProvider);
ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) viewer.getRootEditPart();
zoomManager = rootEditPart.getZoomManager();
zoomInAction = new ZoomInAction(zoomManager);
zoomOutAction = new ZoomOutAction(zoomManager);
}
/*=====================================================================================*
* PUBLIC METHODS
*=====================================================================================*/
/**
* Generate the content of the context menu. Note that additional menu items (from
* other plugins) will also be added to the menu.
*
* @param manager the menu manager
*/
@Override
public void buildContextMenu(IMenuManager manager) {
GEFActionConstants.addStandardActionGroups(manager);
addActionToMenuIfAvailable(manager, ActionFactory.DELETE.getId(), GEFActionConstants.GROUP_EDIT);
addActionToMenu(manager, zoomInAction.getId(), GEFActionConstants.GROUP_VIEW);
addActionToMenu(manager, zoomOutAction.getId(), GEFActionConstants.GROUP_VIEW);
}
/*-------------------------------------------------------------------------------------*/
}