Removed ConnectionPoint causing confusion
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Fri, 5 Jul 2019 14:03:47 +0000 (16:03 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Fri, 5 Jul 2019 14:03:47 +0000 (16:03 +0200)
net.mograsim.logic.ui.am2900/test/net/mograsim/logic/ui/am2900/Am2901Testbench.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/ConnectionPoint.java [deleted file]
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/GUIWire.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/WireCrossPoint.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/ModellingTool.java

index 34c4cbe..0a06914 100644 (file)
@@ -2,6 +2,7 @@ package net.mograsim.logic.ui.am2900;
 
 import net.mograsim.logic.ui.SimpleLogicUIStandalone;
 import net.mograsim.logic.ui.model.ViewModelModifiable;
+import net.mograsim.logic.ui.model.components.GUIComponent;
 import net.mograsim.logic.ui.model.components.atomic.GUIAndGate;
 import net.mograsim.logic.ui.model.components.atomic.GUIBitDisplay;
 import net.mograsim.logic.ui.model.components.atomic.GUIManualSwitch;
@@ -10,7 +11,7 @@ import net.mograsim.logic.ui.model.components.atomic.TextComponent;
 import net.mograsim.logic.ui.model.components.mi.nandbased.GUIdff;
 import net.mograsim.logic.ui.model.components.mi.nandbased.am2901.GUIAm2901;
 import net.mograsim.logic.ui.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.ui.model.wires.ConnectionPoint;
+import net.mograsim.logic.ui.model.wires.Pin;
 import net.mograsim.logic.ui.model.wires.WireCrossPoint;
 import net.mograsim.logic.ui.util.ModellingTool;
 
@@ -46,7 +47,7 @@ public class Am2901Testbench
                not2.moveTo(80, -20);
                not3.moveTo(110, -20);
                and.moveTo(135, -30);
-               ConnectionPoint last = and.getPin("Y");
+               Pin last = and.getPin("Y");
 
                for (int i = 0; i < comp.getInputPinNames().size(); i++)
                {
@@ -54,7 +55,7 @@ public class Am2901Testbench
                        double y = 10 * i;
 
                        WireCrossPoint wcp = new WireCrossPoint(model, 1);
-                       GUIdff d_ff = new GUIdff(model);
+                       GUIComponent d_ff = new GUIdff(model);
                        GUIManualSwitch sw = new GUIManualSwitch(model);
 
                        tool.connect(last, wcp);
diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/ConnectionPoint.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/ConnectionPoint.java
deleted file mode 100644 (file)
index ed10286..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-package net.mograsim.logic.ui.model.wires;
-
-public interface ConnectionPoint
-{
-       /**
-        * Retrieves the {@link Pin}, that is used by the {@link GUIWire} to connect to.
-        * 
-        * @return the {@link Pin} for the wire to connect to.
-        * 
-        * @author Christian Femers
-        */
-       Pin getPin();
-}
index 6f6147a..7b641ff 100644 (file)
@@ -74,7 +74,37 @@ public class GUIWire
         * 
         * @author Daniel Kirschten
         */
-       public GUIWire(ViewModelModifiable model, ConnectionPoint pin1, ConnectionPoint pin2)
+       public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, WireCrossPoint pin2)
+       {
+               this(model, pin1, pin2, (Point[]) null);
+       }
+
+       /**
+        * Creates a new {@link GUIWire} with automatic interpolation.
+        * 
+        * @author Daniel Kirschten
+        */
+       public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, Pin pin2)
+       {
+               this(model, pin1, pin2, (Point[]) null);
+       }
+
+       /**
+        * Creates a new {@link GUIWire} with automatic interpolation.
+        * 
+        * @author Daniel Kirschten
+        */
+       public GUIWire(ViewModelModifiable model, Pin pin1, WireCrossPoint pin2)
+       {
+               this(model, pin1, pin2, (Point[]) null);
+       }
+
+       /**
+        * Creates a new {@link GUIWire} with automatic interpolation.
+        * 
+        * @author Daniel Kirschten
+        */
+       public GUIWire(ViewModelModifiable model, Pin pin1, Pin pin2)
        {
                this(model, pin1, pin2, (Point[]) null);
        }
@@ -84,7 +114,7 @@ public class GUIWire
         * 
         * @author Daniel Kirschten
         */
-       public GUIWire(ViewModelModifiable model, ConnectionPoint pin1, ConnectionPoint pin2, Point... path)
+       public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, WireCrossPoint pin2, Point... path)
        {
                this(model, pin1.getPin(), pin2.getPin(), path);
        }
