mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-27 06:51:37 -04:00
Fixed a bug which occurs if ESC is pressed while simulation is running.
This commit is contained in:
parent
204f80aebd
commit
66d9813c7c
@ -375,10 +375,20 @@ public class VisualElement implements Drawable, Moveable, AttributeListener {
|
||||
getElementAttributes().set(Keys.ROTATE, new Rotation(rotate));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the orientation of the element.
|
||||
*
|
||||
* @param rotation rotation
|
||||
*/
|
||||
public void setRotation(int rotation) {
|
||||
getElementAttributes().set(Keys.ROTATE, new Rotation(rotation));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if one can interact with this element
|
||||
*/
|
||||
public boolean isInteractable() {
|
||||
return interactor != null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -157,14 +157,10 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
Action escapeAction = new AbstractAction() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (activeMouseController != mouseNormal) {
|
||||
mouseNormal.activate();
|
||||
removeHighLighted();
|
||||
}
|
||||
activeMouseController.escapePressed();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
AbstractAction programAction = new AbstractAction(Lang.get("menu_programDiode")) {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
@ -706,6 +702,9 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
|
||||
public void rotate() {
|
||||
}
|
||||
|
||||
public void escapePressed() {
|
||||
}
|
||||
}
|
||||
|
||||
private final class MouseControllerNormal extends MouseController {
|
||||
@ -820,11 +819,18 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
element.rotate();
|
||||
repaint();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void escapePressed() {
|
||||
mouseNormal.activate();
|
||||
}
|
||||
}
|
||||
|
||||
private final class MouseControllerMoveElement extends MouseController {
|
||||
private VisualElement visualElement;
|
||||
private Vector delta;
|
||||
private Vector initialPos;
|
||||
private int initialRot;
|
||||
|
||||
private MouseControllerMoveElement(Cursor cursor) {
|
||||
super(cursor);
|
||||
@ -833,7 +839,9 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
private void activate(VisualElement visualElement, Vector pos) {
|
||||
super.activate();
|
||||
this.visualElement = visualElement;
|
||||
delta = visualElement.getPos().sub(pos);
|
||||
initialPos = visualElement.getPos();
|
||||
initialRot = visualElement.getRotate();
|
||||
delta = initialPos.sub(pos);
|
||||
deleteAction.setActive(true);
|
||||
rotateAction.setEnabled(true);
|
||||
hasChanged();
|
||||
@ -871,11 +879,19 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
circuit.modified();
|
||||
hasChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void escapePressed() {
|
||||
visualElement.setPos(raster(initialPos));
|
||||
visualElement.setRotation(initialRot);
|
||||
mouseNormal.activate();
|
||||
}
|
||||
}
|
||||
|
||||
private final class MouseControllerMoveWire extends MouseController {
|
||||
private Wire wire;
|
||||
private Vector pos;
|
||||
private Vector initialPos;
|
||||
|
||||
private MouseControllerMoveWire(Cursor cursor) {
|
||||
super(cursor);
|
||||
@ -885,6 +901,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
super.activate();
|
||||
this.wire = wire;
|
||||
this.pos = raster(pos);
|
||||
this.initialPos=this.pos;
|
||||
deleteAction.setActive(true);
|
||||
removeHighLighted();
|
||||
hasChanged();
|
||||
@ -923,6 +940,14 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
// ensure that highlighted wire is visible by drawing it on top of other drawings.
|
||||
wire.drawTo(gr, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void escapePressed() {
|
||||
wire.move(initialPos.sub(pos));
|
||||
removeHighLighted();
|
||||
circuit.elementsMoved();
|
||||
mouseNormal.activate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -962,6 +987,11 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
public void drawTo(Graphic gr) {
|
||||
wire.drawTo(gr, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void escapePressed() {
|
||||
mouseNormal.activate();
|
||||
}
|
||||
}
|
||||
|
||||
private final class MouseControllerSelect extends MouseController {
|
||||
@ -1057,6 +1087,12 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
mouseMoveSelected.activate(corner1, corner2, lastMousePos);
|
||||
mouseMoveSelected.rotate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void escapePressed() {
|
||||
removeHighLighted();
|
||||
mouseNormal.activate();
|
||||
}
|
||||
}
|
||||
|
||||
private void rotateElements(ArrayList<Moveable> elements, Vector pos) {
|
||||
@ -1212,6 +1248,11 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
public void rotate() {
|
||||
rotateElements(elements, lastPos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void escapePressed() {
|
||||
mouseNormal.activate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user