Timeline now passed via constructor
[Mograsim.git] / LogicUI / src / era / mi / gui / examples / RSLatchGUIExample.java
index 447b28f..cb5f178 100644 (file)
@@ -1,43 +1,46 @@
 package era.mi.gui.examples;
 
-import era.mi.gui.LogicUI;
+import era.mi.gui.LogicUICanvas;
+import era.mi.gui.LogicUIStandalone;
 import era.mi.gui.components.GUIManualSwitch;
 import era.mi.gui.components.GUINotGate;
 import era.mi.gui.components.GUIOrGate;
 import era.mi.gui.wires.WireConnectionPoint;
-import era.mi.logic.Simulation;
-import era.mi.logic.wires.WireArray;
+import era.mi.logic.timeline.Timeline;
+import era.mi.logic.wires.Wire;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 
 public class RSLatchGUIExample
 {
-       private static final int        WIRE_DELAY      = 40;
-       private static final int        OR_DELAY        = 100;
-       private static final int        NOT_DELAY       = 100;
+       private static final int WIRE_DELAY = 10;
+       private static final int OR_DELAY = 50;
+       private static final int NOT_DELAY = 50;
+       private static final Timeline t = new Timeline(11);
 
        public static void main(String[] args)
        {
-               LogicUI ui = new LogicUI();
-               initComponents(ui);
+               LogicUIStandalone ui = new LogicUIStandalone(t);
+               addComponentsAndWires(ui.getLogicUICanvas());
                ui.run();
        }
 
-       private static void initComponents(LogicUI ui)
+       public static void addComponentsAndWires(LogicUICanvas ui)
        {
-               Simulation.TIMELINE.reset();
-               WireArray r = new WireArray(1, WIRE_DELAY);
-               WireArray s = new WireArray(1, WIRE_DELAY);
-               WireArray t2 = new WireArray(1, WIRE_DELAY);
-               WireArray t1 = new WireArray(1, WIRE_DELAY);
-               WireArray q = new WireArray(1, WIRE_DELAY);
-               WireArray nq = new WireArray(1, WIRE_DELAY);
+               Wire r = new Wire(t, 1, WIRE_DELAY);
+               Wire s = new Wire(t, 1, WIRE_DELAY);
+               Wire t2 = new Wire(t, 1, WIRE_DELAY);
+               Wire t1 = new Wire(t, 1, WIRE_DELAY);
+               Wire q = new Wire(t, 1, WIRE_DELAY);
+               Wire nq = new Wire(t, 1, WIRE_DELAY);
 
-               GUIManualSwitch rIn = ui.addComponent(new GUIManualSwitch(r), 100, 100);
-               GUIManualSwitch sIn = ui.addComponent(new GUIManualSwitch(s), 100, 200);
-               GUIOrGate or1 = ui.addComponent(new GUIOrGate(OR_DELAY, t1, r, nq), 160, 102.5);
-               GUIOrGate or2 = ui.addComponent(new GUIOrGate(OR_DELAY, t2, q, s), 160, 192.5);
-               GUINotGate not1 = ui.addComponent(new GUINotGate(NOT_DELAY, t1, q), 200, 107.5);
-               GUINotGate not2 = ui.addComponent(new GUINotGate(NOT_DELAY, t2, nq), 200, 197.5);
+               GUIManualSwitch rIn = ui.addComponent(new GUIManualSwitch(t, r.createReadWriteEnd()), 100, 100);
+               GUIManualSwitch sIn = ui.addComponent(new GUIManualSwitch(t, s.createReadWriteEnd()), 100, 200);
+               GUIOrGate or1 = ui.addComponent(new GUIOrGate(t, OR_DELAY, t1.createReadWriteEnd(), r.createReadOnlyEnd(), nq.createReadOnlyEnd()),
+                               160, 102.5);
+               GUIOrGate or2 = ui.addComponent(new GUIOrGate(t, OR_DELAY, t2.createReadWriteEnd(), q.createReadOnlyEnd(), s.createReadOnlyEnd()),
+                               160, 192.5);
+               GUINotGate not1 = ui.addComponent(new GUINotGate(t, NOT_DELAY, t1.createReadOnlyEnd(), q.createReadWriteEnd()), 200, 107.5);
+               GUINotGate not2 = ui.addComponent(new GUINotGate(t, NOT_DELAY, t2.createReadOnlyEnd(), nq.createReadWriteEnd()), 200, 197.5);
 
                WireConnectionPoint p1 = ui.addComponent(new WireConnectionPoint(q, 3), 250, 112.5);
                WireConnectionPoint p2 = ui.addComponent(new WireConnectionPoint(nq, 3), 250, 202.5);