diff options
author | Ed Willink | 2017-01-18 16:51:54 +0000 |
---|---|---|
committer | Ed Willink | 2017-02-01 07:21:23 +0000 |
commit | e7e984d9c062fad58547751f17bfaa6ced1edcad (patch) | |
tree | 59436d0d171390c33e7cde4e495ab7e7550b8f3a | |
parent | 9330a22c0a1f88bbc5d2af45fa65151601a0c777 (diff) | |
download | org.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.odesign | 224 | ||||
-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; } |