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.SimpleRectangularSubmodelComponent;
6 import net.mograsim.logic.ui.model.wires.GUIWire;
7 import net.mograsim.logic.ui.model.wires.Pin;
8 import net.mograsim.logic.ui.model.wires.WireCrossPoint;
10 public class GUImux1_4 extends SimpleRectangularSubmodelComponent
12 public GUImux1_4(ViewModelModifiable model)
14 super(model, 1, "GUImux1_4");
18 initSubmodelComponents();
21 @SuppressWarnings("unused")
22 private void initSubmodelComponents()
24 Pin S0 = getInputSubmodelPins().get(0);
25 Pin I0_1 = getInputSubmodelPins().get(1);
26 Pin I0_2 = getInputSubmodelPins().get(2);
27 Pin I0_3 = getInputSubmodelPins().get(3);
28 Pin I0_4 = getInputSubmodelPins().get(4);
29 Pin I1_1 = getInputSubmodelPins().get(5);
30 Pin I1_2 = getInputSubmodelPins().get(6);
31 Pin I1_3 = getInputSubmodelPins().get(7);
32 Pin I1_4 = getInputSubmodelPins().get(8);
33 Pin Y1 = getOutputSubmodelPins().get(0);
34 Pin Y2 = getOutputSubmodelPins().get(1);
35 Pin Y3 = getOutputSubmodelPins().get(2);
36 Pin Y4 = getOutputSubmodelPins().get(3);
38 GUImux1 mux1 = new GUImux1(submodelModifiable);
39 GUImux1 mux2 = new GUImux1(submodelModifiable);
40 GUImux1 mux3 = new GUImux1(submodelModifiable);
41 GUImux1 mux4 = new GUImux1(submodelModifiable);
43 WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
44 WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
45 WireCrossPoint cp3 = new WireCrossPoint(submodelModifiable, 1);
48 mux2.moveTo(30, 42.5);
49 mux3.moveTo(30, 77.5);
50 mux4.moveTo(30, 112.5);
55 new GUIWire(submodelModifiable, S0, cp1, new Point[0]);
56 new GUIWire(submodelModifiable, cp1, mux1.getInputPins().get(0), new Point[0]);
57 new GUIWire(submodelModifiable, I0_1, mux1.getInputPins().get(1), new Point(5, 37.5), new Point(5, 22.5));
58 new GUIWire(submodelModifiable, I1_1, mux1.getInputPins().get(2), new Point(10, 137.5), new Point(10, 32.5));
59 new GUIWire(submodelModifiable, mux1.getOutputPins().get(0), Y1, new Point[0]);
60 new GUIWire(submodelModifiable, cp1, cp2, new Point[0]);
61 new GUIWire(submodelModifiable, cp2, mux2.getInputPins().get(0), new Point[0]);
62 new GUIWire(submodelModifiable, I0_2, mux2.getInputPins().get(1), new Point(5, 62.5), new Point(5, 57.5));
63 new GUIWire(submodelModifiable, I1_2, mux2.getInputPins().get(2), new Point(15, 162.5), new Point(15, 67.5));
64 new GUIWire(submodelModifiable, mux2.getOutputPins().get(0), Y2);
65 new GUIWire(submodelModifiable, cp2, cp3, new Point[0]);
66 new GUIWire(submodelModifiable, cp3, mux3.getInputPins().get(0), new Point[0]);
67 new GUIWire(submodelModifiable, I0_3, mux3.getInputPins().get(1), new Point(5, 87.5), new Point(5, 92.5));
68 new GUIWire(submodelModifiable, I1_3, mux3.getInputPins().get(2), new Point(20, 187.5), new Point(20, 102.5));
69 new GUIWire(submodelModifiable, mux3.getOutputPins().get(0), Y3);
70 new GUIWire(submodelModifiable, cp3, mux4.getInputPins().get(0), new Point(25, 117.5));
71 new GUIWire(submodelModifiable, I0_4, mux4.getInputPins().get(1), new Point(5, 112.5), new Point(5, 127.5));
72 new GUIWire(submodelModifiable, I1_4, mux4.getInputPins().get(2), new Point(25, 212.5), new Point(25, 137.5));
73 new GUIWire(submodelModifiable, mux4.getOutputPins().get(0), Y4);