X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui.am2900%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fexamples%2FJsonExample.java;h=c0ebad601f00e852c224f5372711a9fd3cb54353;hb=9ca90120a47e07c9182162351dc47aa89ae703be;hp=09e80691a4b05fdfc095f0576ec768bf448c1956;hpb=01c5d7035474a5eb58f216b6831b2c0d8c174efa;p=Mograsim.git diff --git a/net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/examples/JsonExample.java b/net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/examples/JsonExample.java index 09e80691..c0ebad60 100644 --- a/net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/examples/JsonExample.java +++ b/net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/examples/JsonExample.java @@ -1,12 +1,14 @@ package net.mograsim.logic.ui.examples; import java.io.IOException; -import java.util.HashMap; + +import com.google.gson.JsonNull; import net.mograsim.logic.ui.SimpleLogicUIStandalone; import net.mograsim.logic.ui.model.ViewModelModifiable; import net.mograsim.logic.ui.model.components.atomic.GUIBitDisplay; import net.mograsim.logic.ui.model.components.atomic.GUIManualSwitch; +import net.mograsim.logic.ui.model.components.mi.nandbased.GUI_rsLatch; import net.mograsim.logic.ui.model.components.mi.nandbased.GUIfulladder; import net.mograsim.logic.ui.model.components.mi.nandbased.GUIhalfadder; import net.mograsim.logic.ui.model.components.submodels.SimpleRectangularSubmodelComponent; @@ -15,17 +17,18 @@ import net.mograsim.logic.ui.model.wires.GUIWire; import net.mograsim.logic.ui.serializing.IndirectGUIComponentCreator; import net.mograsim.logic.ui.serializing.SubmodelComponentDeserializer; import net.mograsim.logic.ui.serializing.SubmodelComponentParams; +import net.mograsim.logic.ui.util.JsonHandler; public class JsonExample { public static void main(String[] args) { - SimpleLogicUIStandalone.executeVisualisation(JsonExample::mappingTest); + SimpleLogicUIStandalone.executeVisualisation(JsonExample::basicTest); } public static void mappingTest(ViewModelModifiable model) { - IndirectGUIComponentCreator.create(model, "GUIAm2901", new HashMap()); + IndirectGUIComponentCreator.createComponent(model, "Am2901", JsonNull.INSTANCE); } private static class TestComponent extends SimpleRectangularSubmodelComponent @@ -39,6 +42,41 @@ public class JsonExample } } + @SuppressWarnings("unused") // GUIWires being created + private static void basicTest(ViewModelModifiable viewModel) + { + GUI_rsLatch comp = new GUI_rsLatch(viewModel); + comp.moveTo(30, 0); + SubmodelComponentParams params = comp.calculateParams(); + String jsonString = JsonHandler.toJson(params); + System.out.println(jsonString); + SubmodelComponentParams paramsD = JsonHandler.fromJson(jsonString, SubmodelComponentParams.class); + SubmodelComponent componentD = SubmodelComponentDeserializer.create(viewModel, paramsD); + componentD.moveTo(30, 50); + double h = 0; + for (String s : comp.getInputPinNames()) + { + GUIManualSwitch sw = new GUIManualSwitch(viewModel); + sw.moveTo(0, h); + new GUIWire(viewModel, sw.getOutputPin(), comp.getPin(s)); + sw = new GUIManualSwitch(viewModel); + sw.moveTo(0, h + 50); + new GUIWire(viewModel, sw.getOutputPin(), componentD.getPin(s)); + h += 20; + } + h = 0; + for (String s : comp.getOutputPinNames()) + { + GUIBitDisplay bd = new GUIBitDisplay(viewModel); + bd.moveTo(80, h); + new GUIWire(viewModel, bd.getInputPin(), comp.getPin(s)); + bd = new GUIBitDisplay(viewModel); + bd.moveTo(80, h + 50); + new GUIWire(viewModel, bd.getInputPin(), componentD.getPin(s)); + h += 20; + } + } + // Execute only after HalfAdder.json has been created public static void refJsonFromJsonTest(ViewModelModifiable model) {