From d18d5b647d8b2e53acc4c93dc05672a5494c1123 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Sun, 18 Aug 2019 14:44:55 +0200 Subject: [PATCH] Made GUIMerger and GUISplitter serializable --- .../model/model/components/atomic/GUIMerger.java | 13 +++++++++++++ .../model/model/components/atomic/GUISplitter.java | 13 +++++++++++++ 2 files changed, 26 insertions(+) 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 509e575d..287e4374 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 @@ -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,6 +12,8 @@ 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.MergerAdapter; +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; @@ -56,6 +61,12 @@ public class GUIMerger extends GUIComponent gc.drawLine(posX + width / 2, posY + heightPerPin * logicWidth / 2, posX + width, posY + heightPerPin * logicWidth / 2); } + @Override + public JsonElement getParamsForSerializing(IdentifierGetter idGetter) + { + return new JsonPrimitive(logicWidth); + } + public void setLogicModelBinding(ReadEnd[] inputEnds, ReadEnd outputEnd) { this.inputEnds = inputEnds; @@ -65,5 +76,7 @@ public class GUIMerger extends GUIComponent static { ViewLogicModelAdapter.addComponentAdapter(new MergerAdapter()); + IndirectGUIComponentCreator.setComponentSupplier(GUIMerger.class.getCanonicalName(), + (m, p, n) -> new GUIMerger(m, p.getAsInt(), n)); } } \ No newline at end of file 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 8643eb36..856eed9a 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,6 +12,8 @@ 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; @@ -56,6 +61,12 @@ 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; @@ -65,5 +76,7 @@ public class GUISplitter extends GUIComponent 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 -- 2.17.1