autofit mode if fit to screen was called

This commit is contained in:
hneemann 2016-07-31 11:19:30 +02:00
parent 0ac7c01c2e
commit d876e46e9f

View File

@ -24,10 +24,7 @@ import java.awt.*;
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent; import java.awt.event.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
@ -76,6 +73,7 @@ public class CircuitComponent extends JComponent {
private Observer manualChangeObserver; private Observer manualChangeObserver;
private Vector lastMousePos; private Vector lastMousePos;
private Sync modelSync; private Sync modelSync;
private boolean isManualScale;
/** /**
@ -158,9 +156,18 @@ public class CircuitComponent extends JComponent {
transform.translate(pos.x, pos.y); transform.translate(pos.x, pos.y);
transform.scale(f, f); transform.scale(f, f);
transform.translate(-pos.x, -pos.y); transform.translate(-pos.x, -pos.y);
isManualScale=true;
repaint(); repaint();
}); });
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent componentEvent) {
if (!isManualScale)
fitCircuit();
}
});
Cursor normalCursor = new Cursor(Cursor.DEFAULT_CURSOR); Cursor normalCursor = new Cursor(Cursor.DEFAULT_CURSOR);
moveCursor = new Cursor(Cursor.MOVE_CURSOR); moveCursor = new Cursor(Cursor.MOVE_CURSOR);
mouseNormal = new MouseControllerNormal(normalCursor); mouseNormal = new MouseControllerNormal(normalCursor);
@ -403,6 +410,7 @@ public class CircuitComponent extends JComponent {
} else } else
transform = new AffineTransform(); transform = new AffineTransform();
repaint(); repaint();
isManualScale=false;
} }
/** /**
@ -415,6 +423,7 @@ public class CircuitComponent extends JComponent {
transform.translate(dif.x, dif.y); transform.translate(dif.x, dif.y);
transform.scale(f, f); transform.scale(f, f);
transform.translate(-dif.x, -dif.y); transform.translate(-dif.x, -dif.y);
isManualScale=true;
repaint(); repaint();
} }
@ -504,6 +513,7 @@ public class CircuitComponent extends JComponent {
double s = transform.getScaleX(); double s = transform.getScaleX();
transform.translate(delta.x / s, delta.y / s); transform.translate(delta.x / s, delta.y / s);
pos = newPos; pos = newPos;
isManualScale=true;
repaint(); repaint();
} }
} }