X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2Fatomic%2FGUISplitter.java;h=63650a64d8fd3ff514dde762f09af8d3ca49949f;hb=1372abe81775e52cc52b715139cf13097a481b49;hp=6ddc276f971d0aab27b247b9da61e4be727cfaf3;hpb=697610b0b596503a3e477811b3d2b3761db35e95;p=Mograsim.git 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..63650a64 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 @@ -12,6 +12,7 @@ import net.mograsim.logic.core.wires.Wire.ReadEnd; import net.mograsim.logic.model.model.ViewModelModifiable; import net.mograsim.logic.model.model.components.GUIComponent; import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; import net.mograsim.logic.model.modeladapter.componentadapters.SplitterAdapter; import net.mograsim.logic.model.serializing.IdentifierGetter; @@ -26,19 +27,25 @@ 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, PinUsage.TRISTATE, 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)); + addPin(new Pin(this, "O" + i, 1, PinUsage.TRISTATE, width, outputHeight)); outputEnds = new ReadEnd[logicWidth]; } @@ -82,6 +89,11 @@ public class GUISplitter extends GUIComponent System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth); } + public Pin getInputPin() + { + return inputPin; + } + static { ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter());