Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoratischenko2015-02-26 15:00:51 +0000
committerAnatoliy Tischenko2015-02-28 12:51:49 +0000
commitb51da3151da0db88ab374f548b59c19184a1491e (patch)
tree53507968cc6cac0277a1c1c69576dd9554129e1c
parent614c64ed5b7389fecd8512ccca280d82306da05a (diff)
downloadorg.eclipse.papyrus-b51da3151da0db88ab374f548b59c19184a1491e.tar.gz
org.eclipse.papyrus-b51da3151da0db88ab374f548b59c19184a1491e.tar.xz
org.eclipse.papyrus-b51da3151da0db88ab374f548b59c19184a1491e.zip
Activity migration on elementtypes framework:
- fix containment feature for structured nodes Change-Id: Ia4ebf0b45584b59e84119d2027c646ebf406025a Signed-off-by: atischenko <montages.t7@gmail.com>
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations6
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ActivityHelper.java20
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ExpansionRegionHelper.java2
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/StructuredActivityNodeHelper.java39
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/edit/helper/ExpansionRegionHelperTest.java2
5 files changed, 64 insertions, 5 deletions
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations b/plugins/uml/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations
index 7c81fb525af..1bc49d81e9b 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations
@@ -203,7 +203,7 @@
<iconEntry xmi:id="_Scbb61YCEeS0WsAAtVmToA" iconPath="/icons/full/obj16/ComponentRealization.gif" bundleId="org.eclipse.uml2.uml.edit"/>
<eClass href="http://www.eclipse.org/uml2/5.0.0/UML#//ComponentRealization"/>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" xmi:id="_ScbcBFYCEeS0WsAAtVmToA" name="UML::ConditionalNode" identifier="org.eclipse.papyrus.uml.ConditionalNode" hint="UML::ConditionalNode" editHelperClassName="org.eclipse.papyrus.uml.service.types.helper.ActivityNodeHelper">
+ <elementTypeConfigurations xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" xmi:id="_ScbcBFYCEeS0WsAAtVmToA" name="UML::ConditionalNode" identifier="org.eclipse.papyrus.uml.ConditionalNode" hint="UML::ConditionalNode" editHelperClassName="org.eclipse.papyrus.uml.service.types.helper.StructuredActivityNodeHelper">
<iconEntry xmi:id="_ScbcBVYCEeS0WsAAtVmToA" iconPath="/icons/full/obj16/ConditionalNode.gif" bundleId="org.eclipse.uml2.uml.edit"/>
<eClass href="http://www.eclipse.org/uml2/5.0.0/UML#//ConditionalNode"/>
</elementTypeConfigurations>
@@ -592,7 +592,7 @@
<iconEntry xmi:id="_Sc4u7VYCEeS0WsAAtVmToA" iconPath="/icons/full/obj16/LiteralUnlimitedNatural.gif" bundleId="org.eclipse.uml2.uml.edit"/>
<eClass href="http://www.eclipse.org/uml2/5.0.0/UML#//LiteralUnlimitedNatural"/>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" xmi:id="_Sc58-VYCEeS0WsAAtVmToA" name="UML::LoopNode" identifier="org.eclipse.papyrus.uml.LoopNode" hint="UML::LoopNode" editHelperClassName="org.eclipse.papyrus.uml.service.types.helper.ActivityNodeHelper">
+ <elementTypeConfigurations xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" xmi:id="_Sc58-VYCEeS0WsAAtVmToA" name="UML::LoopNode" identifier="org.eclipse.papyrus.uml.LoopNode" hint="UML::LoopNode" editHelperClassName="org.eclipse.papyrus.uml.service.types.helper.StructuredActivityNodeHelper">
<iconEntry xmi:id="_Sc58-lYCEeS0WsAAtVmToA" iconPath="/icons/full/obj16/LoopNode.gif" bundleId="org.eclipse.uml2.uml.edit"/>
<eClass href="http://www.eclipse.org/uml2/5.0.0/UML#//LoopNode"/>
</elementTypeConfigurations>
@@ -911,7 +911,7 @@
<iconEntry xmi:id="_SdGKS1YCEeS0WsAAtVmToA" iconPath="/icons/full/obj16/StructuralFeatureAction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
<eClass href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuralFeatureAction"/>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" xmi:id="_SdGxQFYCEeS0WsAAtVmToA" name="UML::StructuredActivityNode" identifier="org.eclipse.papyrus.uml.StructuredActivityNode" hint="UML::StructuredActivityNode" editHelperClassName="org.eclipse.papyrus.uml.service.types.helper.ActivityNodeHelper">
+ <elementTypeConfigurations xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" xmi:id="_SdGxQFYCEeS0WsAAtVmToA" name="UML::StructuredActivityNode" identifier="org.eclipse.papyrus.uml.StructuredActivityNode" hint="UML::StructuredActivityNode" editHelperClassName="org.eclipse.papyrus.uml.service.types.helper.StructuredActivityNodeHelper">
<iconEntry xmi:id="_SdGxQVYCEeS0WsAAtVmToA" iconPath="/icons/full/obj16/StructuredActivityNode.gif" bundleId="org.eclipse.uml2.uml.edit"/>
<eClass href="http://www.eclipse.org/uml2/5.0.0/UML#//StructuredActivityNode"/>
</elementTypeConfigurations>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ActivityHelper.java b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ActivityHelper.java
index db808c8a724..247d120c7d1 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ActivityHelper.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ActivityHelper.java
@@ -14,8 +14,11 @@
package org.eclipse.papyrus.uml.service.types.helper;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest;
import org.eclipse.papyrus.uml.service.types.command.NotContainmentMoveCommand;
+import org.eclipse.uml2.uml.UMLPackage;
public class ActivityHelper extends ElementEditHelper {
@@ -25,6 +28,23 @@ public class ActivityHelper extends ElementEditHelper {
return new NotContainmentMoveCommand(req);
}
+ @Override
+ protected ICommand getCreateCommand(CreateElementRequest req) {
+ CreateElementRequest createRequest = isStructuredNode(req.getElementType()) ? createStructuredNodeRequest(req) : req;
+ return super.getCreateCommand(createRequest);
+ }
+
+ protected CreateElementRequest createStructuredNodeRequest(CreateElementRequest baseReq) {
+ CreateElementRequest req = new CreateElementRequest(baseReq.getEditingDomain(), baseReq.getContainer(), baseReq.getElementType());
+ req.addParameters(baseReq.getParameters());
+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_StructuredNode());
+ return req;
+ }
+
+ protected boolean isStructuredNode(IElementType type) {
+ return type.getEClass() != null && UMLPackage.eINSTANCE.getStructuredActivityNode().isSuperTypeOf(type.getEClass());
+ }
+
// {
// getDefaultContainmentFeatures().put(UMLPackage.eINSTANCE.getCentralBufferNode(), UMLPackage.eINSTANCE.getActivity_OwnedNode());
// }
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ExpansionRegionHelper.java b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ExpansionRegionHelper.java
index 64bee5c7ea2..14d65c505d4 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ExpansionRegionHelper.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/ExpansionRegionHelper.java
@@ -9,7 +9,7 @@ import org.eclipse.uml2.uml.ExpansionRegion;
import org.eclipse.uml2.uml.StructuredActivityNode;
import org.eclipse.uml2.uml.UMLPackage;
-public class ExpansionRegionHelper extends ActivityNodeHelper {
+public class ExpansionRegionHelper extends StructuredActivityNodeHelper {
@Override
protected ICommand getCreateCommand(CreateElementRequest req) {
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/StructuredActivityNodeHelper.java b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/StructuredActivityNodeHelper.java
new file mode 100644
index 00000000000..3d86a268d31
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types/src/org/eclipse/papyrus/uml/service/types/helper/StructuredActivityNodeHelper.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.service.types.helper;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.uml2.uml.UMLPackage;
+
+public class StructuredActivityNodeHelper extends ActivityNodeHelper {
+
+ @Override
+ protected ICommand getCreateCommand(CreateElementRequest req) {
+ CreateElementRequest createRequest = isStructuredNode(req.getElementType()) ? createStructuredNodeRequest(req) : req;
+ return super.getCreateCommand(createRequest);
+ }
+
+ protected CreateElementRequest createStructuredNodeRequest(CreateElementRequest baseReq) {
+ CreateElementRequest req = new CreateElementRequest(baseReq.getEditingDomain(), baseReq.getContainer(), baseReq.getElementType());
+ req.addParameters(baseReq.getParameters());
+ req.setContainmentFeature(UMLPackage.eINSTANCE.getStructuredActivityNode_Node());
+ return req;
+ }
+
+ protected boolean isStructuredNode(IElementType type) {
+ return type.getEClass() != null && UMLPackage.eINSTANCE.getStructuredActivityNode().isSuperTypeOf(type.getEClass());
+ }
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/edit/helper/ExpansionRegionHelperTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/edit/helper/ExpansionRegionHelperTest.java
index 85309a455da..72673940456 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/edit/helper/ExpansionRegionHelperTest.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/edit/helper/ExpansionRegionHelperTest.java
@@ -88,7 +88,7 @@ public class ExpansionRegionHelperTest extends AbstractPapyrusTest {
ICommand command = myHelperInstance.getCreateCommand(expansionRegionContainmentCreateRequest);
commonExpansionRegionCreateChildTest(command);
CreateEditBasedElementCommand createCommand = (CreateEditBasedElementCommand) command;
- assertEquals(expansionRegionContainmentCreateRequest, createCommand.getCreateRequest());
+ assertNotEquals(expansionRegionContainmentCreateRequest, createCommand.getCreateRequest());
}
@Test

Back to the top