X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fhandles%2FWireHandle.java;h=839c2b5b733532991232ced408242bfc03513222;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=7629dcb1774b9f1f65dcf4d083bd5c329bb59c82;hpb=452b5630f12a4ffa8b15012980f2e6b8469c571b;p=Mograsim.git diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java index 7629dcb1..839c2b5b 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java @@ -9,18 +9,21 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.model.editor.states.EditorState; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.LogicModelModifiable; +import net.mograsim.logic.model.model.wires.ModelWire; public class WireHandle extends Handle { private boolean selected = false; private final static double WIDTH = 2.0; private final static double WIDTH_SQUARED = WIDTH * WIDTH; - public final GUIWire parent; + private final LogicModelModifiable model; + public final ModelWire parent; - public WireHandle(GUIWire parent) + public WireHandle(LogicModelModifiable model, ModelWire parent) { super(5); + this.model = model; this.parent = parent; parent.addPathChangedListener(c -> updateBounds()); updateBounds(); @@ -68,7 +71,9 @@ public class WireHandle extends Handle @Override public void reqDelete() { - parent.destroy(); + // this wire could already be removed implicitly when removing a selection containing both wires and components + if (model.getWireByName(parent.name) != null) + model.destroyWire(parent); } @Override @@ -101,7 +106,7 @@ public class WireHandle extends Handle } - private static Optional click(GUIWire w, double x, double y) + private static Optional click(ModelWire w, double x, double y) { Rectangle modifiedBounds = w.getBounds(); modifiedBounds.x -= WIDTH;