import net.mograsim.logic.ui.SimpleLogicUIStandalone;
import net.mograsim.logic.ui.model.ViewModelModifiable;
import net.mograsim.logic.ui.model.components.GUIBitDisplay;
-import net.mograsim.logic.ui.model.components.GUIComponent;
import net.mograsim.logic.ui.model.components.GUICustomComponentCreator;
import net.mograsim.logic.ui.model.components.GUIManualSwitch;
import net.mograsim.logic.ui.model.components.SimpleRectangularSubmodelComponent;
import net.mograsim.logic.ui.model.components.SubmodelComponent;
-import net.mograsim.logic.ui.model.components.mi.nandbased.GUIand;
+import net.mograsim.logic.ui.model.components.SubmodelComponentParams;
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.mi.nandbased.GUImux1;
-import net.mograsim.logic.ui.model.components.mi.nandbased.GUImux1_4;
-import net.mograsim.logic.ui.model.components.mi.nandbased.GUIsel2_4;
-import net.mograsim.logic.ui.model.components.params.RectComponentParams;
-import net.mograsim.logic.ui.model.components.params.SubComponentParams;
import net.mograsim.logic.ui.model.wires.GUIWire;
public class JsonExample
{
public static void main(String[] args)
{
- SimpleLogicUIStandalone.executeVisualisation(JsonExample::createFromJsonExample);
+ SimpleLogicUIStandalone.executeVisualisation(JsonExample::refJsonFromJsonTest);
}
private static class TestComponent extends SimpleRectangularSubmodelComponent
protected TestComponent(ViewModelModifiable model)
{
super(model, 1, "Test");
- setInputCount(1);
setSubmodelScale(.4);
- GUICustomComponentCreator.create(submodelModifiable, "HalfAdder.rc");
+ setInputPins("Input pin #0");
+ GUICustomComponentCreator.create(submodelModifiable, "HalfAdder.json");
}
}
- // Execute only after HalfAdder.rc has been created
+ // Execute only after HalfAdder.json has been created
public static void refJsonFromJsonTest(ViewModelModifiable model)
{
TestComponent t = new TestComponent(model);
- t.calculateParams().writeJson("Test.sc");
- SubmodelComponent c = GUICustomComponentCreator.create(model, "Test.sc");
+ t.calculateParams().writeJson("Test.json");
+ SubmodelComponent c = GUICustomComponentCreator.create(model, "Test.json");
c.moveTo(0, 50);
}
{
GUIhalfadder tmp = new GUIhalfadder(model);
tmp.moveTo(1000, 50);
- RectComponentParams p = tmp.calculateRectParams();
- SubComponentParams pC = tmp.calculateParams();
+ SubmodelComponentParams p = tmp.calculateParams();
try
{
- p.writeJson("HalfAdder.rc");
- pC.writeJson("HalfAdder.sc");
- p = RectComponentParams.readJson("HalfAdder.rc");
- pC = SubComponentParams.readJson("HalfAdder.sc");
+ p.writeJson("HalfAdder.json");
+ p = SubmodelComponentParams.readJson("HalfAdder.json");
}
catch (IOException e)
{
e.printStackTrace();
}
- SubmodelComponent adder = GUICustomComponentCreator.create(model, p, "");
- adder = GUICustomComponentCreator.create(model, pC, "");
- adder.moveTo(0, 200);
+ GUICustomComponentCreator.create(model, p, "");
}
@SuppressWarnings("unused") // for GUIWires being created
public static void createFromJsonExample(ViewModelModifiable model)
{
- SimpleRectangularSubmodelComponent tmp = new GUIhalfadder(model);
- tmp.moveTo(1000, 50);
- RectComponentParams p = tmp.calculateRectParams();
- try
- {
- p.writeJson("HalfAdder.rc");
- p = RectComponentParams.readJson("HalfAdder.rc");
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- tmp = new GUIfulladder(model);
- SubComponentParams pC = tmp.calculateParams();
+ SimpleRectangularSubmodelComponent tmp = new GUIfulladder(model);
+ SubmodelComponentParams pC = tmp.calculateParams();
tmp.moveTo(1000, 100);
try
{
- pC.writeJson("FullAdder.sc");
- pC = SubComponentParams.readJson("FullAdder.sc");
+ pC.writeJson("FullAdder.json");
+ pC = SubmodelComponentParams.readJson("FullAdder.json");
}
catch (IOException e)
{
e.printStackTrace();
}
- SimpleRectangularSubmodelComponent adder = new GUIfulladder(model);
+ SimpleRectangularSubmodelComponent adder = (SimpleRectangularSubmodelComponent) GUICustomComponentCreator.create(model,
+ "FullAdder.json");
GUIManualSwitch swA = new GUIManualSwitch(model);
swA.moveTo(0, 0);
GUIBitDisplay bdZ = new GUIBitDisplay(model);
bdZ.moveTo(90, 30);
- new GUIWire(model, swA.getOutputPin(), adder.getInputPins().get(0));
- new GUIWire(model, swB.getOutputPin(), adder.getInputPins().get(1));
- new GUIWire(model, swC.getOutputPin(), adder.getInputPins().get(2));
+ new GUIWire(model, swA.getOutputPin(), adder.getPin("A"));
+ new GUIWire(model, swB.getOutputPin(), adder.getPin("B"));
+ new GUIWire(model, swC.getOutputPin(), adder.getPin("C"));
- new GUIWire(model, adder.getOutputPins().get(0), bdY.getInputPin());
- new GUIWire(model, adder.getOutputPins().get(1), bdZ.getInputPin());
+ new GUIWire(model, adder.getPin("Y"), bdY.getInputPin());
+ new GUIWire(model, adder.getPin("Z"), bdZ.getInputPin());
SubmodelComponent adder2 = GUICustomComponentCreator.create(model, pC, "");
bdZ = new GUIBitDisplay(model);
bdZ.moveTo(90, 85);
- new GUIWire(model, swA.getOutputPin(), adder2.getPins().get(0));
- new GUIWire(model, swB.getOutputPin(), adder2.getPins().get(1));
- new GUIWire(model, swC.getOutputPin(), adder2.getPins().get(2));
+ new GUIWire(model, swA.getOutputPin(), adder2.getPin("A"));
+ new GUIWire(model, swB.getOutputPin(), adder2.getPin("B"));
+ new GUIWire(model, swC.getOutputPin(), adder2.getPin("C"));
- new GUIWire(model, adder2.getPins().get(3), bdY.getInputPin());
- new GUIWire(model, adder2.getPins().get(4), bdZ.getInputPin());
+ new GUIWire(model, adder2.getPin("Y"), bdY.getInputPin());
+ new GUIWire(model, adder2.getPin("Z"), bdZ.getInputPin());
}
}
\ No newline at end of file