diff --git a/src/main/java/ui/TGCScalableWithInternalComponent.java b/src/main/java/ui/TGCScalableWithInternalComponent.java index 63b823d6a377e288916f51402533a59b9f0489da..ac9c0cce48b8d751d5648d195f87250baaf3ea50 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 e7233095e6053972fd36e9698953524ed3ef3f39..5d978910f5d51cb9449b539a1f3b51ae5144427b 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 5da0d9c7ddb87e5b7326a5ffc6463b40a6961c2d..b6b3ce0942e9dd73b4e1f17855c07bebcc244fe5 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);