From a32c45f4d1e2b90453ebbba195dedce3ed0de901 Mon Sep 17 00:00:00 2001 From: apvrille <ludovic.apvrille@eurecom.fr> Date: Fri, 23 Nov 2018 11:24:33 +0100 Subject: [PATCH] Update on zoom management --- .../ui/TGCScalableWithInternalComponent.java | 21 +++++++++---------- .../TGCScalableWithoutInternalComponent.java | 13 ++++++++++++ ttool/src/test/java/ui/TestTDiagramPanel.java | 8 +++---- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/main/java/ui/TGCScalableWithInternalComponent.java b/src/main/java/ui/TGCScalableWithInternalComponent.java index 63b823d6a3..ac9c0cce48 100644 --- a/src/main/java/ui/TGCScalableWithInternalComponent.java +++ b/src/main/java/ui/TGCScalableWithInternalComponent.java @@ -97,12 +97,7 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo maxX *= factor; maxY *= factor; - if (father == null) { - minX = tdp.getMinX(); - maxX = tdp.getMaxX(); - minY = tdp.getMinY(); - maxY = tdp.getMaxY(); - } + //TraceManager.addDev("x=" + x + " y=" + y + " width=" + width + " height=" + height); @@ -111,6 +106,11 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo if (father != null) { // Must rescale my zone... resizeWithFather(); + } else { + minX = (int)(tdp.getMinX()/tdp.getZoom()); + maxX = (int)(tdp.getMaxX()/tdp.getZoom()); + minY = (int)(tdp.getMinY()/tdp.getZoom()); + maxY = (int)(tdp.getMaxY()/tdp.getZoom()); } setMoveCd(x, y, true); @@ -122,7 +122,6 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo ((ScalableTGComponent)tgcomponent[i]).rescale(scaleFactor); } } - hasBeenResized(); } @@ -150,10 +149,10 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo dMaxHeight = dMaxHeight - maxHeight; if (father == null) { - minX = tdp.getMinX(); - maxX = tdp.getMaxX(); - minY = tdp.getMinY(); - maxY = tdp.getMaxY(); + minX = (int)(tdp.getMinX()/tdp.getZoom()); + maxX = (int)(tdp.getMaxX()/tdp.getZoom()); + minY = (int)(tdp.getMinY()/tdp.getZoom()); + maxY = (int)(tdp.getMaxY()/tdp.getZoom()); } rescaled = true; diff --git a/src/main/java/ui/TGCScalableWithoutInternalComponent.java b/src/main/java/ui/TGCScalableWithoutInternalComponent.java index e7233095e6..5d978910f5 100644 --- a/src/main/java/ui/TGCScalableWithoutInternalComponent.java +++ b/src/main/java/ui/TGCScalableWithoutInternalComponent.java @@ -100,6 +100,12 @@ public abstract class TGCScalableWithoutInternalComponent extends TGCWithoutInte if (father != null) { // Must rescale my zone... resizeWithFather(); + } else { + minX = (int)(tdp.getMinX()/tdp.getZoom()); + maxX = (int)(tdp.getMaxX()/tdp.getZoom()); + minY = (int)(tdp.getMinY()/tdp.getZoom()); + maxY = (int)(tdp.getMaxY()/tdp.getZoom()); + } setMoveCd(x, y, true); @@ -128,6 +134,13 @@ public abstract class TGCScalableWithoutInternalComponent extends TGCWithoutInte dMaxWidth = dMaxWidth - maxWidth; dMaxHeight = dMaxHeight - maxHeight; + if (father == null) { + minX = (int)(tdp.getMinX()/tdp.getZoom()); + maxX = (int)(tdp.getMaxX()/tdp.getZoom()); + minY = (int)(tdp.getMinY()/tdp.getZoom()); + maxY = (int)(tdp.getMaxY()/tdp.getZoom()); + } + rescaled = true; } } diff --git a/ttool/src/test/java/ui/TestTDiagramPanel.java b/ttool/src/test/java/ui/TestTDiagramPanel.java index 5da0d9c7dd..b6b3ce0942 100644 --- a/ttool/src/test/java/ui/TestTDiagramPanel.java +++ b/ttool/src/test/java/ui/TestTDiagramPanel.java @@ -89,7 +89,7 @@ public class TestTDiagramPanel extends AbstractUITest { /** * Issue #81 */ - /*@Test + @Test public void testMoveAtomicComponentAfterZoom() { diagramPanel.setZoom(3.0); @@ -100,10 +100,10 @@ public class TestTDiagramPanel extends AbstractUITest { diagramPanel.rightComponent(); checkResults(expectedPos, atomicComponent); - }*/ + } + - /* @Test public void testMoveCompositeComponentAfterZoom() { diagramPanel.setZoom(3.0); @@ -115,7 +115,7 @@ public class TestTDiagramPanel extends AbstractUITest { diagramPanel.rightComponent(); checkResults(expectedPos, compositeComponent); - } */ + } private void checkResults(final Point expectedPos, final TGComponent component) { assertTrue("X position is " + component.getX() + " instead of " + expectedPos.x + ".", component.getX() == expectedPos.x); -- GitLab