Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.logic.model.editor / src / net / mograsim / logic / model / editor / handles / WireHandle.java
index d5e80c8..839c2b5 100644 (file)
@@ -9,7 +9,7 @@ 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.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.wires.ModelWire;
 
 public class WireHandle extends Handle
@@ -17,10 +17,10 @@ public class WireHandle extends Handle
        private boolean selected = false;
        private final static double WIDTH = 2.0;
        private final static double WIDTH_SQUARED = WIDTH * WIDTH;
-       private final ViewModelModifiable model;
+       private final LogicModelModifiable model;
        public final ModelWire parent;
 
-       public WireHandle(ViewModelModifiable model, ModelWire parent)
+       public WireHandle(LogicModelModifiable model, ModelWire parent)
        {
                super(5);
                this.model = model;
@@ -71,7 +71,9 @@ public class WireHandle extends Handle
        @Override
        public void reqDelete()
        {
-               model.destroyWire(parent);
+               // 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