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 / WirePointHandle.java
index 2457579..2947535 100644 (file)
@@ -5,20 +5,22 @@ import org.eclipse.swt.widgets.Display;
 
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.core.wires.Wire;
-import net.mograsim.logic.model.model.wires.GUIWire;
+import net.mograsim.logic.core.wires.CoreWire;
+import net.mograsim.logic.model.model.wires.ModelWire;
 
 public class WirePointHandle extends Handle
 {
        private final static int END_OFFSET = 4;
+       private final HandleManager manager;
        private boolean selected = false;
-       public final GUIWire parent;
-       
+       public final ModelWire parent;
+
        private int pointIndex;
 
-       public WirePointHandle(GUIWire parent, int pointIndex)
+       public WirePointHandle(HandleManager manager, ModelWire parent, int pointIndex)
        {
-               super();
+               super(3);
+               this.manager = manager;
                this.parent = parent;
                this.pointIndex = pointIndex;
                setSize(END_OFFSET, END_OFFSET);
@@ -30,8 +32,9 @@ public class WirePointHandle extends Handle
        {
                Point p = parent.getPathPoint(pointIndex);
                moveTo(p.x, p.y);
+               callRedrawListeners();
        }
-       
+
        @Override
        public void render(GeneralGC gc)
        {
@@ -45,7 +48,7 @@ public class WirePointHandle extends Handle
        {
                parent.setPathPoint(new Point(x, y), pointIndex);
        }
-       
+
        @Override
        public void onSelect()
        {
@@ -59,13 +62,13 @@ public class WirePointHandle extends Handle
                selected = false;
                callRedrawListeners();
        }
-       
+
        @Override
        public void reqDelete()
        {
-               parent.removePathPoint(pointIndex);
+               manager.destroyWirePointHandle(parent, this);
        }
-       
+
        @Override
        public HandleType getType()
        {
@@ -73,7 +76,8 @@ public class WirePointHandle extends Handle
        }
 
        /**
-        * Sets the index of the {@link Point} within the parent {@link Wire}s path that is controlled by this handle
+        * Sets the index of the {@link Point} within the parent {@link CoreWire}s path that is controlled by this handle
+        * 
         * @param index Index of the Point in the Wires path.
         * @throws IndexOutOfBoundsException
         */