SimpleRectangularSubmodelComponent now supports pin names
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / mi / nandbased / GUIram2.java
1 package net.mograsim.logic.ui.model.components.mi.nandbased;
2
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;
9
10 public class GUIram2 extends SimpleRectangularSubmodelComponent
11 {
12         public GUIram2(ViewModelModifiable model)
13         {
14                 super(model, 1, "GUIram2");
15                 setSubmodelScale(.1);
16                 setInputPins("A0", "A1", "B0", "B1", "WE", "D1", "D2", "D3", "D4");
17                 setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4");
18                 initSubmodelComponents();
19         }
20
21         @SuppressWarnings("unused") // for GUIWires being created
22         private void initSubmodelComponents()
23         {
24                 //@formatter:off
25                 Pin  A0 = getInputSubmodelPins() .get(0);
26                 Pin  A1 = getInputSubmodelPins() .get(1);
27                 Pin  B0 = getInputSubmodelPins() .get(2);
28                 Pin  B1 = getInputSubmodelPins() .get(3);
29                 Pin  WE = getInputSubmodelPins() .get(4);
30                 Pin  D1 = getInputSubmodelPins() .get(5);
31                 Pin  D2 = getInputSubmodelPins() .get(6);
32                 Pin  D3 = getInputSubmodelPins() .get(7);
33                 Pin  D4 = getInputSubmodelPins() .get(8);
34                 Pin QA1 = getOutputSubmodelPins().get(0);
35                 Pin QA2 = getOutputSubmodelPins().get(1);
36                 Pin QA3 = getOutputSubmodelPins().get(2);
37                 Pin QA4 = getOutputSubmodelPins().get(3);
38                 Pin QB1 = getOutputSubmodelPins().get(4);
39                 Pin QB2 = getOutputSubmodelPins().get(5);
40                 Pin QB3 = getOutputSubmodelPins().get(6);
41                 Pin QB4 = getOutputSubmodelPins().get(7);
42
43                 GUIdemux2   demuxA   = new GUIdemux2  (submodelModifiable);
44                 GUIdemux2   demuxB   = new GUIdemux2  (submodelModifiable);
45                 GUIand41    weAndB   = new GUIand41   (submodelModifiable);
46                 GUIdlatch4  cell00   = new GUIdlatch4 (submodelModifiable);
47                 GUIdlatch4  cell01   = new GUIdlatch4 (submodelModifiable);
48                 GUIdlatch4  cell10   = new GUIdlatch4 (submodelModifiable);
49                 GUIdlatch4  cell11   = new GUIdlatch4 (submodelModifiable);
50                 GUIand41    andA00   = new GUIand41   (submodelModifiable);
51                 GUIandor414 andorA01 = new GUIandor414(submodelModifiable);
52                 GUIandor414 andorA10 = new GUIandor414(submodelModifiable);
53                 GUIandor414 andorA11 = new GUIandor414(submodelModifiable);
54                 GUIand41    andB00   = new GUIand41   (submodelModifiable);
55                 GUIandor414 andorB01 = new GUIandor414(submodelModifiable);
56                 GUIandor414 andorB10 = new GUIandor414(submodelModifiable);
57                 GUIandor414 andorB11 = new GUIandor414(submodelModifiable);
58
59                 WireCrossPoint cpB00  = new WireCrossPoint(submodelModifiable, 1);
60                 WireCrossPoint cpB01  = new WireCrossPoint(submodelModifiable, 1);
61                 WireCrossPoint cpB10  = new WireCrossPoint(submodelModifiable, 1);
62                 WireCrossPoint cpB11  = new WireCrossPoint(submodelModifiable, 1);
63                 WireCrossPoint cpD1in = new WireCrossPoint(submodelModifiable, 1);
64                 WireCrossPoint cpD2in = new WireCrossPoint(submodelModifiable, 1);
65                 WireCrossPoint cpD3in = new WireCrossPoint(submodelModifiable, 1);
66                 WireCrossPoint cpD4in = new WireCrossPoint(submodelModifiable, 1);
67                 WireCrossPoint cpD101 = new WireCrossPoint(submodelModifiable, 1);
68                 WireCrossPoint cpD201 = new WireCrossPoint(submodelModifiable, 1);
69                 WireCrossPoint cpD301 = new WireCrossPoint(submodelModifiable, 1);
70                 WireCrossPoint cpD401 = new WireCrossPoint(submodelModifiable, 1);
71                 WireCrossPoint cpD110 = new WireCrossPoint(submodelModifiable, 1);
72                 WireCrossPoint cpD210 = new WireCrossPoint(submodelModifiable, 1);
73                 WireCrossPoint cpD310 = new WireCrossPoint(submodelModifiable, 1);
74                 WireCrossPoint cpD410 = new WireCrossPoint(submodelModifiable, 1);
75                 WireCrossPoint cpQ100 = new WireCrossPoint(submodelModifiable, 1);
76                 WireCrossPoint cpQ200 = new WireCrossPoint(submodelModifiable, 1);
77                 WireCrossPoint cpQ300 = new WireCrossPoint(submodelModifiable, 1);
78                 WireCrossPoint cpQ400 = new WireCrossPoint(submodelModifiable, 1);
79                 WireCrossPoint cpQ101 = new WireCrossPoint(submodelModifiable, 1);
80                 WireCrossPoint cpQ201 = new WireCrossPoint(submodelModifiable, 1);
81                 WireCrossPoint cpQ301 = new WireCrossPoint(submodelModifiable, 1);
82                 WireCrossPoint cpQ401 = new WireCrossPoint(submodelModifiable, 1);
83                 WireCrossPoint cpQ110 = new WireCrossPoint(submodelModifiable, 1);
84                 WireCrossPoint cpQ210 = new WireCrossPoint(submodelModifiable, 1);
85                 WireCrossPoint cpQ310 = new WireCrossPoint(submodelModifiable, 1);
86                 WireCrossPoint cpQ410 = new WireCrossPoint(submodelModifiable, 1);
87                 WireCrossPoint cpQ111 = new WireCrossPoint(submodelModifiable, 1);
88                 WireCrossPoint cpQ211 = new WireCrossPoint(submodelModifiable, 1);
89                 WireCrossPoint cpQ311 = new WireCrossPoint(submodelModifiable, 1);
90                 WireCrossPoint cpQ411 = new WireCrossPoint(submodelModifiable, 1);
91
92                 demuxA  .moveTo( 55,  45);
93                 demuxB  .moveTo( 55, 150);
94                 weAndB  .moveTo(130, 150);
95                 cell00  .moveTo( 55, 325);
96                 cell01  .moveTo( 55, 475);
97                 cell10  .moveTo( 55, 625);
98                 cell11  .moveTo( 55, 775);
99                 andA00  .moveTo(235, 375);
100                 andorA01.moveTo(235, 485);
101                 andorA10.moveTo(235, 635);
102                 andorA11.moveTo(235, 785);
103                 andB00  .moveTo(135, 325);
104                 andorB01.moveTo(135, 435);
105                 andorB10.moveTo(135, 585);
106                 andorB11.moveTo(135, 735);
107                 cpB00 .moveCenterTo(110, 155);
108                 cpB01 .moveCenterTo(105, 165);
109                 cpB10 .moveCenterTo(100, 175);
110                 cpB11 .moveCenterTo( 95, 185);
111                 cpD1in.moveCenterTo( 35, 550);
112                 cpD2in.moveCenterTo( 40, 650);
113                 cpD3in.moveCenterTo( 45, 750);
114                 cpD4in.moveCenterTo( 50, 810);
115                 cpD101.moveCenterTo( 35, 480);
116                 cpD201.moveCenterTo( 40, 490);
117                 cpD301.moveCenterTo( 45, 500);
118                 cpD401.moveCenterTo( 50, 510);
119                 cpD110.moveCenterTo( 35, 630);
120                 cpD210.moveCenterTo( 40, 640);
121                 cpD310.moveCenterTo( 45, 650);
122                 cpD410.moveCenterTo( 50, 660);
123                 cpQ100.moveCenterTo(130, 330);
124                 cpQ200.moveCenterTo(125, 340);
125                 cpQ300.moveCenterTo(120, 350);
126                 cpQ400.moveCenterTo(115, 360);
127                 cpQ101.moveCenterTo(130, 480);
128                 cpQ201.moveCenterTo(125, 490);
129                 cpQ301.moveCenterTo(120, 500);
130                 cpQ401.moveCenterTo(115, 510);
131                 cpQ110.moveCenterTo(130, 630);
132                 cpQ210.moveCenterTo(125, 640);
133                 cpQ310.moveCenterTo(120, 650);
134                 cpQ410.moveCenterTo(115, 660);
135                 cpQ111.moveCenterTo(130, 780);
136                 cpQ211.moveCenterTo(125, 790);
137                 cpQ311.moveCenterTo(120, 800);
138                 cpQ411.moveCenterTo(115, 810);
139
140                 new GUIWire(submodelModifiable, A0, demuxA.getInputPins().get(0), new Point[0]);
141                 new GUIWire(submodelModifiable, A1, demuxA.getInputPins().get(1), new Point(10, 150), new Point(10,  60));
142                 new GUIWire(submodelModifiable, B0, demuxB.getInputPins().get(0), new Point( 5, 250), new Point( 5, 155));
143                 new GUIWire(submodelModifiable, B1, demuxB.getInputPins().get(1), new Point(10, 350), new Point(10, 165));
144                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(0), cpB00, new Point[0]);
145                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(1), cpB01, new Point[0]);
146                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(2), cpB10, new Point[0]);
147                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(3), cpB11, new Point[0]);
148                 new GUIWire(submodelModifiable, cpB00, weAndB.getInputPins().get(0), new Point[0]);
149                 new GUIWire(submodelModifiable, cpB01, weAndB.getInputPins().get(1), new Point[0]);
150                 new GUIWire(submodelModifiable, cpB10, weAndB.getInputPins().get(2), new Point[0]);
151                 new GUIWire(submodelModifiable, cpB11, weAndB.getInputPins().get(3), new Point[0]);
152                 new GUIWire(submodelModifiable, WE, weAndB.getInputPins().get(4), new Point(5, 450), new Point(5, 300), new Point(125, 300), new Point(125, 195));
153                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(0), cell00.getInputPins().get(4), new Point(185, 155), new Point(185, 250), new Point(30, 250), new Point(30, 370));
154                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(1), cell01.getInputPins().get(4), new Point(180, 165), new Point(180, 245), new Point(25, 245), new Point(25, 520));
155                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(2), cell10.getInputPins().get(4), new Point(175, 175), new Point(175, 240), new Point(20, 240), new Point(20, 670));
156                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(3), cell11.getInputPins().get(4), new Point(170, 185), new Point(170, 235), new Point(15, 235), new Point(15, 820));
157                 new GUIWire(submodelModifiable, D1, cpD1in                          , new Point[0]);
158                 new GUIWire(submodelModifiable, D2, cpD2in                          , new Point[0]);
159                 new GUIWire(submodelModifiable, D3, cpD3in                          , new Point[0]);
160                 new GUIWire(submodelModifiable, D4, cpD4in                          , new Point(50, 850));
161                 new GUIWire(submodelModifiable, cpD101, cell00.getInputPins().get(0), new Point(35, 330));
162                 new GUIWire(submodelModifiable, cpD201, cell00.getInputPins().get(1), new Point(40, 340));
163                 new GUIWire(submodelModifiable, cpD301, cell00.getInputPins().get(2), new Point(45, 350));
164                 new GUIWire(submodelModifiable, cpD401, cell00.getInputPins().get(3), new Point(50, 360));
165                 new GUIWire(submodelModifiable, cpD101, cell01.getInputPins().get(0), new Point[0]);
166                 new GUIWire(submodelModifiable, cpD201, cell01.getInputPins().get(1), new Point[0]);
167                 new GUIWire(submodelModifiable, cpD301, cell01.getInputPins().get(2), new Point[0]);
168                 new GUIWire(submodelModifiable, cpD401, cell01.getInputPins().get(3), new Point[0]);
169                 new GUIWire(submodelModifiable, cpD101, cpD1in                      , new Point[0]);
170                 new GUIWire(submodelModifiable, cpD1in, cpD110                      , new Point[0]);
171                 new GUIWire(submodelModifiable, cpD201, cpD210                      , new Point[0]);
172                 new GUIWire(submodelModifiable, cpD301, cpD310                      , new Point[0]);
173                 new GUIWire(submodelModifiable, cpD401, cpD410                      , new Point[0]);
174                 new GUIWire(submodelModifiable, cpD110, cell10.getInputPins().get(0), new Point[0]);
175                 new GUIWire(submodelModifiable, cpD210, cell10.getInputPins().get(1), new Point[0]);
176                 new GUIWire(submodelModifiable, cpD310, cell10.getInputPins().get(2), new Point[0]);
177                 new GUIWire(submodelModifiable, cpD410, cell10.getInputPins().get(3), new Point[0]);
178                 new GUIWire(submodelModifiable, cpD210, cpD2in                      , new Point[0]);
179                 new GUIWire(submodelModifiable, cpD310, cpD3in                      , new Point[0]);
180                 new GUIWire(submodelModifiable, cpD410, cpD4in                      , new Point[0]);
181                 new GUIWire(submodelModifiable, cpD110, cell11.getInputPins().get(0), new Point(35, 780));
182                 new GUIWire(submodelModifiable, cpD2in, cell11.getInputPins().get(1), new Point(40, 790));
183                 new GUIWire(submodelModifiable, cpD3in, cell11.getInputPins().get(2), new Point(45, 800));
184                 new GUIWire(submodelModifiable, cpD4in, cell11.getInputPins().get(3), new Point[0]);
185                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(0), cpQ100, new Point[0]);
186                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(1), cpQ200, new Point[0]);
187                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(2), cpQ300, new Point[0]);
188                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(3), cpQ400, new Point[0]);
189                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(0), cpQ101, new Point[0]);
190                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(1), cpQ201, new Point[0]);
191                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(2), cpQ301, new Point[0]);
192                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(3), cpQ401, new Point[0]);
193                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(0), cpQ110, new Point[0]);
194                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(1), cpQ210, new Point[0]);
195                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(2), cpQ310, new Point[0]);
196                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(3), cpQ410, new Point[0]);
197                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(0), cpQ111, new Point[0]);
198                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(1), cpQ211, new Point[0]);
199                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(2), cpQ311, new Point[0]);
200                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(3), cpQ411, new Point[0]);
201                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(0), andA00  .getInputPins().get(4), new Point(210, 50), new Point(210, 420));
202                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(1), andorA01.getInputPins().get(8), new Point(205, 60), new Point(205, 570));
203                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(2), andorA10.getInputPins().get(8), new Point(200, 70), new Point(200, 720));
204                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(3), andorA11.getInputPins().get(8), new Point(195, 80), new Point(195, 870));
205                 new GUIWire(submodelModifiable, cpB00 , andB00  .getInputPins().get(4), new Point(110, 370));
206                 new GUIWire(submodelModifiable, cpB01 , andorB01.getInputPins().get(8), new Point(105, 520));
207                 new GUIWire(submodelModifiable, cpB10 , andorB10.getInputPins().get(8), new Point(100, 670));
208                 new GUIWire(submodelModifiable, cpB11 , andorB11.getInputPins().get(8), new Point(95, 820));
209                 new GUIWire(submodelModifiable, cpQ100, andA00  .getInputPins().get(0), new Point(130, 380));
210                 new GUIWire(submodelModifiable, cpQ200, andA00  .getInputPins().get(1), new Point(125, 390));
211                 new GUIWire(submodelModifiable, cpQ300, andA00  .getInputPins().get(2), new Point(120, 400));
212                 new GUIWire(submodelModifiable, cpQ400, andA00  .getInputPins().get(3), new Point(115, 410));
213                 new GUIWire(submodelModifiable, cpQ101, andorA01.getInputPins().get(4), new Point(130, 530));
214                 new GUIWire(submodelModifiable, cpQ201, andorA01.getInputPins().get(5), new Point(125, 540));
215                 new GUIWire(submodelModifiable, cpQ301, andorA01.getInputPins().get(6), new Point(120, 550));
216                 new GUIWire(submodelModifiable, cpQ401, andorA01.getInputPins().get(7), new Point(115, 560));
217                 new GUIWire(submodelModifiable, cpQ110, andorA10.getInputPins().get(4), new Point(130, 680));
218                 new GUIWire(submodelModifiable, cpQ210, andorA10.getInputPins().get(5), new Point(125, 690));
219                 new GUIWire(submodelModifiable, cpQ310, andorA10.getInputPins().get(6), new Point(120, 700));
220                 new GUIWire(submodelModifiable, cpQ410, andorA10.getInputPins().get(7), new Point(115, 710));
221                 new GUIWire(submodelModifiable, cpQ111, andorA11.getInputPins().get(4), new Point(130, 830));
222                 new GUIWire(submodelModifiable, cpQ211, andorA11.getInputPins().get(5), new Point(125, 840));
223                 new GUIWire(submodelModifiable, cpQ311, andorA11.getInputPins().get(6), new Point(120, 850));
224                 new GUIWire(submodelModifiable, cpQ411, andorA11.getInputPins().get(7), new Point(115, 860));
225                 new GUIWire(submodelModifiable, cpQ100, andB00  .getInputPins().get(0), new Point[0]);
226                 new GUIWire(submodelModifiable, cpQ200, andB00  .getInputPins().get(1), new Point[0]);
227                 new GUIWire(submodelModifiable, cpQ300, andB00  .getInputPins().get(2), new Point[0]);
228                 new GUIWire(submodelModifiable, cpQ400, andB00  .getInputPins().get(3), new Point[0]);
229                 new GUIWire(submodelModifiable, cpQ101, andorB01.getInputPins().get(4), new Point[0]);
230                 new GUIWire(submodelModifiable, cpQ201, andorB01.getInputPins().get(5), new Point[0]);
231                 new GUIWire(submodelModifiable, cpQ301, andorB01.getInputPins().get(6), new Point[0]);
232                 new GUIWire(submodelModifiable, cpQ401, andorB01.getInputPins().get(7), new Point[0]);
233                 new GUIWire(submodelModifiable, cpQ110, andorB10.getInputPins().get(4), new Point[0]);
234                 new GUIWire(submodelModifiable, cpQ210, andorB10.getInputPins().get(5), new Point[0]);
235                 new GUIWire(submodelModifiable, cpQ310, andorB10.getInputPins().get(6), new Point[0]);
236                 new GUIWire(submodelModifiable, cpQ410, andorB10.getInputPins().get(7), new Point[0]);
237                 new GUIWire(submodelModifiable, cpQ111, andorB11.getInputPins().get(4), new Point[0]);
238                 new GUIWire(submodelModifiable, cpQ211, andorB11.getInputPins().get(5), new Point[0]);
239                 new GUIWire(submodelModifiable, cpQ311, andorB11.getInputPins().get(6), new Point[0]);
240                 new GUIWire(submodelModifiable, cpQ411, andorB11.getInputPins().get(7), new Point[0]);
241                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(0), andorA01.getInputPins().get(0), new Point(290, 380), new Point(290, 445), new Point(230, 445), new Point(230, 490));
242                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(1), andorA01.getInputPins().get(1), new Point(285, 390), new Point(285, 440), new Point(225, 440), new Point(225, 500));
243                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(2), andorA01.getInputPins().get(2), new Point(280, 400), new Point(280, 435), new Point(220, 435), new Point(220, 510));
244                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(3), andorA01.getInputPins().get(3), new Point(275, 410), new Point(275, 430), new Point(215, 430), new Point(215, 520));
245                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(0), andorA10.getInputPins().get(0), new Point(290, 490), new Point(290, 595), new Point(230, 595), new Point(230, 640));
246                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(1), andorA10.getInputPins().get(1), new Point(285, 500), new Point(285, 590), new Point(225, 590), new Point(225, 650));
247                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(2), andorA10.getInputPins().get(2), new Point(280, 510), new Point(280, 585), new Point(220, 585), new Point(220, 660));
248                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(3), andorA10.getInputPins().get(3), new Point(275, 520), new Point(275, 580), new Point(215, 580), new Point(215, 670));
249                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(0), andorA11.getInputPins().get(0), new Point(290, 640), new Point(290, 745), new Point(230, 745), new Point(230, 790));
250                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(1), andorA11.getInputPins().get(1), new Point(285, 650), new Point(285, 740), new Point(225, 740), new Point(225, 800));
251                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(2), andorA11.getInputPins().get(2), new Point(280, 660), new Point(280, 735), new Point(220, 735), new Point(220, 810));
252                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(3), andorA11.getInputPins().get(3), new Point(275, 670), new Point(275, 730), new Point(215, 730), new Point(215, 820));
253                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(0), QA1                           , new Point(300, 790), new Point(300,  50));
254                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(1), QA2                           , new Point(305, 800), new Point(305, 150));
255                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(2), QA3                           , new Point(310, 810), new Point(310, 250));
256                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(3), QA4                           , new Point(315, 820), new Point(315, 350));
257                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(0), andorB01.getInputPins().get(0), new Point(190, 330), new Point(190, 430), new Point(130, 430), new Point(130, 440));
258                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(1), andorB01.getInputPins().get(1), new Point(185, 340), new Point(185, 425), new Point(125, 425), new Point(125, 450));
259                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(2), andorB01.getInputPins().get(2), new Point(180, 350), new Point(180, 420), new Point(120, 420), new Point(120, 460));
260                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(3), andorB01.getInputPins().get(3), new Point(175, 360), new Point(175, 415), new Point(115, 415), new Point(115, 470));
261                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(0), andorB10.getInputPins().get(0), new Point(190, 440), new Point(190, 580), new Point(130, 580), new Point(130, 590));
262                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(1), andorB10.getInputPins().get(1), new Point(185, 450), new Point(185, 575), new Point(125, 575), new Point(125, 600));
263                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(2), andorB10.getInputPins().get(2), new Point(180, 460), new Point(180, 570), new Point(120, 570), new Point(120, 610));
264                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(3), andorB10.getInputPins().get(3), new Point(175, 470), new Point(175, 565), new Point(115, 565), new Point(115, 620));
265                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(0), andorB11.getInputPins().get(0), new Point(190, 590), new Point(190, 730), new Point(130, 730), new Point(130, 740));
266                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(1), andorB11.getInputPins().get(1), new Point(185, 600), new Point(185, 725), new Point(125, 725), new Point(125, 750));
267                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(2), andorB11.getInputPins().get(2), new Point(180, 610), new Point(180, 720), new Point(120, 720), new Point(120, 760));
268                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(3), andorB11.getInputPins().get(3), new Point(175, 620), new Point(175, 715), new Point(115, 715), new Point(115, 770));
269                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(0), QB1                           , new Point(190, 740), new Point(190, 880), new Point(325, 880), new Point(325, 450));
270                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(1), QB2                           , new Point(185, 750), new Point(185, 885), new Point(330, 885), new Point(330, 550));
271                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(2), QB3                           , new Point(180, 760), new Point(180, 890), new Point(335, 890), new Point(335, 650));
272                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(3), QB4                           , new Point(175, 770), new Point(175, 895), new Point(340, 895), new Point(340, 750));
273                 //@formatter:on
274         }
275 }