@@ -94,7 +124,27 @@ public class GUIWire
         * 
         * @author Daniel Kirschten
         */
-       GUIWire(ViewModelModifiable model, Pin pin1, Pin pin2, Point... path)
+       public GUIWire(ViewModelModifiable model, WireCrossPoint pin1, Pin pin2, Point... path)
+       {
+               this(model, pin1.getPin(), pin2, path);
+       }
+
+       /**
+        * Creates a new {@link GUIWire} without automatic interpolation.
+        * 
+        * @author Daniel Kirschten
+        */
+       public GUIWire(ViewModelModifiable model, Pin pin1, WireCrossPoint pin2, Point... path)
+       {
+               this(model, pin1, pin2.getPin(), path);
+       }
+
+       /**
+        * Creates a new {@link GUIWire} without automatic interpolation.
+        * 
+        * @author Daniel Kirschten
+        */
+       public GUIWire(ViewModelModifiable model, Pin pin1, Pin pin2, Point... path)
        {
                logicObs = (i) -> callRedrawListeners();
                this.model = model;
index b761c0e..287a623 100644 (file)
@@ -15,7 +15,7 @@ import net.mograsim.logic.ui.model.components.GUIComponent;
  * 
  * @author Daniel Kirschten
  */
-public class Pin implements ConnectionPoint
+public class Pin
 {
        /**
         * The {@link GUIComponent} this pin belongs to
@@ -136,10 +136,4 @@ public class Pin implements ConnectionPoint
        {
                return "Pin [" + name + ", point=" + getPos() + "]";
        }
-
-       @Override
-       public Pin getPin()
-       {
-               return this;
-       }
 }
\ No newline at end of file
index 1a3f893..7a2fcf4 100644 (file)
@@ -23,7 +23,7 @@ import net.mograsim.preferences.ColorManager;
  * 
  * @author Daniel Kirschten
  */
-public class WireCrossPoint extends GUIComponent implements ConnectionPoint
+public class WireCrossPoint extends GUIComponent
 {
        private static final int CIRCLE_RADIUS = 1;
        private static final int CIRCLE_DIAM = CIRCLE_RADIUS * 2;
@@ -55,7 +55,6 @@ public class WireCrossPoint extends GUIComponent implements ConnectionPoint
 
        // pins
 
-       @Override
        public Pin getPin()
        {
                return pin;
index 61252ea..c8cd5b9 100644 (file)
@@ -2,8 +2,9 @@ package net.mograsim.logic.ui.util;
 
 import net.mograsim.logic.ui.model.ViewModelModifiable;
 import net.mograsim.logic.ui.model.components.GUIComponent;
-import net.mograsim.logic.ui.model.wires.ConnectionPoint;
 import net.mograsim.logic.ui.model.wires.GUIWire;
+import net.mograsim.logic.ui.model.wires.Pin;
+import net.mograsim.logic.ui.model.wires.WireCrossPoint;
 
 public class ModellingTool
 {
@@ -19,12 +20,42 @@ public class ModellingTool
                return connect(a.getPin(pinA), b.getPin(pinB));
        }
 
-       public GUIWire connect(ConnectionPoint a, GUIComponent b, String pinB)
+       public GUIWire connect(WireCrossPoint a, GUIComponent b, String pinB)
+       {
+               return connect(a.getPin(), b.getPin(pinB));
+       }
+
+       public GUIWire connect(Pin a, GUIComponent b, String pinB)
        {
                return connect(a, b.getPin(pinB));
        }
 
-       public GUIWire connect(ConnectionPoint a, ConnectionPoint b)
+       public GUIWire connect(GUIComponent a, WireCrossPoint b, String pinA)
+       {
+               return connect(a.getPin(pinA), b.getPin());
+       }
+
+       public GUIWire connect(WireCrossPoint a, WireCrossPoint b)
+       {
+               return connect(a.getPin(), b.getPin());
+       }
+
+       public GUIWire connect(Pin a, WireCrossPoint b)
+       {
+               return connect(a, b.getPin());
+       }
+
+       public GUIWire connect(GUIComponent a, Pin b, String pinA)
+       {
+               return connect(a.getPin(pinA), b);
+       }
+
+       public GUIWire connect(WireCrossPoint a, Pin b)
+       {
+               return connect(a.getPin(), b);
+       }
+
+       public GUIWire connect(Pin a, Pin b)
        {
                return new GUIWire(model, a, b);
        }