1
package net.launchpad.vide.flowchart.diagram.part;
3
import org.eclipse.emf.ecore.EObject;
4
import org.eclipse.emf.transaction.util.TransactionUtil;
5
import org.eclipse.gef.EditPartViewer;
6
import org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.ContributionItemService;
7
import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
8
import org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider;
9
import org.eclipse.jface.action.IMenuManager;
10
import org.eclipse.ui.IWorkbenchPart;
15
public class DiagramEditorContextMenuProvider extends
16
DiagramContextMenuProvider {
21
private IWorkbenchPart part;
26
private DeleteElementAction deleteAction;
31
public DiagramEditorContextMenuProvider(IWorkbenchPart part,
32
EditPartViewer viewer) {
35
deleteAction = new DeleteElementAction(part);
42
public void dispose() {
43
if (deleteAction != null) {
44
deleteAction.dispose();
53
public void buildContextMenu(final IMenuManager menu) {
56
TransactionUtil.getEditingDomain(
57
(EObject) getViewer().getContents().getModel())
58
.runExclusive(new Runnable() {
61
ContributionItemService
63
.contributeToPopupMenu(
64
DiagramEditorContextMenuProvider.this,
66
menu.remove(ActionIds.ACTION_DELETE_FROM_MODEL);
67
menu.appendToGroup("editGroup", deleteAction);
70
} catch (Exception e) {
71
FlowchartDiagramEditorPlugin.getInstance().logError(
72
"Error building context menu", e);