Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine')
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF11
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/CreateStateMachineDiagramWithNavigationHandler.java25
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/StateMachineDiagramCreationCondition.java5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomConnectionPointReferenceCreateCommand.java5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateEntryPointCreateCommand.java5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateExitPointCreateCommand.java5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateItemSemanticEditPolicy.java7
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml52
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/CommentCreateCommand.java36
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConnectionPointReferenceCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConstraintCreateCommand.java36
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/DoActivityStateBehaviorStateCreateCommand.java21
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/EntryStateBehaviorCreateCommand.java21
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ExitStateBehaviorCreateCommand.java21
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/FinalStateCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/InternalTransitionCreateCommand.java36
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateChoiceCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateDeepHistoryCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateEntryPointCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateExitPointCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateForkCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateInitialCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJoinCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJunctionCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateShallowHistoryCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateTerminateCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/RegionCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateMachineCreateCommand.java44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionCreateCommand.java5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionReorientCommand.java4
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageCanonicalEditPolicy.java294
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageItemSemanticEditPolicy.java3
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/RegionCompartmentItemSemanticEditPolicy.java29
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateCompartmentItemSemanticEditPolicy.java5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateItemSemanticEditPolicy.java17
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineCompartmentItemSemanticEditPolicy.java7
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineItemSemanticEditPolicy.java5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/part/UMLVisualIDRegistry.java11
39 files changed, 802 insertions, 524 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF
index cdf2ff5533b..f7c7333e33f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF
@@ -77,14 +77,13 @@ Require-Bundle: org.eclipse.core.expressions,
org.eclipse.emf.validation.ocl;visibility:=reexport,
org.eclipse.gef,
org.eclipse.gmf.tooling.runtime;bundle-version="3.0.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.0.0"
+ org.eclipse.papyrus.infra.emf;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.0.0"
Bundle-Vendor: %providerName
Ant-Version: Apache Ant 1.7.0
Eclipse-LazyStart: true
Bundle-Version: 1.0.0.qualifier
Bundle-ManifestVersion: 2
-Bundle-Activator: org.eclipse.papyrus.uml.diagram.statemachine.part.UM
- LDiagramEditorPlugin
-Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.statemachine;sing
- leton:=true
-
+Bundle-Activator: org.eclipse.papyrus.uml.diagram.statemachine.part.UMLDiagramEditorPlugin
+Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.statemachine; singleton:=true
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/CreateStateMachineDiagramWithNavigationHandler.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/CreateStateMachineDiagramWithNavigationHandler.java
deleted file mode 100644
index 015e24097b8..00000000000
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/CreateStateMachineDiagramWithNavigationHandler.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2011 Atos Origin.
- *
- *
- * 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:
- * Mathieu Velten (Atos Origin) mathieu.velten@atosorigin.com - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.diagram.statemachine;
-
-import org.eclipse.papyrus.infra.gmfdiag.navigation.CreateDiagramWithNavigationHandler;
-
-
-public class CreateStateMachineDiagramWithNavigationHandler extends CreateDiagramWithNavigationHandler {
-
- public CreateStateMachineDiagramWithNavigationHandler() {
- super(new CreateStateMachineDiagramCommand(), new StateMachineDiagramCreationCondition());
- }
-
-}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/StateMachineDiagramCreationCondition.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/StateMachineDiagramCreationCondition.java
index 122cae35937..45ad2050f3d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/StateMachineDiagramCreationCondition.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/StateMachineDiagramCreationCondition.java
@@ -12,7 +12,6 @@ package org.eclipse.papyrus.uml.diagram.statemachine;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.infra.core.extension.commands.PerspectiveContextDependence;
-import org.eclipse.uml2.uml.StateMachine;
/**
* StateMachineDiagramCreationCondition class allows to check if a State Machine
@@ -24,10 +23,6 @@ public class StateMachineDiagramCreationCondition extends PerspectiveContextDepe
* @return whether the diagram can be created.
*/
public boolean create(EObject selectedElement) {
- if(super.create(selectedElement)) {
- // TODO : to specify according to the spec
- return selectedElement instanceof StateMachine;
- }
return false;
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomConnectionPointReferenceCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomConnectionPointReferenceCreateCommand.java
index 4c208a9571c..31f7f6a6ba8 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomConnectionPointReferenceCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomConnectionPointReferenceCreateCommand.java
@@ -1,14 +1,15 @@
package org.eclipse.papyrus.uml.diagram.statemachine.custom.commands;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.ConnectionPointReferenceCreateCommand;
import org.eclipse.uml2.uml.State;
public class CustomConnectionPointReferenceCreateCommand extends ConnectionPointReferenceCreateCommand {
- public CustomConnectionPointReferenceCreateCommand(CreateElementRequest req) {
- super(req);
+ public CustomConnectionPointReferenceCreateCommand(CreateElementRequest req, Diagram diagram) {
+ super(req, diagram);
// TODO Auto-generated constructor stub
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateEntryPointCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateEntryPointCreateCommand.java
index f8d564520d5..609ed0652c2 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateEntryPointCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateEntryPointCreateCommand.java
@@ -5,6 +5,7 @@ import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.PseudostateEntryPointCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
@@ -14,8 +15,8 @@ import org.eclipse.uml2.uml.UMLFactory;
public class CustomPseudostateEntryPointCreateCommand extends PseudostateEntryPointCreateCommand {
- public CustomPseudostateEntryPointCreateCommand(CreateElementRequest req) {
- super(req);
+ public CustomPseudostateEntryPointCreateCommand(CreateElementRequest req, Diagram diagram) {
+ super(req, diagram);
// TODO Auto-generated constructor stub
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateExitPointCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateExitPointCreateCommand.java
index efa0c40a6c0..1db596f8d40 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateExitPointCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/commands/CustomPseudostateExitPointCreateCommand.java
@@ -5,6 +5,7 @@ import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.PseudostateExitPointCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
@@ -14,8 +15,8 @@ import org.eclipse.uml2.uml.UMLFactory;
public class CustomPseudostateExitPointCreateCommand extends PseudostateExitPointCreateCommand {
- public CustomPseudostateExitPointCreateCommand(CreateElementRequest req) {
- super(req);
+ public CustomPseudostateExitPointCreateCommand(CreateElementRequest req, Diagram diagram) {
+ super(req, diagram);
// TODO Auto-generated constructor stub
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateItemSemanticEditPolicy.java
index 48ecbebd807..5894f7fcf09 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateItemSemanticEditPolicy.java
@@ -3,6 +3,7 @@ package org.eclipse.papyrus.uml.diagram.statemachine.custom.policies;
import org.eclipse.gef.commands.Command;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.commands.CustomConnectionPointReferenceCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.commands.CustomPseudostateEntryPointCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.commands.CustomPseudostateExitPointCreateCommand;
@@ -17,13 +18,13 @@ public class CustomStateItemSemanticEditPolicy extends StateItemSemanticEditPoli
@Override
protected Command getCreateCommand(CreateElementRequest req) {
if(UMLElementTypes.Pseudostate_16000 == req.getElementType()) {
- return getGEFWrapper(new CustomPseudostateEntryPointCreateCommand(req));
+ return getGEFWrapper(new CustomPseudostateEntryPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_17000 == req.getElementType()) {
- return getGEFWrapper(new CustomPseudostateExitPointCreateCommand(req));
+ return getGEFWrapper(new CustomPseudostateExitPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.ConnectionPointReference_18000 == req.getElementType()) {
- return getGEFWrapper(new CustomConnectionPointReferenceCreateCommand(req));
+ return getGEFWrapper(new CustomConnectionPointReferenceCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
return super.getCreateCommand(req);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml
index 4a55c8929cb..082b8319cf3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml
@@ -701,59 +701,9 @@
description="Create a new StateMachine Diagram"
categoryId="org.eclipse.papyrus.editor.category"/>
</extension>
-
- <extension point="org.eclipse.ui.handlers">
- <handler
- class="org.eclipse.papyrus.uml.diagram.statemachine.CreateStateMachineDiagramWithNavigationHandler"
- commandId="org.eclipse.papyrus.uml.diagram.statemachine.CreationCommand">
- <activeWhen>
- <with variable="activeEditorId">
- <equals value="org.eclipse.papyrus.infra.core.papyrusEditor" />
- </with>
- </activeWhen>
- </handler>
- </extension>
-
-<!-- Diagram creation command registration in menu and toolbar -->
-<extension point="org.eclipse.ui.menus">
- <menuContribution locationURI="menu:org.eclipse.papyrus.ui.menu">
- <menu id="org.eclipse.papyrus.uml.diagram.ui.menu.diagrams" label="Diagrams">
- <command commandId="org.eclipse.papyrus.uml.diagram.statemachine.CreationCommand"
- icon="icons/obj16/Diagram_StateMachine.gif" label="Create a new StateMachine Diagram"
- style="push" tooltip="Create a new StateMachine Diagram">
- <visibleWhen>
- <reference definitionId="org.eclipse.papyrus.uml.diagram.common.IsPapyrusActiveWithUMLModel"/>
- </visibleWhen>
- </command>
- </menu>
- </menuContribution>
-
- <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar">
- <toolbar id="org.eclipse.papyrus.uml.diagram.ui.toolbar">
- <command commandId="org.eclipse.papyrus.uml.diagram.statemachine.CreationCommand"
- icon="icons/obj16/Diagram_StateMachine.gif" label="Create a new StateMachine Diagram"
- style="push" tooltip="Create a new StateMachine Diagram">
- <visibleWhen>
- <reference definitionId="org.eclipse.papyrus.uml.diagram.common.IsPapyrusActiveWithUMLModel"/>
- </visibleWhen>
- </command>
- </toolbar>
- </menuContribution>
- <menuContribution locationURI="popup:org.eclipse.papyrus.views.modelexplorer.popupmenu.creatediagram">
- <command commandId="org.eclipse.papyrus.uml.diagram.statemachine.CreationCommand"
- icon="icons/obj16/Diagram_StateMachine.gif"
- label="Create a new StateMachine Diagram"
- style="push"
- tooltip="Create a new StateMachine Diagram">
- <visibleWhen>
- <reference definitionId="org.eclipse.papyrus.uml.diagram.common.IsPapyrusActiveWithUMLModel"/>
- </visibleWhen>
- </command>
- </menuContribution>
-
-</extension>
+<!-- Diagram creation command registration in menu and toolbar -->
<extension
point="org.eclipse.papyrus.infra.core.papyrusDiagram">
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/CommentCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/CommentCreateCommand.java
index 40b757b79b2..66284e9b855 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/CommentCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/CommentCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Comment;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,7 +29,7 @@ public class CommentCreateCommand extends EditElementCommand {
/**
* @generated
*/
- private EClass eClass = null;
+ private Diagram diagram = null;
/**
* @generated
@@ -35,24 +39,25 @@ public class CommentCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public CommentCreateCommand(CreateElementRequest req, EObject eObject) {
+ public CommentCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
super(req.getLabel(), null, req);
this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
- public static CommentCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new CommentCreateCommand(req, eObject);
+ public static CommentCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new CommentCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public CommentCreateCommand(CreateElementRequest req) {
+ public CommentCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
+ this.diagram = diagram;
}
/**
@@ -75,7 +80,9 @@ public class CommentCreateCommand extends EditElementCommand {
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getComment());
+ return data.isPermitted();
}
/**
@@ -83,8 +90,19 @@ public class CommentCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Comment newElement = UMLFactory.eINSTANCE.createComment();
- Element owner = (Element)getElementToEdit();
- owner.getOwnedComments().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Element qualifiedTarget = (Element)target;
+ qualifiedTarget.getOwnedComments().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Comment_666(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConnectionPointReferenceCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConnectionPointReferenceCreateCommand.java
index 3f3285e7765..8ca8b5a2a95 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConnectionPointReferenceCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConnectionPointReferenceCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.ConnectionPointReference;
import org.eclipse.uml2.uml.State;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class ConnectionPointReferenceCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static ConnectionPointReferenceCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new ConnectionPointReferenceCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public ConnectionPointReferenceCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public ConnectionPointReferenceCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static ConnectionPointReferenceCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new ConnectionPointReferenceCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public ConnectionPointReferenceCreateCommand(CreateElementRequest req, EObject eObject) {
+ public ConnectionPointReferenceCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getConnectionPointReference());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class ConnectionPointReferenceCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
ConnectionPointReference newElement = UMLFactory.eINSTANCE.createConnectionPointReference();
- State owner = (State)getElementToEdit();
- owner.getConnections().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ State qualifiedTarget = (State)target;
+ qualifiedTarget.getConnections().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_ConnectionPointReference_18000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConstraintCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConstraintCreateCommand.java
index 972c11d6f6b..e77e7c65472 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConstraintCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ConstraintCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Constraint;
import org.eclipse.uml2.uml.Namespace;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,7 +29,7 @@ public class ConstraintCreateCommand extends EditElementCommand {
/**
* @generated
*/
- private EClass eClass = null;
+ private Diagram diagram = null;
/**
* @generated
@@ -35,24 +39,25 @@ public class ConstraintCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public ConstraintCreateCommand(CreateElementRequest req, EObject eObject) {
+ public ConstraintCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
super(req.getLabel(), null, req);
this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
- public static ConstraintCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new ConstraintCreateCommand(req, eObject);
+ public static ConstraintCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new ConstraintCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public ConstraintCreateCommand(CreateElementRequest req) {
+ public ConstraintCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
+ this.diagram = diagram;
}
/**
@@ -75,7 +80,9 @@ public class ConstraintCreateCommand extends EditElementCommand {
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getConstraint());
+ return data.isPermitted();
}
/**
@@ -83,8 +90,19 @@ public class ConstraintCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Constraint newElement = UMLFactory.eINSTANCE.createConstraint();
- Namespace owner = (Namespace)getElementToEdit();
- owner.getOwnedRules().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Namespace qualifiedTarget = (Namespace)target;
+ qualifiedTarget.getOwnedRules().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Constraint_668(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/DoActivityStateBehaviorStateCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/DoActivityStateBehaviorStateCreateCommand.java
index c37994415ec..36b520baba5 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/DoActivityStateBehaviorStateCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/DoActivityStateBehaviorStateCreateCommand.java
@@ -11,9 +11,13 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.State;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -23,7 +27,7 @@ public class DoActivityStateBehaviorStateCreateCommand extends EditElementComman
/**
* @generated
*/
- private EClass eClass = null;
+ private Diagram diagram = null;
/**
* @generated
@@ -33,24 +37,25 @@ public class DoActivityStateBehaviorStateCreateCommand extends EditElementComman
/**
* @generated
*/
- public DoActivityStateBehaviorStateCreateCommand(CreateElementRequest req, EObject eObject) {
+ public DoActivityStateBehaviorStateCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
super(req.getLabel(), null, req);
this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
- public static DoActivityStateBehaviorStateCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new DoActivityStateBehaviorStateCreateCommand(req, eObject);
+ public static DoActivityStateBehaviorStateCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new DoActivityStateBehaviorStateCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public DoActivityStateBehaviorStateCreateCommand(CreateElementRequest req) {
+ public DoActivityStateBehaviorStateCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
+ this.diagram = diagram;
}
/**
@@ -77,7 +82,9 @@ public class DoActivityStateBehaviorStateCreateCommand extends EditElementComman
if(container.getDoActivity() != null) {
return false;
}
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getBehavior());
+ return data.isPermitted();
}
/**
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/EntryStateBehaviorCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/EntryStateBehaviorCreateCommand.java
index 7b6c5ccde88..7ca96dd1844 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/EntryStateBehaviorCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/EntryStateBehaviorCreateCommand.java
@@ -11,9 +11,13 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.State;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -23,7 +27,7 @@ public class EntryStateBehaviorCreateCommand extends EditElementCommand {
/**
* @generated
*/
- private EClass eClass = null;
+ private Diagram diagram = null;
/**
* @generated
@@ -33,24 +37,25 @@ public class EntryStateBehaviorCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public EntryStateBehaviorCreateCommand(CreateElementRequest req, EObject eObject) {
+ public EntryStateBehaviorCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
super(req.getLabel(), null, req);
this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
- public static EntryStateBehaviorCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new EntryStateBehaviorCreateCommand(req, eObject);
+ public static EntryStateBehaviorCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new EntryStateBehaviorCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public EntryStateBehaviorCreateCommand(CreateElementRequest req) {
+ public EntryStateBehaviorCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
+ this.diagram = diagram;
}
/**
@@ -77,7 +82,9 @@ public class EntryStateBehaviorCreateCommand extends EditElementCommand {
if(container.getEntry() != null) {
return false;
}
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getBehavior());
+ return data.isPermitted();
}
/**
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ExitStateBehaviorCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ExitStateBehaviorCreateCommand.java
index 4e0913ee906..f76c63dd0a9 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ExitStateBehaviorCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/ExitStateBehaviorCreateCommand.java
@@ -11,9 +11,13 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.State;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -23,7 +27,7 @@ public class ExitStateBehaviorCreateCommand extends EditElementCommand {
/**
* @generated
*/
- private EClass eClass = null;
+ private Diagram diagram = null;
/**
* @generated
@@ -33,24 +37,25 @@ public class ExitStateBehaviorCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public ExitStateBehaviorCreateCommand(CreateElementRequest req, EObject eObject) {
+ public ExitStateBehaviorCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
super(req.getLabel(), null, req);
this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
- public static ExitStateBehaviorCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new ExitStateBehaviorCreateCommand(req, eObject);
+ public static ExitStateBehaviorCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new ExitStateBehaviorCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public ExitStateBehaviorCreateCommand(CreateElementRequest req) {
+ public ExitStateBehaviorCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
+ this.diagram = diagram;
}
/**
@@ -77,7 +82,9 @@ public class ExitStateBehaviorCreateCommand extends EditElementCommand {
if(container.getExit() != null) {
return false;
}
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getBehavior());
+ return data.isPermitted();
}
/**
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/FinalStateCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/FinalStateCreateCommand.java
index 086703c80da..18439fdc143 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/FinalStateCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/FinalStateCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.FinalState;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class FinalStateCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static FinalStateCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new FinalStateCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public FinalStateCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public FinalStateCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static FinalStateCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new FinalStateCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public FinalStateCreateCommand(CreateElementRequest req, EObject eObject) {
+ public FinalStateCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getFinalState());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class FinalStateCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
FinalState newElement = UMLFactory.eINSTANCE.createFinalState();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_FinalState_5000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/InternalTransitionCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/InternalTransitionCreateCommand.java
index 91312217b2b..ef97ce961a6 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/InternalTransitionCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/InternalTransitionCreateCommand.java
@@ -11,10 +11,14 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Transition;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.Vertex;
/**
@@ -25,7 +29,7 @@ public class InternalTransitionCreateCommand extends EditElementCommand {
/**
* @generated
*/
- private EClass eClass = null;
+ private Diagram diagram = null;
/**
* @generated
@@ -35,24 +39,25 @@ public class InternalTransitionCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public InternalTransitionCreateCommand(CreateElementRequest req, EObject eObject) {
+ public InternalTransitionCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
super(req.getLabel(), null, req);
this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
- public static InternalTransitionCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new InternalTransitionCreateCommand(req, eObject);
+ public static InternalTransitionCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new InternalTransitionCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public InternalTransitionCreateCommand(CreateElementRequest req) {
+ public InternalTransitionCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
+ this.diagram = diagram;
}
/**
@@ -75,7 +80,9 @@ public class InternalTransitionCreateCommand extends EditElementCommand {
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getTransition());
+ return data.isPermitted();
}
/**
@@ -83,8 +90,19 @@ public class InternalTransitionCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Transition newElement = UMLFactory.eINSTANCE.createTransition();
- Vertex owner = (Vertex)getElementToEdit();
- owner.getIncomings().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Vertex qualifiedTarget = (Vertex)target;
+ qualifiedTarget.getIncomings().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Transition_680(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateChoiceCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateChoiceCreateCommand.java
index ae5bed0ac72..e4335fd6140 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateChoiceCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateChoiceCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateChoiceCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateChoiceCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateChoiceCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateChoiceCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateChoiceCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateChoiceCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateChoiceCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateChoiceCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateChoiceCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateChoiceCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_11000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateDeepHistoryCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateDeepHistoryCreateCommand.java
index 3b8bd7c512a..a0a5d9047d4 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateDeepHistoryCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateDeepHistoryCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateDeepHistoryCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateDeepHistoryCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateDeepHistoryCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateDeepHistoryCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateDeepHistoryCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateDeepHistoryCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateDeepHistoryCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateDeepHistoryCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateDeepHistoryCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateDeepHistoryCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_14000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateEntryPointCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateEntryPointCreateCommand.java
index bec620e4a80..49861f0d81b 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateEntryPointCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateEntryPointCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.StateMachine;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateEntryPointCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateEntryPointCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateEntryPointCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateEntryPointCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateEntryPointCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateEntryPointCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateEntryPointCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateEntryPointCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateEntryPointCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateEntryPointCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- StateMachine owner = (StateMachine)getElementToEdit();
- owner.getConnectionPoints().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ StateMachine qualifiedTarget = (StateMachine)target;
+ qualifiedTarget.getConnectionPoints().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_16000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateExitPointCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateExitPointCreateCommand.java
index 301270e0924..1c813d8f96e 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateExitPointCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateExitPointCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.StateMachine;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateExitPointCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateExitPointCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateExitPointCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateExitPointCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateExitPointCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateExitPointCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateExitPointCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateExitPointCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateExitPointCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateExitPointCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- StateMachine owner = (StateMachine)getElementToEdit();
- owner.getConnectionPoints().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ StateMachine qualifiedTarget = (StateMachine)target;
+ qualifiedTarget.getConnectionPoints().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_17000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateForkCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateForkCreateCommand.java
index f64b46d85de..fba16292b8f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateForkCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateForkCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateForkCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateForkCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateForkCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateForkCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateForkCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateForkCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateForkCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateForkCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateForkCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateForkCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_10000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateInitialCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateInitialCreateCommand.java
index bbdc881d02f..af0ea92d910 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateInitialCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateInitialCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateInitialCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateInitialCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateInitialCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateInitialCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateInitialCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateInitialCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateInitialCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateInitialCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateInitialCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateInitialCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_8000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJoinCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJoinCreateCommand.java
index 60f721fe4c1..d7397669263 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJoinCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJoinCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateJoinCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateJoinCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateJoinCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateJoinCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateJoinCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateJoinCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateJoinCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateJoinCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateJoinCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateJoinCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_9000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJunctionCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJunctionCreateCommand.java
index c8c7e1e5b50..0d3f38cf9b0 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJunctionCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateJunctionCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateJunctionCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateJunctionCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateJunctionCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateJunctionCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateJunctionCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateJunctionCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateJunctionCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateJunctionCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateJunctionCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateJunctionCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_12000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateShallowHistoryCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateShallowHistoryCreateCommand.java
index 57c93616fe2..8323d82a595 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateShallowHistoryCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateShallowHistoryCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateShallowHistoryCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateShallowHistoryCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateShallowHistoryCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateShallowHistoryCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateShallowHistoryCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateShallowHistoryCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateShallowHistoryCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateShallowHistoryCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateShallowHistoryCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateShallowHistoryCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_13000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateTerminateCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateTerminateCreateCommand.java
index 708aa91bca7..1b8b8543983 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateTerminateCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/PseudostateTerminateCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Pseudostate;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class PseudostateTerminateCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static PseudostateTerminateCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new PseudostateTerminateCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public PseudostateTerminateCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public PseudostateTerminateCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static PseudostateTerminateCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new PseudostateTerminateCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public PseudostateTerminateCreateCommand(CreateElementRequest req, EObject eObject) {
+ public PseudostateTerminateCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getPseudostate());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class PseudostateTerminateCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Pseudostate newElement = UMLFactory.eINSTANCE.createPseudostate();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Pseudostate_15000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/RegionCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/RegionCreateCommand.java
index d6788b547b9..2695f5ab4ce 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/RegionCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/RegionCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.StateMachine;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class RegionCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static RegionCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new RegionCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public RegionCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public RegionCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static RegionCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new RegionCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public RegionCreateCommand(CreateElementRequest req, EObject eObject) {
+ public RegionCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getRegion());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class RegionCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
Region newElement = UMLFactory.eINSTANCE.createRegion();
- StateMachine owner = (StateMachine)getElementToEdit();
- owner.getRegions().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ StateMachine qualifiedTarget = (StateMachine)target;
+ qualifiedTarget.getRegions().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_Region_3000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateCreateCommand.java
index fd9528acb8c..2f1d176b101 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.State;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class StateCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static StateCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new StateCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public StateCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public StateCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static StateCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new StateCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public StateCreateCommand(CreateElementRequest req, EObject eObject) {
+ public StateCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getState());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class StateCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
State newElement = UMLFactory.eINSTANCE.createState();
- Region owner = (Region)getElementToEdit();
- owner.getSubvertices().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Region qualifiedTarget = (Region)target;
+ qualifiedTarget.getSubvertices().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_State_6000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateMachineCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateMachineCreateCommand.java
index 86a1bf09d36..2a03cd0cd01 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateMachineCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/StateMachineCreateCommand.java
@@ -11,11 +11,15 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
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.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.ElementInitializers;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.StateMachine;
import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
/**
* @generated
@@ -25,41 +29,44 @@ public class StateMachineCreateCommand extends EditElementCommand {
/**
* @generated
*/
- public static StateMachineCreateCommand create(CreateElementRequest req, EObject eObject) {
- return new StateMachineCreateCommand(req, eObject);
- }
+ private Diagram diagram = null;
/**
* @generated
*/
- private EClass eClass = null;
+ private EObject eObject = null;
/**
* @generated
*/
- private EObject eObject = null;
+ public StateMachineCreateCommand(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ super(req.getLabel(), null, req);
+ this.eObject = eObject;
+ this.diagram = diagram;
+ }
/**
* @generated
*/
- public StateMachineCreateCommand(CreateElementRequest req) {
- super(req.getLabel(), null, req);
+ public static StateMachineCreateCommand create(CreateElementRequest req, EObject eObject, Diagram diagram) {
+ return new StateMachineCreateCommand(req, eObject, diagram);
}
/**
* @generated
*/
- public StateMachineCreateCommand(CreateElementRequest req, EObject eObject) {
+ public StateMachineCreateCommand(CreateElementRequest req, Diagram diagram) {
super(req.getLabel(), null, req);
- this.eObject = eObject;
- this.eClass = eObject != null ? eObject.eClass() : null;
+ this.diagram = diagram;
}
/**
* @generated
*/
public boolean canExecute() {
- return true;
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), UMLPackage.eINSTANCE.getStateMachine());
+ return data.isPermitted();
}
/**
@@ -81,8 +88,19 @@ public class StateMachineCreateCommand extends EditElementCommand {
*/
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
StateMachine newElement = UMLFactory.eINSTANCE.createStateMachine();
- Package owner = (Package)getElementToEdit();
- owner.getPackagedElements().add(newElement);
+ EObject target = getElementToEdit();
+ ModelAddData data = PolicyChecker.getCurrent().getChildAddData(diagram, target, newElement);
+ if(data.isPermitted()) {
+ if(data.isPathDefined()) {
+ if(!data.execute(target, newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ } else {
+ Package qualifiedTarget = (Package)target;
+ qualifiedTarget.getPackagedElements().add(newElement);
+ }
+ } else {
+ return CommandResult.newErrorCommandResult("The active policy restricts the addition of this element");
+ }
ElementInitializers.getInstance().init_StateMachine_2000(newElement);
doConfigure(newElement, monitor, info);
((CreateElementRequest)getRequest()).setNewElement(newElement);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionCreateCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionCreateCommand.java
index 3e5966f5a78..db6f5a50736 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionCreateCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionCreateCommand.java
@@ -32,7 +32,7 @@ public class TransitionCreateCommand extends EditElementCommand {
*/
protected Region deduceContainer(EObject source, EObject target) {
// TODO: avoid modification of generated code, problem is that model needs to be changed at many places ...
- return EMFCustomTransitionRetargetContainerCommand.deduceContainer (source, target);
+ return EMFCustomTransitionRetargetContainerCommand.deduceContainer(source, target);
}
/**
@@ -80,9 +80,6 @@ public class TransitionCreateCommand extends EditElementCommand {
if(getContainer() == null) {
return false;
}
- if(!EMFCustomTransitionRetargetContainerCommand.isValid(source, target)) {
- return false;
- }
return UMLBaseItemSemanticEditPolicy.getLinkConstraints().canCreateTransition_7000(getContainer(), getSource(), getTarget());
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionReorientCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionReorientCommand.java
index 5df3b201cb4..b7d3f70b570 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionReorientCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/commands/TransitionReorientCommand.java
@@ -71,7 +71,7 @@ public class TransitionReorientCommand extends EditElementCommand {
return false;
}
// TODO: avoid modifications here. Not done due to many required changes
- if (!EMFCustomTransitionRetargetContainerCommand.isValid(newEnd, target)) {
+ if(!EMFCustomTransitionRetargetContainerCommand.isValid(newEnd, target)) {
return false;
}
Region container = (Region)getLink().eContainer();
@@ -90,7 +90,7 @@ public class TransitionReorientCommand extends EditElementCommand {
return false;
}
// TODO: avoid modifications here. Not done due to many required changes
- if (!EMFCustomTransitionRetargetContainerCommand.isValid(source, newEnd)) {
+ if(!EMFCustomTransitionRetargetContainerCommand.isValid(source, newEnd)) {
return false;
}
Region container = (Region)getLink().eContainer();
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageCanonicalEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageCanonicalEditPolicy.java
index 9cecdfcce96..5ebc449240f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageCanonicalEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageCanonicalEditPolicy.java
@@ -28,6 +28,7 @@ import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.Edge;
import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.gmf.tooling.runtime.update.UpdaterLinkDescriptor;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.CommentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConnectionPointReferenceEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintEditPart;
@@ -74,7 +75,136 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
/**
* @generated
*/
- private Collection<UMLLinkDescriptor> collectAllLinks(View view, Map<EObject, View> domain2NotationMap) {
+ private Diagram getDiagram() {
+ return ((View)getHost().getModel()).getDiagram();
+ }
+
+ /**
+ * @generated
+ */
+ private EditPart getSourceEditPart(UpdaterLinkDescriptor descriptor, Domain2Notation domain2NotationMap) {
+ return getEditPart(descriptor.getSource(), domain2NotationMap);
+ }
+
+ /**
+ * @generated
+ */
+ private EditPart getTargetEditPart(UpdaterLinkDescriptor descriptor, Domain2Notation domain2NotationMap) {
+ return getEditPart(descriptor.getDestination(), domain2NotationMap);
+ }
+
+ /**
+ * @generated
+ */
+ protected final EditPart getHintedEditPart(EObject domainModelElement, Domain2Notation domain2NotationMap, int hintVisualId) {
+ View view = (View)domain2NotationMap.getHinted(domainModelElement, UMLVisualIDRegistry.getType(hintVisualId));
+ if(view != null) {
+ return (EditPart)getHost().getViewer().getEditPartRegistry().get(view);
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("serial")
+ protected static class Domain2Notation extends HashMap<EObject, View> {
+
+ /**
+ * @generated
+ */
+ public boolean containsDomainElement(EObject domainElement) {
+ return this.containsKey(domainElement);
+ }
+
+ /**
+ * @generated
+ */
+ public View getHinted(EObject domainEObject, String hint) {
+ return this.get(domainEObject);
+ }
+
+ /**
+ * @generated
+ */
+ public void putView(EObject domainElement, View view) {
+ if(!containsKey(view.getElement())) {
+ this.put(domainElement, view);
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return UMLPackage.eINSTANCE.getPackage_PackagedElement();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View)getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<UMLNodeDescriptor> childDescriptors = UMLDiagramUpdater.getPackage_1000SemanticChildren(viewObject);
+ for(UMLNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return StateMachineEditPart.VISUAL_ID == UMLVisualIDRegistry.getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren, final View view) {
+ return isMyDiagramElement(view) && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<IAdaptable> refreshConnections() {
+ Domain2Notation domain2NotationMap = new Domain2Notation();
+ Collection<UMLLinkDescriptor> linkDescriptors = collectAllLinks(getDiagram(), domain2NotationMap);
+ Collection existingLinks = new LinkedList(getDiagram().getEdges());
+ for(Iterator linksIterator = existingLinks.iterator(); linksIterator.hasNext();) {
+ Edge nextDiagramLink = (Edge)linksIterator.next();
+ int diagramLinkVisualID = UMLVisualIDRegistry.getVisualID(nextDiagramLink);
+ if(diagramLinkVisualID == -1) {
+ if(nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) {
+ linksIterator.remove();
+ }
+ continue;
+ }
+ EObject diagramLinkObject = nextDiagramLink.getElement();
+ EObject diagramLinkSrc = nextDiagramLink.getSource().getElement();
+ EObject diagramLinkDst = nextDiagramLink.getTarget().getElement();
+ for(Iterator<UMLLinkDescriptor> linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) {
+ UMLLinkDescriptor nextLinkDescriptor = linkDescriptorsIterator.next();
+ if(diagramLinkObject == nextLinkDescriptor.getModelElement() && diagramLinkSrc == nextLinkDescriptor.getSource() && diagramLinkDst == nextLinkDescriptor.getDestination() && diagramLinkVisualID == nextLinkDescriptor.getVisualID()) {
+ linksIterator.remove();
+ linkDescriptorsIterator.remove();
+ break;
+ }
+ }
+ }
+ deleteViews(existingLinks.iterator());
+ return createConnections(linkDescriptors, domain2NotationMap);
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<UMLLinkDescriptor> collectAllLinks(View view, Domain2Notation domain2NotationMap) {
if(!PackageEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(view))) {
return Collections.emptyList();
}
@@ -85,9 +215,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPackage_1000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case StateMachineEditPart.VISUAL_ID:
@@ -95,9 +223,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getStateMachine_2000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case RegionEditPart.VISUAL_ID:
@@ -105,9 +231,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getRegion_3000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case FinalStateEditPart.VISUAL_ID:
@@ -115,9 +239,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getFinalState_5000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case StateEditPart.VISUAL_ID:
@@ -125,9 +247,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getState_6000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateInitialEditPart.VISUAL_ID:
@@ -135,9 +255,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_8000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateJoinEditPart.VISUAL_ID:
@@ -145,9 +263,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_9000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateForkEditPart.VISUAL_ID:
@@ -155,9 +271,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_10000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateChoiceEditPart.VISUAL_ID:
@@ -165,9 +279,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_11000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateJunctionEditPart.VISUAL_ID:
@@ -175,9 +287,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_12000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateShallowHistoryEditPart.VISUAL_ID:
@@ -185,9 +295,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_13000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateDeepHistoryEditPart.VISUAL_ID:
@@ -195,9 +303,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_14000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateTerminateEditPart.VISUAL_ID:
@@ -205,9 +311,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_15000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateEntryPointEditPart.VISUAL_ID:
@@ -215,9 +319,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_16000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case PseudostateExitPointEditPart.VISUAL_ID:
@@ -225,9 +327,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getPseudostate_17000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case ConnectionPointReferenceEditPart.VISUAL_ID:
@@ -235,9 +335,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getConnectionPointReference_18000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case CommentEditPart.VISUAL_ID:
@@ -245,9 +343,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getComment_666ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case ConstraintEditPart.VISUAL_ID:
@@ -255,9 +351,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getConstraint_668ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case TransitionEditPart.VISUAL_ID:
@@ -265,9 +359,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getTransition_7000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
case GeneralizationEditPart.VISUAL_ID:
@@ -275,9 +367,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
if(!domain2NotationMap.containsKey(view.getElement())) {
result.addAll(UMLDiagramUpdater.getGeneralization_19000ContainedLinks(view));
}
- if(!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
+ domain2NotationMap.putView(view.getElement(), view);
break;
}
}
@@ -293,11 +383,11 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
/**
* @generated
*/
- private Collection<IAdaptable> createConnections(Collection<UMLLinkDescriptor> linkDescriptors, Map<EObject, View> domain2NotationMap) {
+ private Collection<IAdaptable> createConnections(Collection<UMLLinkDescriptor> linkDescriptors, Domain2Notation domain2NotationMap) {
LinkedList<IAdaptable> adapters = new LinkedList<IAdaptable>();
for(UMLLinkDescriptor nextLinkDescriptor : linkDescriptors) {
- EditPart sourceEditPart = getEditPart(nextLinkDescriptor.getSource(), domain2NotationMap);
- EditPart targetEditPart = getEditPart(nextLinkDescriptor.getDestination(), domain2NotationMap);
+ EditPart sourceEditPart = getSourceEditPart(nextLinkDescriptor, domain2NotationMap);
+ EditPart targetEditPart = getTargetEditPart(nextLinkDescriptor, domain2NotationMap);
if(sourceEditPart == null || targetEditPart == null) {
continue;
}
@@ -323,14 +413,7 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
/**
* @generated
*/
- private Diagram getDiagram() {
- return ((View)getHost().getModel()).getDiagram();
- }
-
- /**
- * @generated
- */
- private EditPart getEditPart(EObject domainModelElement, Map<EObject, View> domain2NotationMap) {
+ private EditPart getEditPart(EObject domainModelElement, Domain2Notation domain2NotationMap) {
View view = (View)domain2NotationMap.get(domainModelElement);
if(view != null) {
return (EditPart)getHost().getViewer().getEditPartRegistry().get(view);
@@ -341,73 +424,6 @@ public class PackageCanonicalEditPolicy extends CanonicalEditPolicy {
/**
* @generated
*/
- protected EStructuralFeature getFeatureToSynchronize() {
- return UMLPackage.eINSTANCE.getPackage_PackagedElement();
- }
-
- /**
- * @generated
- */
- @SuppressWarnings("rawtypes")
- protected List getSemanticChildrenList() {
- View viewObject = (View)getHost().getModel();
- LinkedList<EObject> result = new LinkedList<EObject>();
- List<UMLNodeDescriptor> childDescriptors = UMLDiagramUpdater.getPackage_1000SemanticChildren(viewObject);
- for(UMLNodeDescriptor d : childDescriptors) {
- result.add(d.getModelElement());
- }
- return result;
- }
-
- /**
- * @generated
- */
- private boolean isMyDiagramElement(View view) {
- return StateMachineEditPart.VISUAL_ID == UMLVisualIDRegistry.getVisualID(view);
- }
-
- /**
- * @generated
- */
- protected boolean isOrphaned(Collection<EObject> semanticChildren, final View view) {
- return isMyDiagramElement(view) && !semanticChildren.contains(view.getElement());
- }
-
- /**
- * @generated
- */
- private Collection<IAdaptable> refreshConnections() {
- Map<EObject, View> domain2NotationMap = new HashMap<EObject, View>();
- Collection<UMLLinkDescriptor> linkDescriptors = collectAllLinks(getDiagram(), domain2NotationMap);
- Collection existingLinks = new LinkedList(getDiagram().getEdges());
- for(Iterator linksIterator = existingLinks.iterator(); linksIterator.hasNext();) {
- Edge nextDiagramLink = (Edge)linksIterator.next();
- int diagramLinkVisualID = UMLVisualIDRegistry.getVisualID(nextDiagramLink);
- if(diagramLinkVisualID == -1) {
- if(nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) {
- linksIterator.remove();
- }
- continue;
- }
- EObject diagramLinkObject = nextDiagramLink.getElement();
- EObject diagramLinkSrc = nextDiagramLink.getSource().getElement();
- EObject diagramLinkDst = nextDiagramLink.getTarget().getElement();
- for(Iterator<UMLLinkDescriptor> linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) {
- UMLLinkDescriptor nextLinkDescriptor = linkDescriptorsIterator.next();
- if(diagramLinkObject == nextLinkDescriptor.getModelElement() && diagramLinkSrc == nextLinkDescriptor.getSource() && diagramLinkDst == nextLinkDescriptor.getDestination() && diagramLinkVisualID == nextLinkDescriptor.getVisualID()) {
- linksIterator.remove();
- linkDescriptorsIterator.remove();
- break;
- }
- }
- }
- deleteViews(existingLinks.iterator());
- return createConnections(linkDescriptors, domain2NotationMap);
- }
-
- /**
- * @generated
- */
protected void refreshSemantic() {
if(resolveSemanticElement() == null) {
return;
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageItemSemanticEditPolicy.java
index d378c9fcd84..2ae705e7d62 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/PackageItemSemanticEditPolicy.java
@@ -9,6 +9,7 @@ import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
import org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.uml.diagram.common.commands.DuplicateNamedElementCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.StateMachineCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.UMLElementTypes;
@@ -65,7 +66,7 @@ public class PackageItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new StateMachineCreateCommand(req));
+ return getGEFWrapper(new StateMachineCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
return super.getCreateCommand(req);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/RegionCompartmentItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/RegionCompartmentItemSemanticEditPolicy.java
index 99f39efba04..60fc6158f41 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/RegionCompartmentItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/RegionCompartmentItemSemanticEditPolicy.java
@@ -5,6 +5,7 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
import org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.CommentCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.ConstraintCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.FinalStateCreateCommand;
@@ -57,85 +58,85 @@ public class RegionCompartmentItemSemanticEditPolicy extends UMLBaseItemSemantic
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateInitialCreateCommand(req));
+ return getGEFWrapper(new PseudostateInitialCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_9000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateJoinCreateCommand(req));
+ return getGEFWrapper(new PseudostateJoinCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_10000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateForkCreateCommand(req));
+ return getGEFWrapper(new PseudostateForkCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_11000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateChoiceCreateCommand(req));
+ return getGEFWrapper(new PseudostateChoiceCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_12000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateJunctionCreateCommand(req));
+ return getGEFWrapper(new PseudostateJunctionCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_13000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateShallowHistoryCreateCommand(req));
+ return getGEFWrapper(new PseudostateShallowHistoryCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_14000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateDeepHistoryCreateCommand(req));
+ return getGEFWrapper(new PseudostateDeepHistoryCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_15000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateTerminateCreateCommand(req));
+ return getGEFWrapper(new PseudostateTerminateCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.FinalState_5000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new FinalStateCreateCommand(req));
+ return getGEFWrapper(new FinalStateCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.State_6000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new StateCreateCommand(req));
+ return getGEFWrapper(new StateCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_16000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateEntryPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateEntryPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_17000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateExitPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateExitPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Comment_666 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new CommentCreateCommand(req));
+ return getGEFWrapper(new CommentCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Constraint_668 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new ConstraintCreateCommand(req));
+ return getGEFWrapper(new ConstraintCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
return super.getCreateCommand(req);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateCompartmentItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateCompartmentItemSemanticEditPolicy.java
index 7d0e0fd9e59..07d4462a182 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateCompartmentItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateCompartmentItemSemanticEditPolicy.java
@@ -5,6 +5,7 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
import org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.ConnectionPointReferenceCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.RegionCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.UMLElementTypes;
@@ -45,13 +46,13 @@ public class StateCompartmentItemSemanticEditPolicy extends UMLBaseItemSemanticE
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new RegionCreateCommand(req));
+ return getGEFWrapper(new RegionCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.ConnectionPointReference_18000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new ConnectionPointReferenceCreateCommand(req));
+ return getGEFWrapper(new ConnectionPointReferenceCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
return super.getCreateCommand(req);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateItemSemanticEditPolicy.java
index c1ac4179917..8aded92095b 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateItemSemanticEditPolicy.java
@@ -25,6 +25,7 @@ import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.commands.wrappers.EMFtoGMFCommandWrapper;
import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
import org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.CommentAnnotatedElementCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.CommentAnnotatedElementReorientCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.ConnectionPointReferenceCreateCommand;
@@ -326,49 +327,49 @@ public class StateItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new EntryStateBehaviorCreateCommand(req));
+ return getGEFWrapper(new EntryStateBehaviorCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Behavior_691 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new DoActivityStateBehaviorStateCreateCommand(req));
+ return getGEFWrapper(new DoActivityStateBehaviorStateCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Behavior_692 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new ExitStateBehaviorCreateCommand(req));
+ return getGEFWrapper(new ExitStateBehaviorCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Transition_680 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new InternalTransitionCreateCommand(req));
+ return getGEFWrapper(new InternalTransitionCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Region_3000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new RegionCreateCommand(req));
+ return getGEFWrapper(new RegionCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_16000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateEntryPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateEntryPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_17000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateExitPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateExitPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.ConnectionPointReference_18000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new ConnectionPointReferenceCreateCommand(req));
+ return getGEFWrapper(new ConnectionPointReferenceCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
return super.getCreateCommand(req);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineCompartmentItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineCompartmentItemSemanticEditPolicy.java
index 805c394cf5c..d5b8a944fe1 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineCompartmentItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineCompartmentItemSemanticEditPolicy.java
@@ -5,6 +5,7 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
import org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.PseudostateEntryPointCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.PseudostateExitPointCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.RegionCreateCommand;
@@ -46,19 +47,19 @@ public class StateMachineCompartmentItemSemanticEditPolicy extends UMLBaseItemSe
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new RegionCreateCommand(req));
+ return getGEFWrapper(new RegionCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_16000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateEntryPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateEntryPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_17000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateExitPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateExitPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
return super.getCreateCommand(req);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineItemSemanticEditPolicy.java
index 92e38360e14..ed02b737c16 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/policies/StateMachineItemSemanticEditPolicy.java
@@ -25,6 +25,7 @@ import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.commands.wrappers.EMFtoGMFCommandWrapper;
import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
import org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.CommentAnnotatedElementCreateCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.CommentAnnotatedElementReorientCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.commands.ConstraintConstrainedElementCreateCommand;
@@ -280,13 +281,13 @@ public class StateMachineItemSemanticEditPolicy extends UMLBaseItemSemanticEditP
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateEntryPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateEntryPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
if(UMLElementTypes.Pseudostate_17000 == baseElementType) {
if(isExtendedType) {
return getExtendedTypeCreationCommand(req, (IExtendedHintedElementType)requestElementType);
}
- return getGEFWrapper(new PseudostateExitPointCreateCommand(req));
+ return getGEFWrapper(new PseudostateExitPointCreateCommand(req, DiagramUtils.getDiagramFrom(getHost())));
}
return super.getCreateCommand(req);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/part/UMLVisualIDRegistry.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/part/UMLVisualIDRegistry.java
index fed64e09642..461fa0a879a 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/part/UMLVisualIDRegistry.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/part/UMLVisualIDRegistry.java
@@ -354,17 +354,8 @@ public class UMLVisualIDRegistry {
return false;
}
- /**
- * @generated
- */
public static int getDiagramVisualID(EObject domainElement) {
- if(domainElement == null) {
- return -1;
- }
- if(UMLPackage.eINSTANCE.getPackage().isSuperTypeOf(domainElement.eClass()) && isDiagram((Package)domainElement)) {
- return PackageEditPart.VISUAL_ID;
- }
- return -1;
+ return PackageEditPart.VISUAL_ID;
}
/**

Back to the top