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=ab97f5384c47ac20df096fe39700e67835f5aec0;hb=77f1a4885b121ab2cf8a518cf6b10cb88b9ba4c9;hp=2211114f1abf69dff263ee8e80a29c774544934e;hpb=feb82d306e86ae48cf48e93e9e96f119c8195196;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 2211114f..ab97f538 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 @@ -20,23 +20,24 @@ import net.mograsim.preferences.Preferences; public class GUISplitter extends GUIComponent { - private static final double width = 20; + private static final double width = 10; private static final double heightPerPin = 10; public final int logicWidth; private ReadEnd inputEnd; - private ReadEnd[] outputEnds; + private final ReadEnd[] outputEnds; 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 * heightPerPin / 2)); + addPin(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)); + outputEnds = new ReadEnd[logicWidth]; } @Override @@ -48,7 +49,8 @@ public class GUISplitter extends GUIComponent ColorDefinition c = BitVectorFormatter.formatAsColor(inputEnd); if (c != null) gc.setForeground(ColorManager.current().toColor(c)); - gc.drawLine(posX, posY + heightPerPin * logicWidth / 2, posX + width / 2, posY + heightPerPin * logicWidth / 2); + double inLineY = posY + (logicWidth - 1) * heightPerPin / 2; + gc.drawLine(posX, inLineY, posX + width / 2, inLineY); gc.setForeground(Preferences.current().getColor("net.mograsim.logic.model.color.foreground")); gc.drawLine(posX + width / 2, posY, posX + width / 2, posY + heightPerPin * (logicWidth - 1)); double outputHeight = posY; @@ -70,7 +72,7 @@ public class GUISplitter extends GUIComponent public void setLogicModelBinding(ReadEnd inputEnd, ReadEnd[] outputEnds) { this.inputEnd = inputEnd; - this.outputEnds = outputEnds; + System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth); } static