1 package net.mograsim.logic.model.am2900.am2904;
3 import net.haspamelodica.swt.helper.gcs.GeneralGC;
4 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
5 import net.mograsim.logic.core.types.Bit;
6 import net.mograsim.logic.core.types.BitVector;
7 import net.mograsim.logic.model.SimpleLogicUIStandalone;
8 import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects;
9 import net.mograsim.logic.model.am2900.Am2900Loader;
10 import net.mograsim.logic.model.model.ViewModelModifiable;
11 import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch;
12 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
13 import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
14 import net.mograsim.logic.model.serializing.IdentifyParams;
15 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
16 import net.mograsim.logic.model.snippets.Renderer;
18 public class Am2904Testbench
20 public static void main(String[] args)
23 SimpleLogicUIStandalone.executeVisualisation(Am2904Testbench::create, Am2904Testbench::beforeRun);
26 public static void create(ViewModelModifiable model)
28 // TODO replace with proper ViewModel deserialization
29 DeserializedSubmodelComponent testbench = (DeserializedSubmodelComponent) IndirectGUIComponentCreator.createComponent(model,
30 "jsonfile:GUIAm2904Testbench.json", "testbench");
31 testbench.setSize(1000, 1000);
32 testbench.setOutlineRenderer(new Renderer()
35 public String getIDForSerializing(IdentifyParams idParams)
41 public Void getParamsForSerializing(IdentifyParams idParams)
47 public void render(GeneralGC gc, Rectangle visibleRegion)
54 public static void beforeRun(VisualisationObjects vis)
56 ((SubmodelComponent) vis.model.getComponentsByName().get("testbench")).submodel.getComponentsByName().values().forEach(c ->
58 if (c instanceof GUIManualSwitch)
60 GUIManualSwitch cCasted = (GUIManualSwitch) c;
61 cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth));