From c6a857670ffb48d6f09aa1065855a860496f6386 Mon Sep 17 00:00:00 2001 From: hneemann Date: Sun, 28 May 2017 11:33:35 +0200 Subject: [PATCH] minor refactoring --- .../gui/components/CircuitComponent.java | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java index 9fd5cdce3..af06a740b 100644 --- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java +++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java @@ -173,8 +173,10 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe new ToolTipAction(Lang.get("menu_programDiode")) { @Override public void actionPerformed(ActionEvent e) { - if (activeMouseController instanceof MouseControllerNormal) { - programElementAt(getPosVector(lastMousePos.x, lastMousePos.y)); + VisualElement ve = getActualVisualElement(); + if (ve != null && CircuitComponent.this.library.isProgrammable(ve.getElementName())) { + boolean blown = ve.getElementAttributes().get(Keys.BLOWN); + modify(new ModifyAttribute<>(ve, Keys.BLOWN, !blown)); } } }.setAccelerator("P").enableAcceleratorIn(this); @@ -300,14 +302,6 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe }.setActive(false).setAcceleratorCTRLplus('C').enableAcceleratorIn(this); } - private void programElementAt(Vector pos) { - VisualElement ve = circuit.getElementAt(pos); - if (ve != null && library.isProgrammable(ve.getElementName())) { - boolean blown = ve.getElementAttributes().get(Keys.BLOWN); - modify(new ModifyAttribute<>(ve, Keys.BLOWN, !blown)); - } - } - /** * Apply a modification * @@ -862,6 +856,14 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe modify(builder.build()); } + private VisualElement getActualVisualElement() { + VisualElement ve = null; + if (activeMouseController instanceof MouseControllerNormal) + ve = circuit.getElementAt(getPosVector(lastMousePos.x, lastMousePos.y)); + if (activeMouseController instanceof MouseControllerMoveElement) + ve = ((MouseControllerMoveElement) activeMouseController).getVisualElement(); + return ve; + } private final class PlusMinusAction extends ToolTipAction { private final int delta; @@ -873,12 +875,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe @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(); - + VisualElement ve = getActualVisualElement(); if (ve != null) { try { if (library.getElementType(ve.getElementName()).hasAttribute(Keys.INPUT_COUNT)) {