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=ca3c9e4df6ff0a66e7ce7f15a0d2ebc5e85bdf5b;hb=2f36a21b44c0559fb125765d4b376aba4af6d5b9;hp=1dc11d19f023764824aea54065b2fe91ff28ce83;hpb=90535df49bdc91fc81c028fb5b6f966d8fe4a5e3;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 1dc11d19..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 @@ -1,5 +1,8 @@ package net.mograsim.logic.model.model.components.atomic; +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; + import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.core.types.BitVectorFormatter; @@ -9,19 +12,21 @@ import net.mograsim.logic.model.model.components.GUIComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; import net.mograsim.logic.model.modeladapter.componentadapters.SplitterAdapter; +import net.mograsim.logic.model.serializing.IdentifierGetter; +import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; import net.mograsim.preferences.ColorDefinition; import net.mograsim.preferences.ColorManager; 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) { @@ -32,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 @@ -56,14 +62,22 @@ public class GUISplitter extends GUIComponent } } + @Override + public JsonElement getParamsForSerializing(IdentifierGetter idGetter) + { + return new JsonPrimitive(logicWidth); + } + public void setLogicModelBinding(ReadEnd inputEnd, ReadEnd[] outputEnds) { this.inputEnd = inputEnd; - this.outputEnds = outputEnds; + System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth); } static { ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter()); + IndirectGUIComponentCreator.setComponentSupplier(GUISplitter.class.getCanonicalName(), + (m, p, n) -> new GUISplitter(m, p.getAsInt(), n)); } } \ No newline at end of file