From 18ee8ea8e2c7979aab2bd96f1651c8f3f33d7f63 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Sat, 31 Aug 2019 15:40:17 +0200 Subject: [PATCH 1/1] GUIMerger/GUISplitter now have a reference to their output/input pin --- .../model/model/components/atomic/GUIMerger.java | 13 ++++++++++++- .../model/model/components/atomic/GUISplitter.java | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java index d1eac5e6..e72cf8a6 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java @@ -26,10 +26,16 @@ public class GUIMerger extends GUIComponent private static final double heightPerPin = 10; public final int logicWidth; + private final Pin outputPin; private final ReadEnd[] inputEnds; private ReadEnd outputEnd; + public GUIMerger(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + public GUIMerger(ViewModelModifiable model, int logicWidth, String name) { super(model, name); @@ -38,7 +44,7 @@ public class GUIMerger extends GUIComponent double inputHeight = 0; for (int i = 0; i < logicWidth; i++, inputHeight += 10) addPin(new Pin(this, "I" + i, 1, 0, inputHeight)); - addPin(new Pin(this, "O", logicWidth, width, (logicWidth - 1) * heightPerPin / 2)); + addPin(this.outputPin = new Pin(this, "O", logicWidth, width, (logicWidth - 1) * heightPerPin / 2)); inputEnds = new ReadEnd[logicWidth]; } @@ -82,6 +88,11 @@ public class GUIMerger extends GUIComponent this.outputEnd = outputEnd; } + public Pin getOutputPin() + { + return outputPin; + } + static { ViewLogicModelAdapter.addComponentAdapter(new MergerAdapter()); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java index 6ddc276f..0ca71c77 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java @@ -26,16 +26,22 @@ public class GUISplitter extends GUIComponent private static final double heightPerPin = 10; public final int logicWidth; + private final Pin inputPin; private ReadEnd inputEnd; private final ReadEnd[] outputEnds; + public GUISplitter(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + public GUISplitter(ViewModelModifiable model, int logicWidth, String name) { super(model, name); this.logicWidth = logicWidth; setSize(width, logicWidth * heightPerPin); - addPin(new Pin(this, "I", logicWidth, 0, (logicWidth - 1) * heightPerPin / 2)); + addPin(this.inputPin = new Pin(this, "I", logicWidth, 0, (logicWidth - 1) * heightPerPin / 2)); double outputHeight = 0; for (int i = 0; i < logicWidth; i++, outputHeight += 10) addPin(new Pin(this, "O" + i, 1, width, outputHeight)); @@ -82,6 +88,11 @@ public class GUISplitter extends GUIComponent System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth); } + public Pin getInputPin() + { + return inputPin; + } + static { ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter()); -- 2.17.1