From 2f36a21b44c0559fb125765d4b376aba4af6d5b9 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Sun, 18 Aug 2019 21:39:00 +0200 Subject: [PATCH 1/1] GUIMerger/Splitter don't crash without logic bindings; made them thinner --- .../logic/model/model/components/atomic/GUIMerger.java | 7 ++++--- .../logic/model/model/components/atomic/GUISplitter.java | 7 ++++--- 2 files changed, 8 insertions(+), 6 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 fc1743b1..3f5c2542 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 @@ -20,12 +20,12 @@ import net.mograsim.preferences.Preferences; public class GUIMerger 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[] inputEnds; + private final ReadEnd[] inputEnds; private ReadEnd outputEnd; public GUIMerger(ViewModelModifiable model, int logicWidth, String name) @@ -37,6 +37,7 @@ public class GUIMerger extends GUIComponent 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 * heightPerPin / 2)); + inputEnds = new ReadEnd[logicWidth]; } @Override @@ -69,7 +70,7 @@ public class GUIMerger extends GUIComponent public void setLogicModelBinding(ReadEnd[] inputEnds, ReadEnd outputEnd) { - this.inputEnds = inputEnds; + System.arraycopy(inputEnds, 0, this.inputEnds, 0, logicWidth); this.outputEnd = outputEnd; } 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..ca3c9e4d 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,13 +20,13 @@ 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) { @@ -37,6 +37,7 @@ public class GUISplitter extends GUIComponent 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 @@ -70,7 +71,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 -- 2.17.1