Bug 582872 - [Sirius][StateMachineDiagram] Connect the VSM to the UML Domain Service
Signed-off-by: Dilan EESHVARAN <dilan.eeshvaran@cea.fr>
Change-Id: Icc260429b36acf9c312d8795ce63d3a5b1da0afc
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/META-INF/MANIFEST.MF b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/META-INF/MANIFEST.MF
index 2f09407..625249b 100755
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/META-INF/MANIFEST.MF
+++ b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/META-INF/MANIFEST.MF
@@ -15,6 +15,7 @@
org.eclipse.papyrus.sirius.log;bundle-version="[0.7.0,1.0.0)",
org.eclipse.papyrus.sirius.uml.diagram.common;bundle-version="[0.7.0,1.0.0)",
org.eclipse.papyrus.uml.diagram.statemachine;bundle-version="[5.0.0,6.0.0)",
+ org.eclipse.papyrus.uml.domain.services;bundle-version="[0.17.0,1.0.0)",
org.eclipse.papyrus.uml.internationalization.utils;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.uml.tools.utils;bundle-version="[4.1.0,5.0.0)",
org.eclipse.sirius.common.acceleo.aql;bundle-version="[7.0.7,8.0.0)",
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/description/papyrus_statemachine.odesign b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/description/papyrus_statemachine.odesign
index b963880..1cca376 100755
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/description/papyrus_statemachine.odesign
+++ b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/description/papyrus_statemachine.odesign
@@ -41,23 +41,17 @@
</layoutOptions>
</layout>
<diagramInitialisation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:self">
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.oclIsTypeOf(uml::Model)">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="StateMachine" referenceName="packagedElement">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- </subModelOperations>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createSMD('StateMachine','packagedElement',containerView)"/>
</diagramInitialisation>
<defaultLayer name="StateMachine">
<nodeMappings name="SMD_Comment" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='Comment_body_EditionTool']" createElements="false" domainClass="uml::Comment">
- <style xsi:type="style:NoteDescription" labelSize="9" labelExpression="feature:body" labelAlignment="LEFT" sizeComputationExpression="9" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CommentColor']">
+ <style xsi:type="style:NoteDescription" labelSize="9" labelExpression="aql:self.renderLabel(diagram)" labelAlignment="LEFT" sizeComputationExpression="9" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CommentColor']">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</nodeMappings>
<nodeMappings name="SMD_Constraint" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='Constraint_specification_EditionTool']" createElements="false" domainClass="uml::Constraint">
- <style xsi:type="style:NoteDescription" labelSize="9" labelExpression="service:getConstraintLabel()" sizeComputationExpression="9" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='ConstraintColor']">
+ <style xsi:type="style:NoteDescription" labelSize="9" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="9" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='ConstraintColor']">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
@@ -65,10 +59,10 @@
<edgeMappings name="SMD_Transition" preconditionExpression="aql:self.oclIsTypeOf(uml::Transition)" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" semanticCandidatesExpression="service:transition_getSemanticCandidates()" semanticElements="aql:self" sourceMapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_FinalState'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']/@borderedNodeMappings[name='SMD_StateBorderedPseudoState']" targetMapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_FinalState'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']/@borderedNodeMappings[name='SMD_StateBorderedPseudoState']" targetFinderExpression="feature:target" sourceFinderExpression="feature:source" domainClass="uml::Transition" useDomainElement="true" reconnections="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectTransitionTarget%20'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectTransitionSource%20']">
<style>
<strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <beginLabelStyleDescription labelSize="9" showIcon="false" labelExpression="aql:self.getValueString(view)">
+ <beginLabelStyleDescription labelSize="9" showIcon="false" labelExpression="aql:self.renderEdgeSourceLabel(view.sourceNode.oclAsType(viewpoint::DSemanticDecorator).target)">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</beginLabelStyleDescription>
- <centerLabelStyleDescription labelSize="9" showIcon="false" labelExpression="feature:name">
+ <centerLabelStyleDescription labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</centerLabelStyleDescription>
</style>
@@ -76,7 +70,7 @@
<edgeMappings name="SMD_ContextLink" preconditionExpression="service:checkContainerViewContext(sourceView)" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" sourceMapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Constraint']" targetMapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_FinalState'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']/@borderedNodeMappings[name='SMD_StateBorderedPseudoState']" targetFinderExpression="aql:self.getContextParent()">
<style lineStyle="dash_dot" targetArrow="NoDecoration">
<strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <centerLabelStyleDescription labelSize="9" labelExpression="<<context>>">
+ <centerLabelStyleDescription labelSize="9" labelExpression="aql:self.renderLabel(diagram)">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</centerLabelStyleDescription>
</style>
@@ -84,7 +78,7 @@
<edgeMappings name="SMD_Link" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" sourceMapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Comment'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Constraint']" targetMapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']/@borderedNodeMappings[name='SMD_StateBorderedPseudoState'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_FinalState'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@edgeMappings[name='SMD_Transition'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Comment'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Constraint']" targetFinderExpression="aql:self.link_getTarget_SMD()" reconnections="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectLinkSource'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='ReconnectLinkTarget']">
<style lineStyle="dash" targetArrow="NoDecoration">
<strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <centerLabelStyleDescription labelSize="9">
+ <centerLabelStyleDescription labelSize="9" labelExpression="aql:self.renderLabel(diagram)">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</centerLabelStyleDescription>
</style>
@@ -92,83 +86,83 @@
<containerMappings name="SMD_StateMachine" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml::StateMachine" reusedBorderedNodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']/@borderedNodeMappings[name='SMD_StateBorderedPseudoState']" dropDescriptions="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticConstraintFromModelDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticCommentFromModelDrop']" reusedContainerMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" childrenPresentation="HorizontalStack">
<subContainerMappings name="SMD_RegionCompartment" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" semanticCandidatesExpression="service:getFeatures()" createElements="false" domainClass="uml::Region" dropDescriptions="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticRegionDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticStateDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticPseudostateDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticConstraintDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticCommentDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='GraphicalStateRepresentationDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='GraphicalPseudoStateRepresentationDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='GraphicalConstraintRepresentationDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='GraphicalCommentRepresentationDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticConstraintFromModelDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticCommentFromModelDrop']" reusedNodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Comment'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Constraint']" reusedContainerMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']">
<subNodeMappings name="SMD_Pseudostate" preconditionExpression="aql:not ((self.kind == uml::PseudostateKind::entryPoint) or ( self.kind == uml::PseudostateKind::exitPoint))" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" semanticCandidatesExpression="feature:subvertex" createElements="false" domainClass="uml::Pseudostate">
- <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" sizeComputationExpression="2" resizeKind="NSEW">
+ <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="2" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::initial)">
- <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" sizeComputationExpression="2" resizeKind="NSEW">
+ <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="2" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::junction)">
- <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" sizeComputationExpression="2" resizeKind="NSEW">
+ <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="2" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::deepHistory)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.uml.diagram.common/icons/symbols/deepHistory.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.uml.diagram.common/icons/symbols/deepHistory.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::shallowHistory)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.uml.diagram.common/icons/symbols/shallowHistory.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.uml.diagram.common/icons/symbols/shallowHistory.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::choice)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Choice.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Choice.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::terminate)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Terminate.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Terminate.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::join)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Join.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Join.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::fork)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Fork.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Fork.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
</subNodeMappings>
<subNodeMappings name="SMD_FinalState" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" semanticCandidatesExpression="feature:subvertex" createElements="false" domainClass="uml::FinalState">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/FinalState.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" resizeKind="NSEW" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/FinalState.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</subNodeMappings>
<subContainerMappings name="SMD_State" preconditionExpression="aql:not self.oclIsTypeOf(uml::FinalState)" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='NamedElement_name_EditionTool']" semanticCandidatesExpression="feature:subvertex" createElements="false" domainClass="uml::State" dropDescriptions="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticRegionDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticPseudostateDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='GraphicalBorderPseudoStateDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticConstraintFromModelDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticCommentFromModelDrop']" reusedContainerMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" childrenPresentation="VerticalStack">
<borderedNodeMappings name="SMD_StateBorderedPseudoState" label="SMD_StateBorderedPseudoState" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" semanticCandidatesExpression="feature:eContents" synchronizationLock="true" domainClass="uml::Pseudostate">
- <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" sizeComputationExpression="2" resizeKind="NSEW">
+ <style xsi:type="style:DotDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="2" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::entryPoint)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Entry.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Entry.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</conditionnalStyles>
<conditionnalStyles predicateExpression="aql: self.kind==(uml::PseudostateKind::exitPoint)">
- <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" sizeComputationExpression="-1" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Exit.svg">
+ <style xsi:type="style:WorkspaceImageDescription" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" sizeComputationExpression="-1" workspacePath="/org.eclipse.papyrus.sirius.uml.diagram.statemachine/icons/Exit.svg">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
@@ -176,28 +170,28 @@
</borderedNodeMappings>
<subContainerMappings name="SMD_StateBehaviorCompartment" preconditionExpression="aql:not self.doActivity->isEmpty() or not self.entry->isEmpty() or not self.exit->isEmpty()" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" semanticCandidatesExpression="var:self" synchronizationLock="true" domainClass="uml::State" dropDescriptions="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticConstraintFromModelDrop'] //@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticCommentFromModelDrop']" childrenPresentation="List">
<subNodeMappings name="SMD_Entry_Label" label="SMD_Entry_Label" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" semanticCandidatesExpression="feature:entry" synchronizationLock="true" domainClass="uml::Element">
- <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:'/entry '+ self.getTypeName() +' '+ self.getName()" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
+ <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</subNodeMappings>
<subNodeMappings name="SMD_DoActivity_Label" label="SMD_DoActivity_Label" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" semanticCandidatesExpression="feature:doActivity" synchronizationLock="true" domainClass="uml::Element">
- <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:'/do '+ self.getTypeName() +' '+ self.getName()" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
+ <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</subNodeMappings>
<subNodeMappings name="SMD_Exit_Label" label="SMD_Exit_Label" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" semanticCandidatesExpression="feature:exit" synchronizationLock="true" domainClass="uml::Element">
- <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:'/exit '+ self.getTypeName() +' '+ self.getName()" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
+ <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</style>
</subNodeMappings>
<subNodeMappings name="SMD_Defer_Label" label="SMD_Defer_Label" deletionDescription="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" semanticCandidatesExpression="feature:deferrableTrigger" synchronizationLock="true" domainClass="uml::Trigger">
- <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:'/defer '+ self.getTypeName() +' '+ self.getName()" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
+ <style xsi:type="style:BundledImageDescription" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -209,21 +203,21 @@
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
</style>
</subContainerMappings>
- <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" roundedCorner="true" foregroundColor="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CustomBlue']">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" roundedCorner="true" foregroundColor="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CustomBlue']">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
<labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.2"/>
</style>
</subContainerMappings>
- <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" borderLineStyle="dot" labelSize="9" showIcon="false" hideLabelByDefault="true" foregroundColor="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CustomBlue']">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" borderLineStyle="dot" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" hideLabelByDefault="true" foregroundColor="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CustomBlue']">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
<labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.2"/>
</style>
</subContainerMappings>
- <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" roundedCorner="true" foregroundColor="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CustomBlue']">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" labelExpression="aql:self.renderLabel(diagram)" roundedCorner="true" foregroundColor="//@userColorsPalettes[name='SMD_ColorPalette']/@entries[name='CustomBlue']">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
<backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
@@ -234,69 +228,41 @@
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:container.oclIsTypeOf(uml::StateMachine) or container.oclIsTypeOf(uml::State)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:container.getStateParent()">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Region" referenceName="region">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="service:containerView.getStateViewParent()"/>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createSMD('Region','region',containerView)">
+ <subModelOperations xsi:type="tool:Let" variableName="dropLocation" valueExpression="aql:self.getDropLocation(containerView)">
+ <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'T'">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('V')"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
+ <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="var:containerView" variableName="createdView2"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
+ </subModelOperations>
</subModelOperations>
</subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:container.oclIsTypeOf(uml::Region)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:container.getStateParent()">
- <subModelOperations xsi:type="tool:Let" variableName="dropLocation" valueExpression="aql:self.getDropLocation(containerView)">
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'T'">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('V')"/>
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Region" referenceName="region">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="var:containerView"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="var:containerView" variableName="createdView2"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
- </subModelOperations>
- </subModelOperations>
- </subModelOperations>
+ <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'R'">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('H')"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
+ <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView" variableName="createdView2"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
</subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'R'">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('H')"/>
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Region" referenceName="region">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView" variableName="createdView2"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
- </subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
+ </subModelOperations>
+ </subModelOperations>
+ <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'B'">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('V')"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
+ <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView" variableName="createdView2"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
</subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'B'">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('V')"/>
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Region" referenceName="region">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView" variableName="createdView2"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
- </subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'L'">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('H')"/>
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Region" referenceName="region">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView" variableName="createdView2"/>
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
- </subModelOperations>
- </subModelOperations>
- </subModelOperations>
+ </subModelOperations>
+ </subModelOperations>
+ <subModelOperations xsi:type="tool:If" conditionExpression="aql:dropLocation == 'L'">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.setChildRepresentation('H')"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container">
+ <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']" containerViewExpression="aql:containerView" variableName="createdView2"/>
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:containerView.moveChildrenView(createdView2)">
+ <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:applyLayoutData(containerView)"/>
</subModelOperations>
</subModelOperations>
</subModelOperations>
@@ -308,202 +274,98 @@
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="State" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createSMD('State','subvertex',containerView)"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create an Initial" name="CreateInitialTool" label="Initial" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_initial.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::initial"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'initial')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a FinalState" name="CreateFinalStateTool" label="FinalState" forceRefresh="true" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_FinalState']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/FinalState.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="FinalState" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createSMD('FinalState','subvertex',containerView)"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a ShallowHitory" name="CreateShallowHistoryTool" label="ShallowHistory" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_shallowHistory.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::shallowHistory"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'shallowHistory')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a DeepHistory" name="CreateDeepHistoryTool" label="DeepHistory" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_deepHistory.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::deepHistory"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'deepHistory')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a Fork" name="CreateForkTool" label="Fork" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_fork.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::fork"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'fork')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a Join" name="CreateJoinTool" label="Join" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_join.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::join"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'join')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a Choise" name="CreateChoiceTool" label="Choice" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_choice.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::choice"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'choice')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a Junction" name="CreateJunctionTool" label="Junction" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_junction.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::junction"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'junction')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create an EntryPoint" name="CreateEntryPointTool" label="EntryPoint" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']/@borderedNodeMappings[name='SMD_StateBorderedPseudoState']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_entryPoint.gif" extraMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:container.oclIsTypeOf(uml::State)">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="connectionPoint">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::entryPoint"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:container.oclIsTypeOf(uml::Region)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:getStateParent()">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="connectionPoint">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::entryPoint"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </subModelOperations>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','connectionPoint',containerView,'entryPoint')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create an ExitPoint" name="CreateExitPointTool" label="ExitPoint" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subContainerMappings[name='SMD_State']/@borderedNodeMappings[name='SMD_StateBorderedPseudoState']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_exitPoint.gif" extraMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:container.oclIsTypeOf(uml::State)">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="connectionPoint">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::exitPoint"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:container.oclIsTypeOf(uml::Region)">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="service:getStateParent()">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="connectionPoint">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::exitPoint"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="service:getStateViewParent()"/>
- </subModelOperations>
- </subModelOperations>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','connectionPoint',containerView,'exitPoint')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a Terminate" name="CreateTerminateTool" label="Terminate" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Pseudostate_terminate.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Pseudostate" referenceName="subvertex">
- <subModelOperations xsi:type="tool:SetValue" featureName="kind" valueExpression="aql:uml::PseudostateKind::terminate"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']/@subNodeMappings[name='SMD_Pseudostate']" containerViewExpression="aql:containerView"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createPseudoState('Pseudostate','subvertex',containerView,'terminate')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a Comment" name="CreateCommentTool" label="Comment" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Comment']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:container">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Comment" referenceName="ownedComment"/>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createSMD('Comment','ownedComment',containerView)"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:NodeCreationDescription" documentation="Create a Constraint" name="CreateConstraintTool" label="Constraint" nodeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@nodeMappings[name='SMD_Constraint']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif" extraMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@containerMappings[name='SMD_StateMachine']/@subContainerMappings[name='SMD_RegionCompartment']">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.getStateParent()">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Constraint" referenceName="ownedRule">
- <subModelOperations xsi:type="tool:ChangeContext" browseExpression="var:instance">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="uml::OpaqueExpression" referenceName="specification">
- <subModelOperations xsi:type="tool:SetValue" featureName="language" valueExpression="OCL"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="body" valueExpression="true"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="constraintSpec"/>
- </subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:container.createSMD('Constraint','ownedRule',containerView)"/>
</initialOperation>
</ownedTools>
</toolSections>
@@ -526,19 +388,7 @@
<sourceViewVariable name="sourceView"/>
<targetViewVariable name="targetView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:source">
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:source.oclIsTypeOf(uml::Comment)">
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:target.oclIsTypeOf(uml::Region)">
- <subModelOperations xsi:type="tool:SetValue" featureName="annotatedElement" valueExpression="aql:target.getStateParent()"/>
- </subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:not target.oclIsTypeOf(uml::Region)">
- <subModelOperations xsi:type="tool:SetValue" featureName="annotatedElement" valueExpression="aql:target"/>
- </subModelOperations>
- </subModelOperations>
- <subModelOperations xsi:type="tool:If" conditionExpression="aql:source.oclIsTypeOf(uml::Constraint)">
- <subModelOperations xsi:type="tool:SetValue" featureName="constrainedElement" valueExpression="aql:target"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:source.setLinkTarget(target, sourceView,'SMD_Link')"/>
</initialOperation>
</ownedTools>
<ownedTools xsi:type="tool_1:EdgeCreationDescription" documentation="Create a Transition" name="CreateTransitionTool" label="Transition" edgeMappings="//@ownedViewpoints[name='StateMachineDiagram']/@ownedRepresentations[name='StateMachineDiagram']/@defaultLayer/@edgeMappings[name='SMD_Transition']" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/Transition_local.gif">
@@ -547,13 +397,7 @@
<sourceViewVariable name="sourceView"/>
<targetViewVariable name="targetView"/>
<initialOperation>
- <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="service:self.getRegionParent()">
- <subModelOperations xsi:type="tool:CreateInstance" typeName="Transition" referenceName="transition">
- <subModelOperations xsi:type="tool:SetValue" featureName="name" valueExpression="service:computeDefaultName"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="source" valueExpression="aql:source"/>
- <subModelOperations xsi:type="tool:SetValue" featureName="target" valueExpression="aql:target"/>
- </subModelOperations>
- </firstModelOperations>
+ <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="aql:source.createDomainBasedEdgeSMD(target,'Transition','transition',sourceView,targetView)"/>
</initialOperation>
</ownedTools>
</toolSections>
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/src/org/eclipse/papyrus/sirius/uml/diagram/statemachine/services/StateMachineDiagramServices.java b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/src/org/eclipse/papyrus/sirius/uml/diagram/statemachine/services/StateMachineDiagramServices.java
index 25fbc95..28318be 100644
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/src/org/eclipse/papyrus/sirius/uml/diagram/statemachine/services/StateMachineDiagramServices.java
+++ b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine/src/org/eclipse/papyrus/sirius/uml/diagram/statemachine/services/StateMachineDiagramServices.java
@@ -17,7 +17,19 @@
import java.util.HashSet;
import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.sirius.uml.diagram.common.core.services.AbstractDiagramServices;
+import org.eclipse.papyrus.sirius.uml.diagram.common.services.CommonDiagramServices;
+import org.eclipse.papyrus.sirius.uml.diagram.common.services.DomainBasedEdgeServices;
+import org.eclipse.papyrus.sirius.uml.diagram.statemachine.StateMachineServices;
+import org.eclipse.papyrus.uml.domain.services.labels.ElementDefaultNameProvider;
+import org.eclipse.sirius.business.api.session.Session;
+import org.eclipse.sirius.business.api.session.SessionManager;
+import org.eclipse.sirius.diagram.DDiagramElement;
+import org.eclipse.sirius.diagram.DNodeContainer;
+import org.eclipse.sirius.diagram.DSemanticDiagram;
+import org.eclipse.sirius.diagram.description.ContainerMapping;
import org.eclipse.sirius.viewpoint.DSemanticDecorator;
import org.eclipse.uml2.uml.Comment;
import org.eclipse.uml2.uml.Constraint;
@@ -26,6 +38,7 @@
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Namespace;
import org.eclipse.uml2.uml.Pseudostate;
+import org.eclipse.uml2.uml.PseudostateKind;
import org.eclipse.uml2.uml.Region;
import org.eclipse.uml2.uml.State;
import org.eclipse.uml2.uml.StateMachine;
@@ -35,7 +48,7 @@
/**
*
*/
-public class StateMachineDiagramServices {
+public class StateMachineDiagramServices extends AbstractDiagramServices {
/**
* A singleton instance to be accessed by other java services.
*/
@@ -43,6 +56,110 @@
/**
* TODO : adapted from ClassDiagram
+ * Creates a new semantic element, initialize and create a view.
+ *
+ * @param parent
+ * the semantic parent
+ * @param type
+ * the type of element to create
+ * @param referenceName
+ * the name of the containment reference
+ * @return a new instance or <code>null</code> if the creation failed
+ */
+ public EObject createSMD(Element parent, String type, String referenceName, DSemanticDecorator targetView) {
+ CommonDiagramServices commonDiagramServices = new CommonDiagramServices();
+ if(type.equalsIgnoreCase("Constraint") || type.equalsIgnoreCase("Region")) {
+ StateMachineServices stateMachineServices = new StateMachineServices();
+ EObject stateParent = stateMachineServices.getStateParent(parent);
+ return commonDiagramServices.createElement((Element) stateParent, type, referenceName, targetView);
+ }
+ else {
+ return commonDiagramServices.createElement(parent, type, referenceName, targetView);
+ }
+ }
+
+ /**
+ * TODO : adapted from PapyrusWeb
+ * Creates a new semantic element, initialize, create a view and in addition set Pseudostate.kind
+ *
+ * @param parent
+ * the semantic parent
+ * @param type
+ * the type of element to create
+ * @param referenceName
+ * the name of the containment reference
+ * @return a new instance or <code>null</code> if the creation failed
+ */
+ public EObject createPseudoState(Element parent, String type, String referenceName, DSemanticDecorator targetView, String pseudoStateKind) {
+ StateMachineServices stateMachineServices = new StateMachineServices();
+ EObject stateParent = stateMachineServices.getStateParent(parent);
+ EObject newObject=null;
+ String containerViewExpression = "aql:containerView"; //$NON-NLS-1$
+ final Session session = SessionManager.INSTANCE.getSession(parent);
+ if(referenceName.equalsIgnoreCase("subvertex")) { //$NON-NLS-1$
+ newObject = this.createSMD(parent, type, referenceName, targetView);
+ if(parent instanceof Region) {
+ this.createView(newObject, targetView, session, containerViewExpression);
+ }
+ }
+ if(referenceName.equalsIgnoreCase("connectionPoint")) { //$NON-NLS-1$
+ if(parent instanceof State) {
+ newObject = this.createSMD(parent, type, referenceName, targetView);
+ this.createView(newObject, (DSemanticDecorator) targetView.eContainer(), session, containerViewExpression);
+ }
+ if(parent instanceof Region) {
+ newObject = this.createSMD((Element) stateParent, type, referenceName, targetView);
+ }
+ }
+
+ if (newObject instanceof Pseudostate pseudostate) {
+ pseudostate.setKind(PseudostateKind.get(pseudoStateKind));
+ this.resetDefaultName(pseudostate);
+ }
+ return newObject;
+ }
+
+
+ /**
+ * Service that reset the default name of an object.
+ *
+ * @param self
+ * the eObject to set
+ * @return self
+ */
+ public NamedElement resetDefaultName(NamedElement self) {
+ if (self == null) {
+ return self;
+ }
+ self.setName(null);
+ self.setName(new ElementDefaultNameProvider().getDefaultName(self, self.eContainer()));
+ return self;
+ }
+
+ /**
+ * Service used to create a domain base edge.
+ *
+ * @param source
+ * the semantic source
+ * @param target
+ * the semantic target
+ * @param type
+ * the new element type
+ * @param containementReferenceName
+ * the containment reference name
+ * @param sourceNode
+ * the source {@link DSemanticDecorator} of the new edge
+ * @param targetNode
+ * the target {@link DSemanticDecorator} of the new edge
+ * @return a new element or <code>null</code>
+ */
+ public EObject createDomainBasedEdgeSMD(EObject source, EObject target, String type, String containementReferenceName, DSemanticDecorator sourceView, DSemanticDecorator targetView) {
+ DomainBasedEdgeServices domainBasedEdgeServices = new DomainBasedEdgeServices();
+ return domainBasedEdgeServices.createDomainBasedEdge(source, target, type, containementReferenceName, sourceView, targetView);
+ }
+
+ /**
+ * TODO : adapted from ClassDiagram
* Get the target element of the Link.
*
* @param source
diff --git a/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/edges/test_create_sm_edges.aird b/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/edges/test_create_sm_edges.aird
index a19f541..d5afda7 100755
--- a/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/edges/test_create_sm_edges.aird
+++ b/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/edges/test_create_sm_edges.aird
@@ -19,7 +19,7 @@
</ownedRepresentationDescriptors>
</ownedViews>
</viewpoint:DAnalysis>
- <diagram:DSemanticDiagram uid="_90ay8EiXEeyrg4BfyzIMvw">
+ <diagram:DSemanticDiagram uid="_90ay8EiXEeyrg4BfyzIMvw" synchronized="false">
<eAnnotations xmi:type="description:DAnnotation" uid="_94IOQEiXEeyrg4BfyzIMvw" source="Papyrus-SiriusDiagram">
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_94IOQUiXEeyrg4BfyzIMvw" key="Papyrus-SiriusDiagram-ImplementationId" value="org.eclipse.papyrus.sirius.uml.diagram.statemachine"/>
</eAnnotations>
diff --git a/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/nodes/create_statemachine_node.aird b/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/nodes/create_statemachine_node.aird
index 0531d05..e2834ee 100755
--- a/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/nodes/create_statemachine_node.aird
+++ b/tests/junit/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.statemachine.tests/resources/nodes/create_statemachine_node.aird
@@ -23,7 +23,7 @@
</ownedRepresentationDescriptors>
</ownedViews>
</viewpoint:DAnalysis>
- <diagram:DSemanticDiagram uid="_sDnmcEh5EeyZTZejBwLctg">
+ <diagram:DSemanticDiagram uid="_sDnmcEh5EeyZTZejBwLctg" synchronized="false">
<eAnnotations xmi:type="description:DAnnotation" uid="_sE9qQEh5EeyZTZejBwLctg" source="Papyrus-SiriusDiagram">
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sE9qQUh5EeyZTZejBwLctg" key="Papyrus-SiriusDiagram-ImplementationId" value="org.eclipse.papyrus.sirius.uml.diagram.statemachine"/>
</eAnnotations>