diff options
Diffstat (limited to 'extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/DiagramEditorContextMenuProvider.java')
-rw-r--r-- | extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/DiagramEditorContextMenuProvider.java | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/DiagramEditorContextMenuProvider.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/DiagramEditorContextMenuProvider.java new file mode 100644 index 00000000000..47c2ff74940 --- /dev/null +++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/DiagramEditorContextMenuProvider.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte, + * Generalitat de la Comunitat Valenciana . + * 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: Francisco Javier Cano Muñoz (Prodevelop) - initial API implementation + * + ******************************************************************************/ +package org.eclipse.papyrus.diagram.sequence.part; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.util.TransactionUtil; +import org.eclipse.gef.EditPartViewer; +import org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.ContributionItemService; +import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds; +import org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.ui.IWorkbenchPart; + +/** + * @generated + */ + +public class DiagramEditorContextMenuProvider extends + DiagramContextMenuProvider { + + /** + * @generated + */ + private IWorkbenchPart part; + + /** + * @generated + */ + private DeleteElementAction deleteAction; + + /** + * @generated + */ + public DiagramEditorContextMenuProvider(IWorkbenchPart part, + EditPartViewer viewer) { + super(part, viewer); + this.part = part; + deleteAction = new DeleteElementAction(part); + deleteAction.init(); + } + + /** + * @generated + */ + @Override + public void dispose() { + if (deleteAction != null) { + deleteAction.dispose(); + deleteAction = null; + } + super.dispose(); + } + + /** + * @generated + */ + @Override + public void buildContextMenu(final IMenuManager menu) { + getViewer().flush(); + try { + TransactionUtil.getEditingDomain( + (EObject) getViewer().getContents().getModel()) + .runExclusive(new Runnable() { + + public void run() { + ContributionItemService + .getInstance() + .contributeToPopupMenu( + DiagramEditorContextMenuProvider.this, + part); + menu.remove(ActionIds.ACTION_DELETE_FROM_MODEL); + menu.appendToGroup("editGroup", deleteAction); + } + }); + } catch (Exception e) { + UMLDiagramEditorPlugin.getInstance().logError( + "Error building context menu", e); + } + } +} |