Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2017-01-18 16:51:54 +0000
committerEd Willink2017-02-01 07:21:23 +0000
commite7e984d9c062fad58547751f17bfaa6ced1edcad (patch)
tree59436d0d171390c33e7cde4e495ab7e7550b8f3a
parent9330a22c0a1f88bbc5d2af45fa65151601a0c777 (diff)
downloadorg.eclipse.qvtd-e7e984d9c062fad58547751f17bfaa6ced1edcad.tar.gz
org.eclipse.qvtd-e7e984d9c062fad58547751f17bfaa6ced1edcad.tar.xz
org.eclipse.qvtd-e7e984d9c062fad58547751f17bfaa6ced1edcad.zip
[495621] UMLX editor useable for viewing
-rw-r--r--plugins/org.eclipse.qvtd.umlx.design/description/umlx.odesign224
-rw-r--r--plugins/org.eclipse.qvtd.umlx/src/org/eclipse/qvtd/umlx/utilities/UMLXServices.java (renamed from plugins/org.eclipse.qvtd.umlx.design/src/org/eclipse/qvtd/umlx/design/UMLXServices.java)191
2 files changed, 224 insertions, 191 deletions
diff --git a/plugins/org.eclipse.qvtd.umlx.design/description/umlx.odesign b/plugins/org.eclipse.qvtd.umlx.design/description/umlx.odesign
index 63ab45481..7cc7f2364 100644
--- a/plugins/org.eclipse.qvtd.umlx.design/description/umlx.odesign
+++ b/plugins/org.eclipse.qvtd.umlx.design/description/umlx.odesign
@@ -4,34 +4,6 @@
<ownedRepresentations xsi:type="description_1:DiagramDescription" name="UMLX Relation Diagram" titleExpression="service: umlxRelDiagramTitleExpression" domainClass="umlx.RelDiagram" rootExpression="service: umlxRelDiagramRootExpression">
<metamodel href="http://www.eclipse.org/qvt/2016/UMLX#/"/>
<defaultLayer name="Default">
- <nodeMappings name="RelDomainNode" semanticCandidatesExpression="service: umlxRelDiagramSemanticsCandidatesExpression" domainClass="umlx.RelDomainNode">
- <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="service: umlxDomainNodeLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXRelation.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
- </style>
- </nodeMappings>
- <nodeMappings name="RelInvocationNode" semanticCandidatesExpression="service: umlxRelDiagramSemanticsCandidatesExpression" domainClass="umlx.RelInvocationNode">
- <style xsi:type="style:LozengeNodeDescription" borderSizeComputationExpression="2" showIcon="false" labelExpression="service: umlxInvocationNodeLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UEvolution.gif" tooltipExpression="service: umlxTooltipExpression" sizeComputationExpression="" labelPosition="node" resizeKind="EAST_WEST" widthComputationExpression="5 + 2 * self.referredRelationNode.name.length()" heightComputationExpression="3">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
- </style>
- <conditionnalStyles predicateExpression="service: umlxInvocationIsThen">
- <style xsi:type="style:LozengeNodeDescription" borderSizeComputationExpression="2" borderLineStyle="dash" showIcon="false" labelExpression="service: umlxInvocationNodeLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UEvolution.gif" tooltipExpression="service: umlxTooltipExpression" sizeComputationExpression="" labelPosition="node" resizeKind="EAST_WEST" widthComputationExpression="5 + 2 * self.referredRelationNode.name.length()" heightComputationExpression="3">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='orange']"/>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
- </style>
- </conditionnalStyles>
- </nodeMappings>
- <nodeMappings name="RelPatternNode" labelDirectEdit="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editPatternNodeName']" semanticCandidatesExpression="service: umlxRelDiagramSemanticsCandidatesExpression" domainClass="umlx.RelPatternNode">
- <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" showIcon="false" labelExpression="service: umlxPatternNodeLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UClassVariable.gif" tooltipExpression="service: umlxTooltipExpression" sizeComputationExpression="20 + 8 * self.referredClass.name.length()" labelPosition="node" resizeKind="EAST_WEST">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
- </style>
- </nodeMappings>
<nodeMappings name="RelConstraintNode" semanticCandidatesExpression="service: umlxRelDiagramSemanticsCandidatesExpression" domainClass="umlx.RelConstraintNode">
<style xsi:type="style:SquareDescription" showIcon="false" labelExpression="feature:expression" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXConstraint.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="NSEW">
<borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -39,12 +11,15 @@
<color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
</style>
</nodeMappings>
- <edgeMappings name="RelPatternEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelPatternNode']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelPatternNode']" targetFinderExpression="aql:[self.target/]" sourceFinderExpression="aql:[self.owningSource/]" domainClass="umlx.RelPatternEdge" useDomainElement="true">
+ <edgeMappings name="RelPatternEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@containerMappings[name='RelDomainContainer']/@subContainerMappings[name='RelPatternNodeContainer']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@containerMappings[name='RelDomainContainer']/@subContainerMappings[name='RelPatternNodeContainer'] //@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelConstraintNode']" targetFinderExpression="feature:target" sourceFinderExpression="feature:source" domainClass="umlx.RelPatternEdge" useDomainElement="true">
<style sourceArrow="Diamond" sizeComputationExpression="2" endsCentering="Both">
<strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_chocolate']"/>
- <centerLabelStyleDescription>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/>
- </centerLabelStyleDescription>
+ <beginLabelStyleDescription showIcon="false" labelExpression="service: umlxPatternEdgeBeginLabel">
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </beginLabelStyleDescription>
+ <endLabelStyleDescription showIcon="false" labelExpression="service: umlxPatternEdgeEndLabel">
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </endLabelStyleDescription>
</style>
<conditionnalStyles predicateExpression="service: umlxPatternEdgeIsComposite">
<style sourceArrow="FillDiamond" sizeComputationExpression="2" endsCentering="Both">
@@ -69,32 +44,73 @@
</style>
</conditionnalStyles>
</edgeMappings>
- <edgeMappings name="RelDomainEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelDomainNode']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelPatternNode']" targetFinderExpression="aql:[self.rootPatternNodes/]">
- <style sourceArrow="OutputClosedArrow" targetArrow="InputClosedArrow" sizeComputationExpression="2" endsCentering="Both">
- <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
- <centerLabelStyleDescription>
+ <edgeMappings name="RelInvocationEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@containerMappings[name='RelInvocationContainer']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@containerMappings[name='RelDomainContainer']/@subContainerMappings[name='RelPatternNodeContainer']" targetFinderExpression="feature:invokingRelPatternNode" sourceFinderExpression="feature:owningRelInvocationNode" domainClass="umlx.RelInvocationEdge" useDomainElement="true">
+ <style sourceArrow="InputFillClosedArrow" targetArrow="InputFillClosedArrow" sizeComputationExpression="2" endsCentering="Both">
+ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
+ <endLabelStyleDescription showIcon="false" labelExpression="service: umlxInvocationEdgeEndLabel">
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- </centerLabelStyleDescription>
- </style>
- </edgeMappings>
- <edgeMappings name="RelInvocationEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelInvocationNode']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelPatternNode']" targetFinderExpression="aql:[self.ownedOutgoingEdges.target/]">
- <style targetArrow="NoDecoration" sizeComputationExpression="2" endsCentering="Both">
- <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_chocolate']"/>
- <centerLabelStyleDescription>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- </centerLabelStyleDescription>
+ </endLabelStyleDescription>
</style>
<conditionnalStyles predicateExpression="service: umlxInvocationIsThen">
- <style lineStyle="dash" sizeComputationExpression="2" endsCentering="Both">
- <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_chocolate']"/>
+ <style lineStyle="dash" sourceArrow="InputFillClosedArrow" targetArrow="NoDecoration" sizeComputationExpression="2" endsCentering="Both">
+ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
<centerLabelStyleDescription>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
</centerLabelStyleDescription>
</style>
</conditionnalStyles>
</edgeMappings>
+ <containerMappings name="RelDomainContainer" semanticCandidatesExpression="feature:ownedRelDomainNodes" domainClass="umlx.RelDomainNode">
+ <subContainerMappings name="RelPatternNodeContainer" semanticCandidatesExpression="feature:ownedRelPatternNodes" domainClass="umlx.RelPatternNode">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="2" showIcon="false" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UClassVariable.gif" tooltipExpression="service: umlxTooltipExpression" heightComputationExpression="3">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ <conditionnalStyles predicateExpression="service: umlxRelPatternNodeIsRoot">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="4" showIcon="false" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UClassVariable.gif" tooltipExpression="service: umlxTooltipExpression" heightComputationExpression="3">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ </conditionnalStyles>
+ <conditionnalStyles predicateExpression="service: umlxRelPatternNodeIsOptional">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="2" borderLineStyle="dash" showIcon="false" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UClassVariable.gif" tooltipExpression="service: umlxTooltipExpression" heightComputationExpression="3">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ </conditionnalStyles>
+ </subContainerMappings>
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="2" borderLineStyle="dot" showIcon="false" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXRelation.gif" tooltipExpression="service: umlxTooltipExpression">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.1"/>
+ </style>
+ </containerMappings>
+ <containerMappings name="RelInvocationContainer" semanticCandidatesExpression="feature:ownedRelInvocationNodes" domainClass="umlx.RelInvocationNode">
+ <style xsi:type="style:FlatContainerStyleDescription" arcWidth="50" arcHeight="50" borderSizeComputationExpression="2" showIcon="false" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UEvolution.gif" tooltipExpression="service: umlxTooltipExpression" roundedCorner="true" heightComputationExpression="3">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ <conditionnalStyles predicateExpression="service: umlxInvocationIsThen">
+ <style xsi:type="style:FlatContainerStyleDescription" arcWidth="40" arcHeight="40" borderSizeComputationExpression="2" borderLineStyle="dash" showIcon="false" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UEvolution.gif" tooltipExpression="service: umlxTooltipExpression" roundedCorner="true" heightComputationExpression="3">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ </conditionnalStyles>
+ </containerMappings>
<toolSections name="CreateNodesId" label="Nodes">
- <ownedTools xsi:type="tool:NodeCreationDescription" name="createInvocationNode" label="Invocation Node" nodeMappings="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelInvocationNode']" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXEvolution.gif">
+ <ownedTools xsi:type="tool:NodeCreationDescription" name="createInvocationNode" label="Invocation Node" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXEvolution.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
@@ -105,7 +121,7 @@
</firstModelOperations>
</initialOperation>
</ownedTools>
- <ownedTools xsi:type="tool:NodeCreationDescription" name="createPatternNode" label="Pattern Node" nodeMappings="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Relation%20Diagram']/@defaultLayer/@nodeMappings[name='RelPatternNode']" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXClassVariable.gif">
+ <ownedTools xsi:type="tool:NodeCreationDescription" name="createPatternNode" label="Pattern Node" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXClassVariable.gif">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
@@ -150,82 +166,54 @@
<ownedRepresentations xsi:type="description_1:DiagramDescription" name="UMLX Transformation Diagram" titleExpression="service: umlxTxDiagramTitleExpression" domainClass="umlx.TxDiagram" rootExpression="service: umlxTxDiagramRootExpression" enablePopupBars="true">
<metamodel href="http://www.eclipse.org/qvt/2016/UMLX#/"/>
<defaultLayer name="Default">
- <nodeMappings name="TxKeyNode" domainClass="umlx.TxKeyNode">
- <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" labelExpression="service: umlxKeyNodeLabel" iconPath="/org.eclipse.qvtd.xtext.qvtrelation.ui/icons/Key.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST" height="20">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
- </style>
- </nodeMappings>
- <nodeMappings name="TxPackageNode" domainClass="umlx.TxPackageNode">
- <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" labelExpression="aql:self.referredPackage.name" iconPath="/org.eclipse.emf.ecore.edit/icons/full/obj16/EPackage.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST" height="20">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <containerMappings name="TxKeyContainer" semanticCandidatesExpression="feature:ownedTxKeyNodes" domainClass="umlx.TxKeyNode" childrenPresentation="List">
+ <subNodeMappings name="TxPartNode" semanticCandidatesExpression="feature:ownedTxPartNodes" domainClass="umlx.TxPartNode">
+ <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" labelExpression="service: umlxLabel" iconPath="/org.eclipse.emf.ecore.edit/icons/full/obj16/EReference.gif" labelAlignment="LEFT" tooltipExpression="service: umlxTooltipExpression" sizeComputationExpression="0" labelPosition="node" resizeKind="EAST_WEST">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ </subNodeMappings>
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="2" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.xtext.qvtrelation.ui/icons/Key.gif" tooltipExpression="service: umlxTooltipExpression">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
- </style>
- </nodeMappings>
- <nodeMappings name="TxPartNode" domainClass="umlx.TxPartNode">
- <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" labelExpression="service: umlxPartNodeLabel" iconPath="/org.eclipse.emf.ecore.edit/icons/full/obj16/EReference.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST" height="20">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ </containerMappings>
+ <containerMappings name="TxTypedModelContainer" semanticCandidatesExpression="feature:ownedTxTypedModelNodes" domainClass="umlx.TxTypedModelNode" childrenPresentation="List">
+ <subNodeMappings name="TxPackageNode" semanticCandidatesExpression="feature:ownedTxPackageNodes" domainClass="umlx.TxPackageNode">
+ <style xsi:type="style:SquareDescription" labelExpression="service: umlxLabel" iconPath="/org.eclipse.emf.ecore.edit/icons/full/obj16/EPackage.gif" labelAlignment="LEFT" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ </style>
+ </subNodeMappings>
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="2" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.xtext.qvtbase.ui/icons/TypedModel.gif" tooltipExpression="service: umlxTooltipExpression">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
</style>
- </nodeMappings>
- <nodeMappings name="TxRelDiagram" domainClass="umlx.RelDiagram">
- <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" labelExpression="aql:self.name" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXRelation.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST" height="20">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ </containerMappings>
+ <containerMappings name="TxImportContainer" semanticCandidatesExpression="feature:ownedTxImportNodes" domainClass="umlx.TxImportNode">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="2" labelExpression="service:umlxLabel" iconPath="/org.eclipse.uml2.uml.edit/icons/full/obj16/PackageImport.gif" tooltipExpression="service: umlxTooltipExpression" heightComputationExpression="2">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
</style>
- </nodeMappings>
- <nodeMappings name="TxTransformationNode" semanticCandidatesExpression="service: umlxTxTransformationNodeCandidates" domainClass="umlx.TxTransformationNode">
- <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" labelExpression="aql:self.name" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXTransformation.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST" height="20">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
+ </containerMappings>
+ <containerMappings name="TxRelDiagramContainer" semanticCandidatesExpression="feature:ownedRelDiagrams" domainClass="umlx.RelDiagram">
+ <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="2" labelExpression="service:umlxLabel" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXRelation.gif" tooltipExpression="service: umlxTooltipExpression" heightComputationExpression="3">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
<labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
- </style>
- </nodeMappings>
- <nodeMappings name="TxTypedModelNode" domainClass="umlx.TxTypedModelNode">
- <style xsi:type="style:SquareDescription" borderSizeComputationExpression="2" labelExpression="aql:self.name" iconPath="/org.eclipse.qvtd.umlx.design/icons/UMLXTypedModel.gif" tooltipExpression="service: umlxTooltipExpression" labelPosition="node" resizeKind="EAST_WEST" height="20">
- <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_orange']"/>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
</style>
- </nodeMappings>
- <edgeMappings name="TxPackageEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxTypedModelNode']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxPackageNode']" targetFinderExpression="aql:[self.txPackageNodes/]">
- <style sourceArrow="Diamond" targetArrow="NoDecoration" sizeComputationExpression="2" endsCentering="Both">
- <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
- <centerLabelStyleDescription>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- </centerLabelStyleDescription>
- </style>
- </edgeMappings>
- <edgeMappings name="TxPartEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxKeyNode']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxPartNode']" targetFinderExpression="aql:[self.txPartNodes/]">
- <style sourceArrow="FillDiamond" sizeComputationExpression="2" endsCentering="Both">
- <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
- <centerLabelStyleDescription>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- </centerLabelStyleDescription>
- </style>
- </edgeMappings>
- <edgeMappings name="TxRelationEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxTransformationNode']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxRelDiagram']" targetFinderExpression="aql:[self.diagram.oclAsType(umlx::TxDiagram).ownedDiagrams/]">
- <style targetArrow="NoDecoration" sizeComputationExpression="2" endsCentering="Both">
- <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
- <centerLabelStyleDescription>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- </centerLabelStyleDescription>
- </style>
- </edgeMappings>
- <edgeMappings name="TxTypedModelEdge" sourceMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxTransformationNode']" targetMapping="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxTypedModelNode']" targetFinderExpression="aql:[self.txTypedModelNodes/]">
- <style sourceArrow="FillDiamond" targetArrow="NoDecoration" sizeComputationExpression="2" endsCentering="Both">
- <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
- <centerLabelStyleDescription>
- <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
- </centerLabelStyleDescription>
- </style>
- </edgeMappings>
+ </containerMappings>
<toolSections name="TxNodesId" label="Nodes">
- <ownedTools xsi:type="tool:NodeCreationDescription" name="createTxKeyNode" label="Key Node" nodeMappings="//@ownedViewpoints[name='umlx-viewpoint-id']/@ownedRepresentations[name='UMLX%20Transformation%20Diagram']/@defaultLayer/@nodeMappings[name='TxKeyNode']">
+ <ownedTools xsi:type="tool:NodeCreationDescription" name="createTxKeyNode" label="Key Node">
<variable name="container"/>
<viewVariable name="containerView"/>
<initialOperation>
@@ -237,6 +225,6 @@
</toolSections>
</defaultLayer>
</ownedRepresentations>
- <ownedJavaExtensions qualifiedClassName="org.eclipse.qvtd.umlx.design.UMLXServices"/>
+ <ownedJavaExtensions qualifiedClassName="org.eclipse.qvtd.umlx.utilities.UMLXServices"/>
</ownedViewpoints>
</description:Group>
diff --git a/plugins/org.eclipse.qvtd.umlx.design/src/org/eclipse/qvtd/umlx/design/UMLXServices.java b/plugins/org.eclipse.qvtd.umlx/src/org/eclipse/qvtd/umlx/utilities/UMLXServices.java
index 393d27bdc..ef1cc2ff4 100644
--- a/plugins/org.eclipse.qvtd.umlx.design/src/org/eclipse/qvtd/umlx/design/UMLXServices.java
+++ b/plugins/org.eclipse.qvtd.umlx/src/org/eclipse/qvtd/umlx/utilities/UMLXServices.java
@@ -8,11 +8,10 @@
* Contributors:
* E.D.Willink - Initial API and implementation
*******************************************************************************/
-package org.eclipse.qvtd.umlx.design;
+package org.eclipse.qvtd.umlx.utilities;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import org.eclipse.emf.ecore.EClassifier;
@@ -23,17 +22,20 @@ import org.eclipse.emf.ecore.ETypedElement;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
+import org.eclipse.ocl.pivot.utilities.LabelUtil;
import org.eclipse.qvtd.umlx.RelDiagram;
import org.eclipse.qvtd.umlx.RelDomainNode;
import org.eclipse.qvtd.umlx.RelInvocationEdge;
import org.eclipse.qvtd.umlx.RelInvocationNode;
+import org.eclipse.qvtd.umlx.RelPatternClassNode;
import org.eclipse.qvtd.umlx.RelPatternEdge;
import org.eclipse.qvtd.umlx.RelPatternNode;
import org.eclipse.qvtd.umlx.TxDiagram;
+import org.eclipse.qvtd.umlx.TxImportNode;
import org.eclipse.qvtd.umlx.TxKeyNode;
+import org.eclipse.qvtd.umlx.TxPackageNode;
import org.eclipse.qvtd.umlx.TxPartNode;
import org.eclipse.qvtd.umlx.TxTypedModelNode;
-import org.eclipse.qvtd.umlx.UMLXNode;
/**
* Class owning methods used for service: umlx. The service methods
@@ -70,33 +72,10 @@ public class UMLXServices
}
}
- /**
- * Return the label of a DomainNode.
- */
- public @NonNull String umlxDomainNodeLabel(EObject context) {
- if (context instanceof RelDomainNode) {
- TxTypedModelNode txTypedModelNode = ((RelDomainNode)context).getReferredTypedModelNode();
- if (txTypedModelNode != null) {
- return String.valueOf(txTypedModelNode.getName());
- }
- }
- return "«unknown»";
- }
-
- /**
- * Return the label of an InvocationNode.
- */
- public @NonNull String umlxInvocationNodeLabel(EObject context) {
- if (context instanceof RelInvocationNode) {
- RelDiagram relDiagram = ((RelInvocationNode)context).getReferredRelDiagram();
- if (relDiagram != null) {
- return String.valueOf(relDiagram.getName());
- }
- }
- return "«unknown»";
+ public int umlxBorderSize(EObject context) {
+ return 4;
}
-
/**
* Return true if this part of a UMLX:then (QVTr:where) clause
*/
@@ -105,35 +84,72 @@ public class UMLXServices
return ((RelInvocationNode)context).isIsThen();
}
if (context instanceof RelInvocationEdge) {
- UMLXNode owningSource = ((RelInvocationEdge)context).getOwningSource();
- return ((RelInvocationNode)owningSource).isIsThen();
+ RelInvocationNode owningSource = ((RelInvocationEdge)context).getOwningRelInvocationNode();
+ return owningSource.isIsThen();
}
return false;
}
+
/**
* Return the label of a KeyNode.
*/
- public @NonNull String umlxKeyNodeLabel(EObject context) {
- if (context instanceof TxKeyNode) {
+ public @NonNull String umlxLabel(EObject context) {
+ if (context instanceof RelDiagram) {
+ RelDiagram relDiagram = (RelDiagram)context;
+ if (((RelDiagram)context).isIsTop()) {
+ return "«top»\n" + String.valueOf(relDiagram.getName());
+ }
+ else {
+ return String.valueOf(relDiagram.getName());
+ }
+ }
+ else if (context instanceof RelDomainNode) {
+ TxTypedModelNode txTypedModelNode = ((RelDomainNode)context).getReferredTxTypedModelNode();
+ if (txTypedModelNode != null) {
+ return String.valueOf(txTypedModelNode.getName());
+ }
+ else {
+ return "«primitive»";
+ }
+ }
+ else if (context instanceof RelInvocationNode) {
+ RelDiagram relDiagram = ((RelInvocationNode)context).getReferredRelDiagram();
+ if (relDiagram != null) {
+ return String.valueOf(relDiagram.getName());
+ }
+ }
+ else if (context instanceof RelPatternClassNode) {
+ StringBuilder s = new StringBuilder();
+ s.append(String.valueOf(((RelPatternClassNode)context).getName()));
+ s.append(" : ");
+ EClassifier eClassifier = ((RelPatternClassNode)context).getReferredClass();
+ if (eClassifier != null) {
+ s.append(eClassifier.eIsProxy() ? EcoreUtil.getURI(eClassifier) : String.valueOf(eClassifier.getName()));
+ }
+ return s.toString();
+ }
+ else if (context instanceof TxImportNode) {
+ return String.valueOf(((TxImportNode)context).getName());
+ }
+ else if (context instanceof TxKeyNode) {
EClassifier eClassifier = ((TxKeyNode)context).getReferredClass();
if (eClassifier != null) {
return String.valueOf(eClassifier.getName());
}
}
- return "«unknown»";
- }
-
- /**
- * Return the label of a PartNode.
- */
- public @NonNull String umlxPartNodeLabel(EObject context) {
- if (context instanceof TxPartNode) {
+ else if (context instanceof TxPackageNode) {
+ return LabelUtil.QUALIFIED_NAME_REGISTRY.labelFor(((TxPackageNode)context).getReferredPackage());
+ }
+ else if (context instanceof TxPartNode) {
EStructuralFeature eStructuralFeature = ((TxPartNode)context).getReferredProperty();
if (eStructuralFeature != null) {
return String.valueOf(eStructuralFeature.getName());
}
}
- return "«unknown»";
+ else if (context instanceof TxTypedModelNode) {
+ return String.valueOf(((TxTypedModelNode)context).getName());
+ }
+ return "«umlxLabel - " + context.getClass().getName() + " - " + context.eClass().getName() + "»";
}
/**
@@ -149,12 +165,12 @@ public class UMLXServices
}
StringBuilder s = new StringBuilder();
s.append(String.valueOf(eOpposite.getName()));
- s.append("\n");
+ s.append(" ");
appendMultiplicity(s, eOpposite);
return s.toString();
}
}
- return "«unknown»";
+ return "";
}
/**
@@ -166,12 +182,25 @@ public class UMLXServices
if (eStructuralFeature != null) {
StringBuilder s = new StringBuilder();
s.append(String.valueOf(eStructuralFeature.getName()));
- s.append("\n");
+ s.append(" ");
appendMultiplicity(s, eStructuralFeature);
return s.toString();
}
}
- return "«unknown»";
+ return "";
+ }
+
+ /**
+ * Return the label at the target end of an InvocationEdge.
+ */
+ public @NonNull String umlxInvocationEdgeEndLabel(EObject context) {
+ if (context instanceof RelInvocationEdge) {
+ RelPatternClassNode relPatternNode = ((RelInvocationEdge)context).getReferredRelPatternNode();
+ if (relPatternNode != null) {
+ return String.valueOf(relPatternNode.getName());
+ }
+ }
+ return "";
}
/**
@@ -200,38 +229,24 @@ public class UMLXServices
return false;
}
- /**
- * Return the label of a PatternNode.
- */
- public @NonNull String umlxPatternNodeLabel(EObject context) {
- if (context instanceof RelPatternNode) {
- StringBuilder s = new StringBuilder();
- s.append(String.valueOf(((RelPatternNode)context).getName()));
- s.append("\n");
- EClassifier eClassifier = ((RelPatternNode)context).getReferredClass();
- if (eClassifier != null) {
- s.append(eClassifier.eIsProxy() ? EcoreUtil.getURI(eClassifier) : String.valueOf(eClassifier.getName()));
- }
- return s.toString();
- }
- return "«unknown»";
- }
-
- public @NonNull EObject umlxRelDiagramRootExpression(EObject context) {
+ /* public @NonNull EObject umlxRelDiagramRootExpression(EObject context) {
if (context instanceof RelDiagram) {
// return "new " + ((TxDiagram)context).getName() + " TxDiagram";
}
return context;
- }
+ } */
- public @NonNull Collection<EObject> umlxRelDiagramSelectExpression(EObject context) {
+ /* public @NonNull Collection<EObject> umlxRelDiagramSelectExpression(EObject context) {
if (context instanceof RelDiagram) {
@SuppressWarnings("unchecked")
- Collection<EObject> castResult = (Collection<EObject>)(Object)((RelDiagram)context).getOwnedNodes();
- return castResult;
+ RelDiagram relDiagram = (RelDiagram)context;
+ List<EObject> result = new ArrayList<>();
+ result.addAll(relDiagram.getOwnedRelDomainNodes());
+ result.addAll(relDiagram.getOwnedRelInvocationNodes());
+ return result;
}
return Collections.emptyList();
- }
+ } */
public @NonNull String umlxRelDiagramTitleExpression(EObject context) {
if (context instanceof RelDiagram) {
@@ -243,7 +258,9 @@ public class UMLXServices
public @NonNull Collection<EObject> umlxRelDiagramSemanticsCandidatesExpression(EObject context) {
List<EObject> candidates = new ArrayList<>();
if (context instanceof RelDiagram) {
- candidates.addAll(((RelDiagram)context).getOwnedNodes());
+ RelDiagram relDiagram = (RelDiagram)context;
+ candidates.addAll(relDiagram.getOwnedRelDomainNodes());
+ candidates.addAll(relDiagram.getOwnedRelInvocationNodes());
}
else {
candidates.add(context);
@@ -251,16 +268,44 @@ public class UMLXServices
return candidates;
}
+ /**
+ * Return true if this is not a required pattern node
+ */
+ public boolean umlxRelPatternNodeIsOptional(EObject context) {
+ if (context instanceof RelPatternClassNode) {
+ return !((RelPatternClassNode)context).isIsRequired();
+ }
+ return false;
+ }
+
+ /**
+ * Return true if this is a root of a pattern
+ */
+ public boolean umlxRelPatternNodeIsRoot(EObject context) {
+ if (context instanceof RelPatternNode) {
+ return ((RelPatternNode)context).isIsRoot();
+ }
+ return false;
+ }
+
+ public int umlxSize(EObject context) {
+ return 9;
+ }
+
+ public int umlxWidth(EObject context) {
+ return 7;
+ }
+
public @NonNull String umlxTooltipExpression(EObject context) {
return "Tooltip for " + context.eClass().getName();
}
- public @NonNull EObject umlxTxDiagramRootExpression(EObject context) {
+ /* public @NonNull EObject umlxTxDiagramRootExpression(EObject context) {
if (context instanceof TxDiagram) {
// return "new " + ((TxDiagram)context).getName() + " TxDiagram";
}
return context;
- }
+ } */
public @NonNull String umlxTxDiagramTitleExpression(EObject context) {
if (context instanceof TxDiagram) {
@@ -272,8 +317,8 @@ public class UMLXServices
public @NonNull Collection<@NonNull EObject> umlxTxTransformationNodeCandidates(EObject context) {
List<@NonNull EObject> candidates = new ArrayList<@NonNull EObject>();
if (context instanceof TxDiagram) {
- candidates.addAll(ClassUtil.nullFree(((TxDiagram)context).getTxKeyNodes()));
- candidates.addAll(ClassUtil.nullFree(((TxDiagram)context).getTxTypedModelNodes()));
+ candidates.addAll(ClassUtil.nullFree(((TxDiagram)context).getOwnedTxKeyNodes()));
+ candidates.addAll(ClassUtil.nullFree(((TxDiagram)context).getOwnedTxTypedModelNodes()));
}
return candidates;
}

Back to the top