mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-29 16:01:19 -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));
|
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
|
* @return true if one can interact with this element
|
||||||
*/
|
*/
|
||||||
public boolean isInteractable() {
|
public boolean isInteractable() {
|
||||||
return interactor != null;
|
return interactor != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -157,14 +157,10 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
Action escapeAction = new AbstractAction() {
|
Action escapeAction = new AbstractAction() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (activeMouseController != mouseNormal) {
|
activeMouseController.escapePressed();
|
||||||
mouseNormal.activate();
|
|
||||||
removeHighLighted();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
AbstractAction programAction = new AbstractAction(Lang.get("menu_programDiode")) {
|
AbstractAction programAction = new AbstractAction(Lang.get("menu_programDiode")) {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
@ -706,6 +702,9 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
|
|
||||||
public void rotate() {
|
public void rotate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void escapePressed() {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class MouseControllerNormal extends MouseController {
|
private final class MouseControllerNormal extends MouseController {
|
||||||
@ -820,11 +819,18 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
element.rotate();
|
element.rotate();
|
||||||
repaint();
|
repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void escapePressed() {
|
||||||
|
mouseNormal.activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class MouseControllerMoveElement extends MouseController {
|
private final class MouseControllerMoveElement extends MouseController {
|
||||||
private VisualElement visualElement;
|
private VisualElement visualElement;
|
||||||
private Vector delta;
|
private Vector delta;
|
||||||
|
private Vector initialPos;
|
||||||
|
private int initialRot;
|
||||||
|
|
||||||
private MouseControllerMoveElement(Cursor cursor) {
|
private MouseControllerMoveElement(Cursor cursor) {
|
||||||
super(cursor);
|
super(cursor);
|
||||||
@ -833,7 +839,9 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
private void activate(VisualElement visualElement, Vector pos) {
|
private void activate(VisualElement visualElement, Vector pos) {
|
||||||
super.activate();
|
super.activate();
|
||||||
this.visualElement = visualElement;
|
this.visualElement = visualElement;
|
||||||
delta = visualElement.getPos().sub(pos);
|
initialPos = visualElement.getPos();
|
||||||
|
initialRot = visualElement.getRotate();
|
||||||
|
delta = initialPos.sub(pos);
|
||||||
deleteAction.setActive(true);
|
deleteAction.setActive(true);
|
||||||
rotateAction.setEnabled(true);
|
rotateAction.setEnabled(true);
|
||||||
hasChanged();
|
hasChanged();
|
||||||
@ -871,11 +879,19 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
circuit.modified();
|
circuit.modified();
|
||||||
hasChanged();
|
hasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void escapePressed() {
|
||||||
|
visualElement.setPos(raster(initialPos));
|
||||||
|
visualElement.setRotation(initialRot);
|
||||||
|
mouseNormal.activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class MouseControllerMoveWire extends MouseController {
|
private final class MouseControllerMoveWire extends MouseController {
|
||||||
private Wire wire;
|
private Wire wire;
|
||||||
private Vector pos;
|
private Vector pos;
|
||||||
|
private Vector initialPos;
|
||||||
|
|
||||||
private MouseControllerMoveWire(Cursor cursor) {
|
private MouseControllerMoveWire(Cursor cursor) {
|
||||||
super(cursor);
|
super(cursor);
|
||||||
@ -885,6 +901,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
super.activate();
|
super.activate();
|
||||||
this.wire = wire;
|
this.wire = wire;
|
||||||
this.pos = raster(pos);
|
this.pos = raster(pos);
|
||||||
|
this.initialPos=this.pos;
|
||||||
deleteAction.setActive(true);
|
deleteAction.setActive(true);
|
||||||
removeHighLighted();
|
removeHighLighted();
|
||||||
hasChanged();
|
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.
|
// ensure that highlighted wire is visible by drawing it on top of other drawings.
|
||||||
wire.drawTo(gr, true);
|
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) {
|
public void drawTo(Graphic gr) {
|
||||||
wire.drawTo(gr, false);
|
wire.drawTo(gr, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void escapePressed() {
|
||||||
|
mouseNormal.activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class MouseControllerSelect extends MouseController {
|
private final class MouseControllerSelect extends MouseController {
|
||||||
@ -1057,6 +1087,12 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
mouseMoveSelected.activate(corner1, corner2, lastMousePos);
|
mouseMoveSelected.activate(corner1, corner2, lastMousePos);
|
||||||
mouseMoveSelected.rotate();
|
mouseMoveSelected.rotate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void escapePressed() {
|
||||||
|
removeHighLighted();
|
||||||
|
mouseNormal.activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void rotateElements(ArrayList<Moveable> elements, Vector pos) {
|
private void rotateElements(ArrayList<Moveable> elements, Vector pos) {
|
||||||
@ -1212,6 +1248,11 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
|||||||
public void rotate() {
|
public void rotate() {
|
||||||
rotateElements(elements, lastPos);
|
rotateElements(elements, lastPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void escapePressed() {
|
||||||
|
mouseNormal.activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user