diff options
Diffstat (limited to 'extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java')
-rw-r--r-- | extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java new file mode 100644 index 00000000000..910d6e685c9 --- /dev/null +++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java @@ -0,0 +1,120 @@ +package org.eclipse.papyrus.diagram.sequence.edit.commands; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.uml2.uml.Comment; +import org.eclipse.uml2.uml.UMLPackage; + +import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil; +import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin; + +/** + * @generated + */ +public class CommentCreateCommand extends CreateElementCommand { + + /** + * @generated + */ + private EClass eClass = null; + /** + * @generated + */ + private EObject eObject = null; + + /** + * @generated + */ + public CommentCreateCommand(CreateElementRequest req, EObject eObject) { + super(req); + this.eObject = eObject; + this.eClass = eObject != null ? eObject.eClass() : null; + } + + /** + * @generated + */ + public static CommentCreateCommand create(CreateElementRequest req, + EObject eObject) { + return new CommentCreateCommand(req, eObject); + } + + /** + * @generated + */ + public CommentCreateCommand(CreateElementRequest req) { + super(req); + } + + /** + * @generated + */ + @Override + protected EObject getElementToEdit() { + + EObject container = ((CreateElementRequest) getRequest()) + .getContainer(); + if (container instanceof View) { + container = ((View) container).getElement(); + } + if (container != null) { + return container; + } + return eObject; + } + + /** + * @generated + */ + @Override + protected EClass getEClassToEdit() { + + EObject eObject = getElementToEdit(); + if (eObject != null) { + return eObject.eClass(); + } + if (eClass != null) { + return eClass; + } + return UMLPackage.eINSTANCE.getElement(); + } + + /** + * @generated + */ + protected Diagram getDiagramFromRequest() { + + if (getRequest().getParameters().get( + MultiDiagramUtil.BelongToDiagramSource) != null) { + Object parameter = getRequest().getParameters().get( + MultiDiagramUtil.BelongToDiagramSource); + if (parameter instanceof Diagram) { + return (Diagram) parameter; + } + } + return null; + } + + /** + * @generated NOT + */ + @Override + protected EObject doDefaultElementCreation() { + Comment newElement = (Comment) super.doDefaultElementCreation(); + if (newElement != null) { + Diagram diagram = getDiagramFromRequest(); + if (diagram != null) { + MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram, + newElement); + } else { + MultiDiagramUtil.addEAnnotationReferenceToDiagram( + UMLDiagramEditorPlugin.getInstance(), newElement); + } + } + return newElement; + } +} |