diff options
author | atischenko | 2015-02-26 15:00:51 +0000 |
---|---|---|
committer | Anatoliy Tischenko | 2015-02-28 12:51:49 +0000 |
commit | b51da3151da0db88ab374f548b59c19184a1491e (patch) | |
tree | 53507968cc6cac0277a1c1c69576dd9554129e1c | |
parent | 614c64ed5b7389fecd8512ccca280d82306da05a (diff) | |
download | org.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>
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 |