1 package net.mograsim.logic.ui.model.components.mi.nandbased;
3 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
4 import net.mograsim.logic.ui.model.ViewModelModifiable;
5 import net.mograsim.logic.ui.model.components.submodels.SimpleRectangularSubmodelComponent;
6 import net.mograsim.logic.ui.model.wires.GUIWire;
7 import net.mograsim.logic.ui.model.wires.Pin;
9 public class GUIandor414 extends SimpleRectangularSubmodelComponent
11 public GUIandor414(ViewModelModifiable model)
13 super(model, 1, "GUIandor414");
15 setInputPins("C1", "C2", "C3", "C4", "A1", "A2", "A3", "A4", "B");
16 setOutputPins("Y1", "Y2", "Y3", "Y4");
17 initSubmodelComponents();
20 @SuppressWarnings("unused") // for GUIWires being created
21 private void initSubmodelComponents()
23 Pin C1 = getSubmodelPin("C1");
24 Pin C2 = getSubmodelPin("C2");
25 Pin C3 = getSubmodelPin("C3");
26 Pin C4 = getSubmodelPin("C4");
27 Pin A1 = getSubmodelPin("A1");
28 Pin A2 = getSubmodelPin("A2");
29 Pin A3 = getSubmodelPin("A3");
30 Pin A4 = getSubmodelPin("A4");
31 Pin B = getSubmodelPin("B");
32 Pin Y1 = getSubmodelPin("Y1");
33 Pin Y2 = getSubmodelPin("Y2");
34 Pin Y3 = getSubmodelPin("Y3");
35 Pin Y4 = getSubmodelPin("Y4");
37 GUIand41 and = new GUIand41(submodelModifiable);
38 GUIor_4 or = new GUIor_4(submodelModifiable);
40 and.moveTo(15, 137.5);
43 new GUIWire(submodelModifiable, A1, and.getPin("A1"), new Point(10, 112.5), new Point(10, 142.5));
44 new GUIWire(submodelModifiable, A2, and.getPin("A2"), new Point(5, 137.5), new Point(5, 152.5));
45 new GUIWire(submodelModifiable, A3, and.getPin("A3"), new Point[0]);
46 new GUIWire(submodelModifiable, A4, and.getPin("A4"), new Point(5, 187.5), new Point(5, 172.5));
47 new GUIWire(submodelModifiable, B, and.getPin("B"), new Point(10, 212.5), new Point(10, 182.5));
48 new GUIWire(submodelModifiable, C1, or.getPin("A1"), new Point(10, 12.5), new Point(10, 42.5));
49 new GUIWire(submodelModifiable, C2, or.getPin("A2"), new Point(5, 37.5), new Point(5, 52.5));
50 new GUIWire(submodelModifiable, C3, or.getPin("A3"), new Point[0]);
51 new GUIWire(submodelModifiable, C4, or.getPin("A4"), new Point(5, 87.5), new Point(5, 72.5));
52 new GUIWire(submodelModifiable, and.getPin("Y1"), or.getPin("B1"), new Point(70, 142.5), new Point(70, 120), new Point(30, 120),
54 new GUIWire(submodelModifiable, and.getPin("Y2"), or.getPin("B2"), new Point(65, 152.5), new Point(65, 125), new Point(25, 125),
56 new GUIWire(submodelModifiable, and.getPin("Y3"), or.getPin("B3"), new Point(60, 162.5), new Point(60, 130), new Point(20, 130),
57 new Point(20, 102.5));
58 new GUIWire(submodelModifiable, and.getPin("Y4"), or.getPin("B4"), new Point(55, 172.5), new Point(55, 135), new Point(15, 135),
59 new Point(15, 112.5));
60 new GUIWire(submodelModifiable, or.getPin("Y1"), Y1, new Point(75, 42.5), new Point(75, 12.5));
61 new GUIWire(submodelModifiable, or.getPin("Y2"), Y2, new Point(80, 52.5), new Point(80, 37.5));
62 new GUIWire(submodelModifiable, or.getPin("Y3"), Y3, new Point[0]);
63 new GUIWire(submodelModifiable, or.getPin("Y4"), Y4, new Point(80, 72.5), new Point(80, 87.5));