Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2016-12-05 13:27:53 +0000
committerLaurent Redor2016-12-08 17:02:34 +0000
commit41fbe2a35b1ccb78cfcafc4c2d6e6fdbcfdea28c (patch)
tree3e0408c0f7b17906b34d3902959dacf1cb927b82
parent4fd1839a6a6a2d3dac43f980601b2b3cda3d82ce (diff)
downloadorg.eclipse.sirius-41fbe2a35b1ccb78cfcafc4c2d6e6fdbcfdea28c.tar.gz
org.eclipse.sirius-41fbe2a35b1ccb78cfcafc4c2d6e6fdbcfdea28c.tar.xz
org.eclipse.sirius-41fbe2a35b1ccb78cfcafc4c2d6e6fdbcfdea28c.zip
[508936] Fix inversion of straighten actions problem
Sometimes, the label does not correspond to what the action does (left instead of right and conversely, top instead of bottom and conversely). This commit also adds one test corresponding to this unhandled cases. Bug: 508936 Cherry-picked-from: 508676 Change-Id: Iccbc71daa641a5174c07da2a5af9f454d81e4868 Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/StraightenToCommand.java4
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.aird67
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.migrationmodeler3
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/layout/StraightenToTest.java12
4 files changed, 84 insertions, 2 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/StraightenToCommand.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/StraightenToCommand.java
index 6aef293119..4ecff4791a 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/StraightenToCommand.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/StraightenToCommand.java
@@ -366,7 +366,7 @@ public class StraightenToCommand extends AbstractTransactionalCommand {
Point sourcePoint;
Point targetPoint;
if (isSourceABorderNode) {
- sourcePoint = ((IBorderItemEditPart) edgeEditPart.getSource()).getFigure().getBounds().getCenter();
+ sourcePoint = GraphicalHelper.getAbsoluteBoundsIn100Percent(sourceEditPart).getCenter();
} else if (edgeEditPart.getFigure() instanceof ViewEdgeFigure) {
PointList pointList = ((ViewEdgeFigure) edgeEditPart.getFigure()).getPoints().getCopy();
sourcePoint = pointList.getFirstPoint();
@@ -374,7 +374,7 @@ public class StraightenToCommand extends AbstractTransactionalCommand {
sourcePoint = new Point();
}
if (isTargetABorderNode) {
- targetPoint = ((IBorderItemEditPart) edgeEditPart.getTarget()).getFigure().getBounds().getCenter();
+ targetPoint = GraphicalHelper.getAbsoluteBoundsIn100Percent(targetEditPart).getCenter();
} else if (edgeEditPart.getFigure() instanceof ViewEdgeFigure) {
PointList pointList = ((ViewEdgeFigure) edgeEditPart.getFigure()).getPoints().getCopy();
targetPoint = pointList.getLastPoint();
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.aird b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.aird
index bef195b6ab..02ebb41b44 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.aird
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.aird
@@ -278,6 +278,17 @@
<styles xmi:type="notation:ShapeStyle" xmi:id="_jRWxEZdsEea4n-Vlp2x2tg" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_jRWxEpdsEea4n-Vlp2x2tg" x="113" y="50" width="10" height="10"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="_4N1TELrvEeaZF_rIOd1oKg" type="3012" element="_4NLy0LrvEeaZF_rIOd1oKg">
+ <children xmi:type="notation:Node" xmi:id="_4N6LkLrvEeaZF_rIOd1oKg" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4N6LkbrvEeaZF_rIOd1oKg" x="-27" y="-17"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4N_EELrvEeaZF_rIOd1oKg" type="3003" element="_4NWK4LrvEeaZF_rIOd1oKg">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4N_EEbrvEeaZF_rIOd1oKg" fontName="Segoe UI"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4N_EErrvEeaZF_rIOd1oKg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4N1TEbrvEeaZF_rIOd1oKg" fontName="Segoe UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4N1TErrvEeaZF_rIOd1oKg" x="113" y="20" width="10" height="10"/>
+ </children>
<styles xmi:type="notation:ShapeStyle" xmi:id="__NsVkJdrEea4n-Vlp2x2tg" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="__NsVkZdrEea4n-Vlp2x2tg" x="15" y="239" width="123" height="233"/>
</children>
@@ -335,6 +346,17 @@
<styles xmi:type="notation:ShapeStyle" xmi:id="_0I1lMZdkEeaGpozlB8know" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_0I1lMpdkEeaGpozlB8know" x="-2" y="35" width="10" height="10"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="_b2X40LrwEeaZF_rIOd1oKg" type="3012" element="_b2MSoLrwEeaZF_rIOd1oKg">
+ <children xmi:type="notation:Node" xmi:id="_b2Yf4LrwEeaZF_rIOd1oKg" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b2Yf4brwEeaZF_rIOd1oKg" x="-21" y="-17"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b2ZG8LrwEeaZF_rIOd1oKg" type="3003" element="_b2MSobrwEeaZF_rIOd1oKg">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_b2ZG8brwEeaZF_rIOd1oKg" fontName="Segoe UI"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2ZG8rrwEeaZF_rIOd1oKg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_b2X40brwEeaZF_rIOd1oKg" fontName="Segoe UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2X40rrwEeaZF_rIOd1oKg" x="-2" y="225" width="10" height="10"/>
+ </children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_6UjWAZdjEeaGpozlB8know" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_6UjWApdjEeaGpozlB8know" x="1130" y="85" width="213" height="498"/>
</children>
@@ -700,6 +722,22 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T38sNpnfEea7-_ACbuDyjA" id="(1.0,0.6)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T38sN5nfEea7-_ACbuDyjA" id="(0.9405405405405406,0.0)"/>
</edges>
+ <edges xmi:type="notation:Edge" xmi:id="_b2ZuALrwEeaZF_rIOd1oKg" type="4001" element="_b2TAULrwEeaZF_rIOd1oKg" source="_4N1TELrvEeaZF_rIOd1oKg" target="_b2X40LrwEeaZF_rIOd1oKg">
+ <children xmi:type="notation:Node" xmi:id="_b2ZuBLrwEeaZF_rIOd1oKg" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2ZuBbrwEeaZF_rIOd1oKg" x="8" y="-25"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b2ZuBrrwEeaZF_rIOd1oKg" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2ZuB7rwEeaZF_rIOd1oKg" x="12" y="-3"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b2ZuCLrwEeaZF_rIOd1oKg" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2ZuCbrwEeaZF_rIOd1oKg" x="12" y="-1"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_b2ZuAbrwEeaZF_rIOd1oKg"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_b2ZuArrwEeaZF_rIOd1oKg" fontName="Segoe UI" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b2ZuA7rwEeaZF_rIOd1oKg" points="[5, -3, -80, 37]$[80, -38, -5, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b2aVELrwEeaZF_rIOd1oKg" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b2aVEbrwEeaZF_rIOd1oKg" id="(0.5,0.5)"/>
+ </edges>
</data>
</ownedAnnotationEntries>
<ownedDiagramElements xmi:type="diagram:DNode" xmi:id="_Y4c3tG9YEeaEf_hH_tlPzw" name="node1" incomingEdges="_Y4c33W9YEeaEf_hH_tlPzw" width="3" height="3" resizeKind="NSEW">
@@ -1090,6 +1128,14 @@
</ownedStyle>
<actualMapping xmi:type="description_1:NodeMapping" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@containerMappings[name='container']/@borderedNodeMappings[name='bordered']"/>
</ownedBorderedNodes>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_4NLy0LrvEeaZF_rIOd1oKg" name="b_c8_1_2" outgoingEdges="_b2TAULrwEeaZF_rIOd1oKg" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="migrationmodeler:Bordered" href="straightenTo.migrationmodeler#//@representations.0/@containers.7/@elements.1/@elements.1"/>
+ <semanticElements xmi:type="migrationmodeler:Bordered" href="straightenTo.migrationmodeler#//@representations.0/@containers.7/@elements.1/@elements.1"/>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_4NWK4LrvEeaZF_rIOd1oKg" color="253,206,137">
+ <description xmi:type="style:SquareDescription" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@containerMappings[name='container']/@borderedNodeMappings[name='bordered']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@containerMappings[name='container']/@borderedNodeMappings[name='bordered']"/>
+ </ownedBorderedNodes>
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
@@ -1113,6 +1159,17 @@
</ownedStyle>
<actualMapping xmi:type="description_1:NodeMapping" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@containerMappings[name='container']/@borderedNodeMappings[name='bordered']"/>
</ownedBorderedNodes>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_b2MSoLrwEeaZF_rIOd1oKg" name="b_c9_2" incomingEdges="_b2TAULrwEeaZF_rIOd1oKg" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="migrationmodeler:Bordered" href="straightenTo.migrationmodeler#//@representations.0/@containers.8/@elements.3"/>
+ <semanticElements xmi:type="migrationmodeler:Bordered" href="straightenTo.migrationmodeler#//@representations.0/@containers.8/@elements.3"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_b2MSobrwEeaZF_rIOd1oKg" color="253,206,137">
+ <description xmi:type="style:SquareDescription" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@containerMappings[name='container']/@borderedNodeMappings[name='bordered']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@containerMappings[name='container']/@borderedNodeMappings[name='bordered']"/>
+ </ownedBorderedNodes>
<ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_6UY98ZdjEeaGpozlB8know" borderSize="1" borderSizeComputationExpression="1" foregroundColor="204,242,166">
<description xmi:type="style:FlatContainerStyleDescription" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@containerMappings[name='container']/@style"/>
</ownedStyle>
@@ -1251,6 +1308,16 @@
</ownedStyle>
<actualMapping xmi:type="description_1:EdgeMapping" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@edgeMappings[name='edge']"/>
</ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_b2TAULrwEeaZF_rIOd1oKg" name="edge21" sourceNode="_4NLy0LrvEeaZF_rIOd1oKg" targetNode="_b2MSoLrwEeaZF_rIOd1oKg">
+ <target xmi:type="migrationmodeler:Edge" href="straightenTo.migrationmodeler#//@representations.0/@edges.20"/>
+ <semanticElements xmi:type="migrationmodeler:Edge" href="straightenTo.migrationmodeler#//@representations.0/@edges.20"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_b2TAUbrwEeaZF_rIOd1oKg" centered="Both" strokeColor="39,76,114">
+ <customFeatures>centered</customFeatures>
+ <description xmi:type="style:EdgeStyleDescription" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@edgeMappings[name='edge']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_b2TAUrrwEeaZF_rIOd1oKg"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']/@defaultLayer/@edgeMappings[name='edge']"/>
+ </ownedDiagramElements>
<description xmi:type="description_1:DiagramDescription" href="useCase.odesign#//@ownedViewpoints[name='resizing']/@ownedRepresentations[name='useCase']"/>
<activatedFilters xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.polarsys.kitalpha.ad.integration.sirius/description/ad.odesign#//@ownedViewpoints[name='ad']/@ownedRepresentations[name='AD%20diagram']/@filters[name='ModelExtensionFilter']"/>
<filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_Y4c39W9YEeaEf_hH_tlPzw"/>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.migrationmodeler b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.migrationmodeler
index 72547acddf..7d8deb3e22 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.migrationmodeler
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/straightenTo/straightenTo.migrationmodeler
@@ -27,6 +27,7 @@
<elements xsi:type="migrationmodeler:Node" id="node_c8_1"/>
<elements xsi:type="migrationmodeler:Container" id="container_c8_1">
<elements xsi:type="migrationmodeler:Bordered" id="b_c8_1_1"/>
+ <elements xsi:type="migrationmodeler:Bordered" id="b_c8_1_2"/>
</elements>
</containers>
<containers id="container9">
@@ -35,6 +36,7 @@
<elements xsi:type="migrationmodeler:Container" id="container_c9_1">
<elements xsi:type="migrationmodeler:Bordered" id="b_c9_1_1"/>
</elements>
+ <elements xsi:type="migrationmodeler:Bordered" id="b_c9_2"/>
</containers>
<containers id="container10">
<elements xsi:type="migrationmodeler:Node" id="node_c10_1"/>
@@ -66,5 +68,6 @@
<edges id="edge18" source="//@representations.0/@containers.9/@elements.1" target="//@representations.0/@nodes.5"/>
<edges id="edge19" source="//@representations.0/@containers.9/@elements.1" target="//@representations.0/@containers.9/@elements.0"/>
<edges id="edge20" source="//@representations.0/@containers.9/@elements.1" target="//@representations.0/@containers.9/@elements.0"/>
+ <edges id="edge21" source="//@representations.0/@containers.7/@elements.1/@elements.1" target="//@representations.0/@containers.8/@elements.3"/>
</representations>
</migrationmodeler:TestCase>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/layout/StraightenToTest.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/layout/StraightenToTest.java
index 092b56b961..1467e09f41 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/layout/StraightenToTest.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/layout/StraightenToTest.java
@@ -152,6 +152,18 @@ public class StraightenToTest extends AbstractSiriusSwtBotGefTestCase {
/**
* <UL>
+ * <LI>Straighten oblique edge21 to Top: Expected KO</LI>
+ * <LI>Straighten oblique edge21 to Bottom: Expected OK</LI>
+ * </UL>
+ */
+ public void testObliqueEdgeTopAndBottomBetweenBorderNodeNotAsSameLevel() {
+ // {top,bottom,left,right}
+ boolean[] availableDirections = { false, true, false, false };
+ checkEdgeActions(availableDirections, "edge21");
+ }
+
+ /**
+ * <UL>
* <LI>Straighten rectilinear edge14 to Top: Expected OK</LI>
* <LI>Straighten rectilinear edge14 to Bottom: Expected: menu disabled (out
* of bounds)</LI>

Back to the top