import era.mi.logic.components.gates.NotGate;
import era.mi.logic.components.gates.OrGate;
import era.mi.logic.timeline.Timeline.ExecutionResult;
-import era.mi.logic.wires.WireArray;
+import era.mi.logic.wires.Wire;
public class GUITest extends JPanel
{
private static final int OR_DELAY = 100;
private static final int NOT_DELAY = 100;
- WireArray r = new WireArray(1, WIRE_DELAY);
- WireArray s = new WireArray(1, WIRE_DELAY);
- WireArray t1 = new WireArray(1, WIRE_DELAY);
- WireArray t2 = new WireArray(1, WIRE_DELAY);
- WireArray q = new WireArray(1, WIRE_DELAY);
- WireArray nq = new WireArray(1, WIRE_DELAY);
+ Wire r = new Wire(1, WIRE_DELAY);
+ Wire s = new Wire(1, WIRE_DELAY);
+ Wire t1 = new Wire(1, WIRE_DELAY);
+ Wire t2 = new Wire(1, WIRE_DELAY);
+ Wire q = new Wire(1, WIRE_DELAY);
+ Wire nq = new Wire(1, WIRE_DELAY);
- ManualSwitch rIn = new ManualSwitch(r);
- ManualSwitch sIn = new ManualSwitch(s);
+ ManualSwitch rIn = new ManualSwitch(r.createReadWriteEnd());
+ ManualSwitch sIn = new ManualSwitch(s.createReadWriteEnd());
- OrGate or1 = new OrGate(OR_DELAY, t2, r, nq);
- OrGate or2 = new OrGate(OR_DELAY, t1, s, q);
- NotGate not1 = new NotGate(NOT_DELAY, t2, q);
- NotGate not2 = new NotGate(NOT_DELAY, t1, nq);
+ OrGate or1 = new OrGate(OR_DELAY, t2.createReadWriteEnd(), r.createReadOnlyEnd(), nq.createReadOnlyEnd());
+ OrGate or2 = new OrGate(OR_DELAY, t1.createReadWriteEnd(), s.createReadOnlyEnd(), q.createReadOnlyEnd());
+ NotGate not1 = new NotGate(NOT_DELAY, t2.createReadOnlyEnd(), q.createReadWriteEnd());
+ NotGate not2 = new NotGate(NOT_DELAY, t1.createReadOnlyEnd(), nq.createReadWriteEnd());
Map<ManualSwitch, Rectangle> switchMap = new HashMap<>();
g.setFont(g.getFont().deriveFont(Math.min(height, width) / 40f));
}
- private static void drawString(Graphics g, String s, int x, int y, double anchorX, double anchorY)
+ private void drawString(Graphics g, String s, int x, int y, double anchorX, double anchorY)
{
int h = g.getFontMetrics().getAscent();
int w = g.getFontMetrics().stringWidth(s);
g.drawString(s, x - (int) (w * anchorX), y + (int) (h * anchorY));
}
- private void drawWire(Graphics g, WireArray wa, String name, double x1, double y1, double x2, double y2)
+ private void drawWire(Graphics g, Wire wa, String name, double x1, double y1, double x2, double y2)
{
setTo(g, wa);
g.drawLine(gX(x1), gY(y1), gX(x2), gY(y2));
g.setColor(Color.BLACK);
}
- private static void setTo(Graphics g, WireArray wa)
+ private static void setTo(Graphics g, Wire wa)
{
switch (wa.getValue())
{