+/- shortcut also works if element is selected

This commit is contained in:
hneemann 2017-05-28 09:56:37 +02:00
parent 6fecb0e4b9
commit e0d89eadc2

View File

@ -165,21 +165,8 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
}
}.setAccelerator("D").enableAcceleratorIn(this);
new ToolTipAction("plus") {
@Override
public void actionPerformed(ActionEvent e) {
if (activeMouseController instanceof MouseControllerNormal)
addToInputCount(getPosVector(lastMousePos.x, lastMousePos.y), 1);
}
}.setAccelerator("PLUS").enableAcceleratorIn(this);
new ToolTipAction("minus") {
@Override
public void actionPerformed(ActionEvent e) {
if (activeMouseController instanceof MouseControllerNormal)
addToInputCount(getPosVector(lastMousePos.x, lastMousePos.y), -1);
}
}.setAccelerator("MINUS").enableAcceleratorIn(this);
new PlusMinusAction(1).setAccelerator("PLUS").enableAcceleratorIn(this);
new PlusMinusAction(-1).setAccelerator("MINUS").enableAcceleratorIn(this);
new ToolTipAction(Lang.get("menu_programDiode")) {
@Override
@ -320,21 +307,6 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
}
}
private void addToInputCount(Vector pos, int delta) {
VisualElement ve = circuit.getElementAt(pos);
if (ve != null) {
try {
if (library.getElementType(ve.getElementName()).hasAttribute(Keys.INPUT_COUNT)) {
int number = ve.getElementAttributes().get(Keys.INPUT_COUNT) + delta;
if (number >= Keys.INPUT_COUNT.getMin() && number <= Keys.INPUT_COUNT.getMax())
modify(new ModifyAttribute<>(ve, Keys.INPUT_COUNT, number));
}
} catch (ElementNotFoundException e) {
// do nothing on error
}
}
}
/**
* Apply a modification
*
@ -857,6 +829,37 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
return redoAction;
}
private final class PlusMinusAction extends ToolTipAction {
private final int delta;
private PlusMinusAction(int delta) {
super("plusMinus");
this.delta = delta;
}
@Override
public void actionPerformed(ActionEvent e) {
VisualElement ve = null;
if (activeMouseController instanceof MouseControllerNormal)
ve = circuit.getElementAt(getPosVector(lastMousePos.x, lastMousePos.y));
if (activeMouseController instanceof MouseControllerMoveElement)
ve = ((MouseControllerMoveElement) activeMouseController).getVisualElement();
if (ve != null) {
try {
if (library.getElementType(ve.getElementName()).hasAttribute(Keys.INPUT_COUNT)) {
int number = ve.getElementAttributes().get(Keys.INPUT_COUNT) + delta;
if (number >= Keys.INPUT_COUNT.getMin() && number <= Keys.INPUT_COUNT.getMax())
modify(new ModifyAttribute<>(ve, Keys.INPUT_COUNT, number));
}
} catch (ElementNotFoundException e1) {
// do nothing on error
}
}
}
}
private class MouseDispatcher extends MouseAdapter implements MouseMotionListener {
private Vector pos;
private boolean isMoved;
@ -1168,6 +1171,10 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
}
mouseNormal.activate();
}
public VisualElement getVisualElement() {
return visualElement;
}
}
private final class MouseControllerMoveWire extends MouseController {