package era.mi.gui.components;\r
\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
/**\r
* Returns the n-th wire array connected to this component.\r
*/\r
- public WireEnd getConnectedWireEnd(int connectionIndex);\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex);\r
\r
/**\r
* Returns relative coordinates where the n-th wire array is connected to this component.\r
import java.util.List;\r
\r
import era.mi.logic.components.gates.AndGate;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Font;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
\r
private final int inputCount;\r
private final double height;\r
- private final List<WireEnd> connectedWireEnds;\r
+ private final List<ReadEnd> connectedWireEnds;\r
private final List<Point> wireEndConnectionPoints;\r
\r
- public GUIAndGate(int processTime, WireEnd out, WireEnd... in)\r
+ public GUIAndGate(int processTime, ReadWriteEnd out, ReadEnd... in)\r
{\r
super(processTime, out, in);\r
\r
- List<WireEnd> connectedWireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> connectedWireEndsModifiable = new ArrayList<>();\r
List<Point> wireEndConnectionPointsModifiable = new ArrayList<>();\r
\r
this.inputCount = in.length;\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return connectedWireEnds.get(connectionIndex);\r
}\r
\r
import era.mi.logic.components.ManualSwitch;\r
import era.mi.logic.types.Bit;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Font;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
bitNames = Collections.unmodifiableMap(bitNamesModifiable);\r
}\r
\r
- private final WireEnd we;\r
- private final List<WireEnd> connectedWireEnds;\r
+ private final ReadEnd we;\r
+ private final List<ReadEnd> connectedWireEnds;\r
private final List<Point> wireEndConnectionPoints;\r
\r
- public GUIManualSwitch(WireEnd output)\r
+ public GUIManualSwitch(ReadWriteEnd output)\r
{\r
super(output);\r
\r
this.we = output;\r
\r
- List<WireEnd> connectedWireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> connectedWireEndsModifiable = new ArrayList<>();\r
List<Point> wireEndConnectionPointsModifiable = new ArrayList<>();\r
\r
connectedWireEndsModifiable.add(output);\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return connectedWireEnds.get(connectionIndex);\r
}\r
import java.util.List;\r
\r
import era.mi.logic.components.Merger;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
{\r
private final int inputCount;\r
private final double height;\r
- private final List<WireEnd> connectedWireEnds;\r
+ private final List<ReadEnd> connectedWireEnds;\r
private final List<Point> WireEndConnectionPoints;\r
\r
- public GUIMerger(WireEnd union, WireEnd... inputs)\r
+ public GUIMerger(ReadWriteEnd union, ReadEnd... inputs)\r
{\r
super(union, inputs);\r
\r
- List<WireEnd> connectedWireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> connectedWireEndsModifiable = new ArrayList<>();\r
List<Point> WireEndConnectionPointsModifiable = new ArrayList<>();\r
\r
this.inputCount = inputs.length;\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return connectedWireEnds.get(connectionIndex);\r
}\r
import java.util.List;\r
\r
import era.mi.logic.components.Mux;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
public class GUIMux extends Mux implements BasicGUIComponent\r
{\r
private final double height;\r
- private final List<WireEnd> connectedWireEnds;\r
+ private final List<ReadEnd> connectedWireEnds;\r
private final List<Point> WireEndConnectionPoints;\r
\r
- public GUIMux(int processTime, WireEnd out, WireEnd select, WireEnd... inputs)\r
+ public GUIMux(int processTime, ReadWriteEnd out, ReadEnd select, ReadEnd... inputs)\r
{\r
super(processTime, out, select, inputs);\r
\r
height = 10;\r
this.height = height;\r
\r
- List<WireEnd> connectedWireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> connectedWireEndsModifiable = new ArrayList<>();\r
List<Point> WireEndConnectionPointsModifiable = new ArrayList<>();\r
\r
connectedWireEndsModifiable.add(out);\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return connectedWireEnds.get(connectionIndex);\r
}\r
import java.util.List;\r
\r
import era.mi.logic.components.gates.NotGate;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Font;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
{\r
private static final String LABEL = "\u22651";// >=1\r
\r
- private final List<WireEnd> connectedWireEnds;\r
+ private final List<ReadEnd> connectedWireEnds;\r
private final List<Point> WireEndConnectionPoints;\r
\r
- public GUINotGate(int processTime, WireEnd in, WireEnd out)\r
+ public GUINotGate(int processTime, ReadEnd in, ReadWriteEnd out)\r
{\r
super(processTime, in, out);\r
\r
- List<WireEnd> connectedWireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> connectedWireEndsModifiable = new ArrayList<>();\r
List<Point> WireEndConnectionPointsModifiable = new ArrayList<>();\r
\r
connectedWireEndsModifiable.add(in);\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return connectedWireEnds.get(connectionIndex);\r
}\r
import java.util.List;\r
\r
import era.mi.logic.components.gates.OrGate;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Font;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
\r
private final int inputCount;\r
private final double height;\r
- private final List<WireEnd> connectedWireEnds;\r
+ private final List<ReadEnd> connectedWireEnds;\r
private final List<Point> WireEndConnectionPoints;\r
\r
- public GUIOrGate(int processTime, WireEnd out, WireEnd... in)\r
+ public GUIOrGate(int processTime, ReadWriteEnd out, ReadEnd... in)\r
{\r
super(processTime, out, in);\r
\r
- List<WireEnd> connectedWireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> connectedWireEndsModifiable = new ArrayList<>();\r
List<Point> WireEndConnectionPointsModifiable = new ArrayList<>();\r
\r
this.inputCount = in.length;\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return connectedWireEnds.get(connectionIndex);\r
}\r
import java.util.List;\r
\r
import era.mi.logic.components.Splitter;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
{\r
private final int outputCount;\r
private final double height;\r
- private final List<WireEnd> connectedWireEnds;\r
+ private final List<ReadEnd> connectedWireEnds;\r
private final List<Point> WireEndConnectionPoints;\r
\r
- public GUISplitter(WireEnd input, WireEnd... outputs)\r
+ public GUISplitter(ReadEnd input, ReadWriteEnd... outputs)\r
{\r
super(input, outputs);\r
\r
- List<WireEnd> connectedWireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> connectedWireEndsModifiable = new ArrayList<>();\r
List<Point> WireEndConnectionPointsModifiable = new ArrayList<>();\r
\r
this.outputCount = outputs.length;\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return connectedWireEnds.get(connectionIndex);\r
}\r
Wire q = new Wire(1, WIRE_DELAY);\r
Wire nq = new Wire(1, WIRE_DELAY);\r
\r
- GUIManualSwitch rIn = ui.addComponent(new GUIManualSwitch(r.createEnd()), 100, 100);\r
- GUIManualSwitch sIn = ui.addComponent(new GUIManualSwitch(s.createEnd()), 100, 200);\r
- GUIOrGate or1 = ui.addComponent(new GUIOrGate(OR_DELAY, t1.createEnd(), r.createReadOnlyEnd(), nq.createReadOnlyEnd()), 160, 102.5);\r
- GUIOrGate or2 = ui.addComponent(new GUIOrGate(OR_DELAY, t2.createEnd(), q.createReadOnlyEnd(), s.createReadOnlyEnd()), 160, 192.5);\r
- GUINotGate not1 = ui.addComponent(new GUINotGate(NOT_DELAY, t1.createReadOnlyEnd(), q.createEnd()), 200, 107.5);\r
- GUINotGate not2 = ui.addComponent(new GUINotGate(NOT_DELAY, t2.createReadOnlyEnd(), nq.createEnd()), 200, 197.5);\r
+ GUIManualSwitch rIn = ui.addComponent(new GUIManualSwitch(r.createReadWriteEnd()), 100, 100);\r
+ GUIManualSwitch sIn = ui.addComponent(new GUIManualSwitch(s.createReadWriteEnd()), 100, 200);\r
+ GUIOrGate or1 = ui.addComponent(new GUIOrGate(OR_DELAY, t1.createReadWriteEnd(), r.createReadOnlyEnd(), nq.createReadOnlyEnd()), 160, 102.5);\r
+ GUIOrGate or2 = ui.addComponent(new GUIOrGate(OR_DELAY, t2.createReadWriteEnd(), q.createReadOnlyEnd(), s.createReadOnlyEnd()), 160, 192.5);\r
+ GUINotGate not1 = ui.addComponent(new GUINotGate(NOT_DELAY, t1.createReadOnlyEnd(), q.createReadWriteEnd()), 200, 107.5);\r
+ GUINotGate not2 = ui.addComponent(new GUINotGate(NOT_DELAY, t2.createReadOnlyEnd(), nq.createReadWriteEnd()), 200, 197.5);\r
\r
WireConnectionPoint p1 = ui.addComponent(new WireConnectionPoint(q, 3), 250, 112.5);\r
WireConnectionPoint p2 = ui.addComponent(new WireConnectionPoint(nq, 3), 250, 202.5);\r
this.path[this.path.length - 2] = component2Pos.x + component2ConnectionPoint.x;\r
this.path[this.path.length - 1] = component2Pos.y + component2ConnectionPoint.y;\r
\r
- wire.addObserver((initiator, oldValues) -> redraw.run());\r
+ wire.createReadOnlyEnd().addObserver((initiator, oldValues) -> redraw.run());\r
}\r
\r
public void render(GeneralGC gc)\r
\r
import era.mi.gui.components.BasicGUIComponent;\r
import era.mi.logic.wires.Wire;\r
-import era.mi.logic.wires.Wire.WireEnd;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
public class WireConnectionPoint implements BasicGUIComponent\r
{\r
private final Wire wire;\r
- private final List<WireEnd> wireEnds;\r
+ private final List<ReadEnd> wireEnds;\r
private final int wiresCrossing;\r
\r
public WireConnectionPoint(Wire wire, int wiresCrossing)\r
{\r
this.wire = wire;\r
- List<WireEnd> wireEndsModifiable = new ArrayList<>();\r
+ List<ReadEnd> wireEndsModifiable = new ArrayList<>();\r
for (int i = 0; i < wiresCrossing; i++)\r
wireEndsModifiable.add(wire.createReadOnlyEnd());\r
wireEnds = Collections.unmodifiableList(wireEndsModifiable);\r
}\r
\r
@Override\r
- public WireEnd getConnectedWireEnd(int connectionIndex)\r
+ public ReadEnd getConnectedWireEnd(int connectionIndex)\r
{\r
return wireEnds.get(connectionIndex);\r
}\r