From a2eef1d1616d03af5b464f347f6176ea9d2cc75e Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Fri, 5 Jul 2019 16:03:47 +0200 Subject: [PATCH] Removed ConnectionPoint causing confusion --- .../logic/ui/am2900/Am2901Testbench.java | 7 ++- .../logic/ui/model/wires/ConnectionPoint.java | 13 ----- .../logic/ui/model/wires/GUIWire.java | 56 ++++++++++++++++++- .../mograsim/logic/ui/model/wires/Pin.java | 8 +-- .../logic/ui/model/wires/WireCrossPoint.java | 3 +- .../mograsim/logic/ui/util/ModellingTool.java | 37 +++++++++++- 6 files changed, 93 insertions(+), 31 deletions(-) delete mode 100644 net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/ConnectionPoint.java diff --git a/net.mograsim.logic.ui.am2900/test/net/mograsim/logic/ui/am2900/Am2901Testbench.java b/net.mograsim.logic.ui.am2900/test/net/mograsim/logic/ui/am2900/Am2901Testbench.java index 34c4cbe7..0a06914b 100644 --- a/net.mograsim.logic.ui.am2900/test/net/mograsim/logic/ui/am2900/Am2901Testbench.java +++ b/net.mograsim.logic.ui.am2900/test/net/mograsim/logic/ui/am2900/Am2901Testbench.java @@ -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 index ed10286d..00000000 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/ConnectionPoint.java +++ /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(); -} diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/GUIWire.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/GUIWire.java index 6f6147ad..7b641ff3 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/GUIWire.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/GUIWire.java @@ -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; diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java index b761c0e7..287a6237 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java @@ -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 diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/WireCrossPoint.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/WireCrossPoint.java index 1a3f893a..7a2fcf4b 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/WireCrossPoint.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/WireCrossPoint.java @@ -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; diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/ModellingTool.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/ModellingTool.java index 61252ea4..c8cd5b92 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/ModellingTool.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/ModellingTool.java @@ -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); } -- 2.17.1