X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=LogicUI%2Foldsrc%2FRSLatchGUIExample.java;fp=LogicUI%2Foldsrc%2FRSLatchGUIExample.java;h=413525bf26996aaa0fd3c0013b0a5cdc1185a472;hb=50082bc2126d3f408acbdf4103bb4fdf29ac1d4f;hp=0fb1886aadf663d865b8bd6653941e3ebb6cff04;hpb=9d231e6aa28d5e6526c9f984ca82c1de2a37b559;p=Mograsim.git diff --git a/LogicUI/oldsrc/RSLatchGUIExample.java b/LogicUI/oldsrc/RSLatchGUIExample.java index 0fb1886a..413525bf 100644 --- a/LogicUI/oldsrc/RSLatchGUIExample.java +++ b/LogicUI/oldsrc/RSLatchGUIExample.java @@ -1,61 +1,62 @@ -package era.mi.gui.examples; - -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.GUIOrGateOld; -import era.mi.gui.wires.WireConnectionPoint; -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 = 10; - private static final int OR_DELAY = 50; - private static final int NOT_DELAY = 50; - - public static void main(String[] args) - { - Timeline t = new Timeline(11); - LogicUIStandalone ui = new LogicUIStandalone(t); - addComponentsAndWires(ui.getLogicUICanvas(), t); - ui.run(); - } - - public static void addComponentsAndWires(LogicUICanvas ui, Timeline t) - { - 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(t, r.createReadWriteEnd()), 100, 100); - GUIManualSwitch sIn = ui.addComponent(new GUIManualSwitch(t, s.createReadWriteEnd()), 100, 200); - GUIOrGateOld or1 = ui.addComponent(new GUIOrGateOld(t, OR_DELAY, t1.createReadWriteEnd(), r.createReadOnlyEnd(), nq.createReadOnlyEnd()), - 160, 102.5); - GUIOrGateOld or2 = ui.addComponent(new GUIOrGateOld(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); - WireConnectionPoint o1 = ui.addComponent(new WireConnectionPoint(q, 1), 270, 112.5); - WireConnectionPoint o2 = ui.addComponent(new WireConnectionPoint(nq, 1), 270, 202.5); - - ui.addWire(rIn, 0, or1, 0); - ui.addWire(sIn, 0, or2, 1); - ui.addWire(or1, 2, not1, 0); - ui.addWire(or2, 2, not2, 0); - ui.addWire(not1, 1, p1, 0); - ui.addWire(not2, 1, p2, 0); - ui.addWire(p1, 1, or2, 0, new Point(250, 130), new Point(140, 185), new Point(140, 197.5)); - ui.addWire(p2, 1, or1, 1, new Point(250, 185), new Point(140, 130), new Point(140, 117.5)); - ui.addWire(p1, 2, o1, 0); - ui.addWire(p2, 2, o2, 0); - } +package era.mi.gui.examples; + +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.GUIOrGateOld; +import era.mi.gui.wires.WireConnectionPoint; +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 = 10; + private static final int OR_DELAY = 50; + private static final int NOT_DELAY = 50; + + public static void main(String[] args) + { + Timeline t = new Timeline(11); + t.setTimeFunction(() -> System.currentTimeMillis()); // real time simulation + LogicUIStandalone ui = new LogicUIStandalone(t); + addComponentsAndWires(ui.getLogicUICanvas(), t); + ui.run(); + } + + public static void addComponentsAndWires(LogicUICanvas ui, Timeline t) + { + 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(t, r.createReadWriteEnd()), 100, 100); + GUIManualSwitch sIn = ui.addComponent(new GUIManualSwitch(t, s.createReadWriteEnd()), 100, 200); + GUIOrGateOld or1 = ui.addComponent(new GUIOrGateOld(t, OR_DELAY, t1.createReadWriteEnd(), r.createReadOnlyEnd(), nq.createReadOnlyEnd()), + 160, 102.5); + GUIOrGateOld or2 = ui.addComponent(new GUIOrGateOld(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); + WireConnectionPoint o1 = ui.addComponent(new WireConnectionPoint(q, 1), 270, 112.5); + WireConnectionPoint o2 = ui.addComponent(new WireConnectionPoint(nq, 1), 270, 202.5); + + ui.addWire(rIn, 0, or1, 0); + ui.addWire(sIn, 0, or2, 1); + ui.addWire(or1, 2, not1, 0); + ui.addWire(or2, 2, not2, 0); + ui.addWire(not1, 1, p1, 0); + ui.addWire(not2, 1, p2, 0); + ui.addWire(p1, 1, or2, 0, new Point(250, 130), new Point(140, 185), new Point(140, 197.5)); + ui.addWire(p2, 1, or1, 1, new Point(250, 185), new Point(140, 130), new Point(140, 117.5)); + ui.addWire(p1, 2, o1, 0); + ui.addWire(p2, 2, o2, 0); + } } \ No newline at end of file