Set GUIram2 Dx input wire paths
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / mi / nandbased / GUIram2.java
index 6d23502..c7bf896 100644 (file)
@@ -18,6 +18,7 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
                initSubmodelComponents();
        }
 
+       // TODO clean up D lines
        @SuppressWarnings("unused") // for GUIWires being created
        private void initSubmodelComponents()
        {
@@ -59,10 +60,10 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
                WireCrossPoint cpB01 = new WireCrossPoint(submodelModifiable, 1);
                WireCrossPoint cpB10 = new WireCrossPoint(submodelModifiable, 1);
                WireCrossPoint cpB11 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD100 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD200 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD300 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD400 = new WireCrossPoint(submodelModifiable, 1);
+               WireCrossPoint cpD1in = new WireCrossPoint(submodelModifiable, 1);
+               WireCrossPoint cpD2in = new WireCrossPoint(submodelModifiable, 1);
+               WireCrossPoint cpD3in = new WireCrossPoint(submodelModifiable, 1);
+               WireCrossPoint cpD4in = new WireCrossPoint(submodelModifiable, 1);
                WireCrossPoint cpD101 = new WireCrossPoint(submodelModifiable, 1);
                WireCrossPoint cpD201 = new WireCrossPoint(submodelModifiable, 1);
                WireCrossPoint cpD301 = new WireCrossPoint(submodelModifiable, 1);
@@ -88,10 +89,59 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
                WireCrossPoint cpQ311 = new WireCrossPoint(submodelModifiable, 1);
                WireCrossPoint cpQ411 = new WireCrossPoint(submodelModifiable, 1);
 
+               demuxA.moveTo(55, 45);
+               demuxB.moveTo(55, 150);
+               weAndB.moveTo(130, 150);
+               cell00.moveTo(55, 325);
+               cell01.moveTo(55, 475);
+               cell10.moveTo(55, 625);
+               cell11.moveTo(55, 775);
+               andA00.moveTo(235, 375);
+               andorA01.moveTo(235, 485);
+               andorA10.moveTo(235, 635);
+               andorA11.moveTo(235, 785);
+               andB00.moveTo(135, 325);
+               andorB01.moveTo(135, 435);
+               andorB10.moveTo(135, 585);
+               andorB11.moveTo(135, 735);
+               cpB00.moveCenterTo(110, 155);
+               cpB01.moveCenterTo(105, 165);
+               cpB10.moveCenterTo(100, 175);
+               cpB11.moveCenterTo(95, 185);
+               cpD1in.moveCenterTo(35, 550);
+               cpD2in.moveCenterTo(40, 650);
+               cpD3in.moveCenterTo(45, 750);
+               cpD4in.moveCenterTo(50, 810);
+               cpD101.moveCenterTo(35, 480);
+               cpD201.moveCenterTo(40, 490);
+               cpD301.moveCenterTo(45, 500);
+               cpD401.moveCenterTo(50, 510);
+               cpD110.moveCenterTo(35, 630);
+               cpD210.moveCenterTo(40, 640);
+               cpD310.moveCenterTo(45, 650);
+               cpD410.moveCenterTo(50, 660);
+               cpQ100.moveCenterTo(130, 330);
+               cpQ200.moveCenterTo(125, 340);
+               cpQ300.moveCenterTo(120, 350);
+               cpQ400.moveCenterTo(115, 360);
+               cpQ101.moveCenterTo(130, 480);
+               cpQ201.moveCenterTo(125, 490);
+               cpQ301.moveCenterTo(120, 500);
+               cpQ401.moveCenterTo(115, 510);
+               cpQ110.moveCenterTo(130, 630);
+               cpQ210.moveCenterTo(125, 640);
+               cpQ310.moveCenterTo(120, 650);
+               cpQ410.moveCenterTo(115, 660);
+               cpQ111.moveCenterTo(130, 780);
+               cpQ211.moveCenterTo(125, 790);
+               cpQ311.moveCenterTo(120, 800);
+               cpQ411.moveCenterTo(115, 810);
+
+               //@formatter:off
                new GUIWire(submodelModifiable, A0, demuxA.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, A1, demuxA.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, B0, demuxB.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, B1, demuxB.getInputPins().get(1), new Point[0]);
+               new GUIWire(submodelModifiable, A1, demuxA.getInputPins().get(1), new Point(10, 150), new Point(10,  60));
+               new GUIWire(submodelModifiable, B0, demuxB.getInputPins().get(0), new Point( 5, 250), new Point( 5, 155));
+               new GUIWire(submodelModifiable, B1, demuxB.getInputPins().get(1), new Point(10, 350), new Point(10, 165));
                new GUIWire(submodelModifiable, demuxB.getOutputPins().get(0), cpB00, new Point[0]);
                new GUIWire(submodelModifiable, demuxB.getOutputPins().get(1), cpB01, new Point[0]);
                new GUIWire(submodelModifiable, demuxB.getOutputPins().get(2), cpB10, new Point[0]);
@@ -100,39 +150,39 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
                new GUIWire(submodelModifiable, cpB01, weAndB.getInputPins().get(1), new Point[0]);
                new GUIWire(submodelModifiable, cpB10, weAndB.getInputPins().get(2), new Point[0]);
                new GUIWire(submodelModifiable, cpB11, weAndB.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, WE, weAndB.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, weAndB.getOutputPins().get(0), cell00.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, weAndB.getOutputPins().get(1), cell01.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, weAndB.getOutputPins().get(2), cell10.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, weAndB.getOutputPins().get(3), cell11.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, D1, cpD100, new Point[0]);
-               new GUIWire(submodelModifiable, D2, cpD200, new Point[0]);
-               new GUIWire(submodelModifiable, D3, cpD300, new Point[0]);
-               new GUIWire(submodelModifiable, D4, cpD400, new Point[0]);
-               new GUIWire(submodelModifiable, cpD100, cell00.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, cpD200, cell00.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, cpD300, cell00.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, cpD400, cell00.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, cpD100, cpD101, new Point[0]);
-               new GUIWire(submodelModifiable, cpD200, cpD201, new Point[0]);
-               new GUIWire(submodelModifiable, cpD300, cpD301, new Point[0]);
-               new GUIWire(submodelModifiable, cpD400, cpD401, new Point[0]);
+               new GUIWire(submodelModifiable, WE, weAndB.getInputPins().get(4), new Point(5, 450), new Point(5, 300), new Point(125, 300), new Point(125, 195));
+               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));
+               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));
+               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));
+               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));
+               new GUIWire(submodelModifiable, D1, cpD1in                          , new Point[0]);
+               new GUIWire(submodelModifiable, D2, cpD2in                          , new Point[0]);
+               new GUIWire(submodelModifiable, D3, cpD3in                          , new Point[0]);
+               new GUIWire(submodelModifiable, D4, cpD4in                          , new Point(50, 850));
+               new GUIWire(submodelModifiable, cpD101, cell00.getInputPins().get(0), new Point(35, 330));
+               new GUIWire(submodelModifiable, cpD201, cell00.getInputPins().get(1), new Point(40, 340));
+               new GUIWire(submodelModifiable, cpD301, cell00.getInputPins().get(2), new Point(45, 350));
+               new GUIWire(submodelModifiable, cpD401, cell00.getInputPins().get(3), new Point(50, 360));
                new GUIWire(submodelModifiable, cpD101, cell01.getInputPins().get(0), new Point[0]);
                new GUIWire(submodelModifiable, cpD201, cell01.getInputPins().get(1), new Point[0]);
                new GUIWire(submodelModifiable, cpD301, cell01.getInputPins().get(2), new Point[0]);
                new GUIWire(submodelModifiable, cpD401, cell01.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, cpD101, cpD110, new Point[0]);
-               new GUIWire(submodelModifiable, cpD201, cpD210, new Point[0]);
-               new GUIWire(submodelModifiable, cpD301, cpD310, new Point[0]);
-               new GUIWire(submodelModifiable, cpD401, cpD410, new Point[0]);
+               new GUIWire(submodelModifiable, cpD101, cpD1in                      , new Point[0]);
+               new GUIWire(submodelModifiable, cpD1in, cpD110                      , new Point[0]);
+               new GUIWire(submodelModifiable, cpD201, cpD210                      , new Point[0]);
+               new GUIWire(submodelModifiable, cpD301, cpD310                      , new Point[0]);
+               new GUIWire(submodelModifiable, cpD401, cpD410                      , new Point[0]);
                new GUIWire(submodelModifiable, cpD110, cell10.getInputPins().get(0), new Point[0]);
                new GUIWire(submodelModifiable, cpD210, cell10.getInputPins().get(1), new Point[0]);
                new GUIWire(submodelModifiable, cpD310, cell10.getInputPins().get(2), new Point[0]);
                new GUIWire(submodelModifiable, cpD410, cell10.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, cpD110, cell11.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, cpD210, cell11.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, cpD310, cell11.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, cpD410, cell11.getInputPins().get(3), new Point[0]);
+               new GUIWire(submodelModifiable, cpD210, cpD2in                      , new Point[0]);
+               new GUIWire(submodelModifiable, cpD310, cpD3in                      , new Point[0]);
+               new GUIWire(submodelModifiable, cpD410, cpD4in                      , new Point[0]);
+               new GUIWire(submodelModifiable, cpD110, cell11.getInputPins().get(0), new Point(35, 780));
+               new GUIWire(submodelModifiable, cpD2in, cell11.getInputPins().get(1), new Point(40, 790));
+               new GUIWire(submodelModifiable, cpD3in, cell11.getInputPins().get(2), new Point(45, 800));
+               new GUIWire(submodelModifiable, cpD4in, cell11.getInputPins().get(3), new Point[0]);
                new GUIWire(submodelModifiable, cell00.getOutputPins().get(0), cpQ100, new Point[0]);
                new GUIWire(submodelModifiable, cell00.getOutputPins().get(1), cpQ200, new Point[0]);
                new GUIWire(submodelModifiable, cell00.getOutputPins().get(2), cpQ300, new Point[0]);
@@ -149,34 +199,34 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
                new GUIWire(submodelModifiable, cell11.getOutputPins().get(1), cpQ211, new Point[0]);
                new GUIWire(submodelModifiable, cell11.getOutputPins().get(2), cpQ311, new Point[0]);
                new GUIWire(submodelModifiable, cell11.getOutputPins().get(3), cpQ411, new Point[0]);
-               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(0), andA00.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(1), andorA01.getInputPins().get(8), new Point[0]);
-               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(2), andorA10.getInputPins().get(8), new Point[0]);
-               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(3), andorA11.getInputPins().get(8), new Point[0]);
-               new GUIWire(submodelModifiable, cpB00, andB00.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, cpB01, andorB01.getInputPins().get(8), new Point[0]);
-               new GUIWire(submodelModifiable, cpB10, andorB10.getInputPins().get(8), new Point[0]);
-               new GUIWire(submodelModifiable, cpB11, andorB11.getInputPins().get(8), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ100, andA00.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ200, andA00.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ300, andA00.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ400, andA00.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ101, andorA01.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ201, andorA01.getInputPins().get(5), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ301, andorA01.getInputPins().get(6), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ401, andorA01.getInputPins().get(7), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ110, andorA10.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ210, andorA10.getInputPins().get(5), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ310, andorA10.getInputPins().get(6), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ410, andorA10.getInputPins().get(7), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ111, andorA11.getInputPins().get(4), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ211, andorA11.getInputPins().get(5), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ311, andorA11.getInputPins().get(6), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ411, andorA11.getInputPins().get(7), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ100, andB00.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ200, andB00.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ300, andB00.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ400, andB00.getInputPins().get(3), new Point[0]);
+               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(0), andA00  .getInputPins().get(4), new Point(210, 50), new Point(210, 420));
+               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(1), andorA01.getInputPins().get(8), new Point(205, 60), new Point(205, 570));
+               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(2), andorA10.getInputPins().get(8), new Point(200, 70), new Point(200, 720));
+               new GUIWire(submodelModifiable, demuxA.getOutputPins().get(3), andorA11.getInputPins().get(8), new Point(195, 80), new Point(195, 870));
+               new GUIWire(submodelModifiable, cpB00 , andB00  .getInputPins().get(4), new Point(110, 370));
+               new GUIWire(submodelModifiable, cpB01 , andorB01.getInputPins().get(8), new Point(105, 520));
+               new GUIWire(submodelModifiable, cpB10 , andorB10.getInputPins().get(8), new Point(100, 670));
+               new GUIWire(submodelModifiable, cpB11 , andorB11.getInputPins().get(8), new Point(95, 820));
+               new GUIWire(submodelModifiable, cpQ100, andA00  .getInputPins().get(0), new Point(130, 380));
+               new GUIWire(submodelModifiable, cpQ200, andA00  .getInputPins().get(1), new Point(125, 390));
+               new GUIWire(submodelModifiable, cpQ300, andA00  .getInputPins().get(2), new Point(120, 400));
+               new GUIWire(submodelModifiable, cpQ400, andA00  .getInputPins().get(3), new Point(115, 410));
+               new GUIWire(submodelModifiable, cpQ101, andorA01.getInputPins().get(4), new Point(130, 530));
+               new GUIWire(submodelModifiable, cpQ201, andorA01.getInputPins().get(5), new Point(125, 540));
+               new GUIWire(submodelModifiable, cpQ301, andorA01.getInputPins().get(6), new Point(120, 550));
+               new GUIWire(submodelModifiable, cpQ401, andorA01.getInputPins().get(7), new Point(115, 560));
+               new GUIWire(submodelModifiable, cpQ110, andorA10.getInputPins().get(4), new Point(130, 680));
+               new GUIWire(submodelModifiable, cpQ210, andorA10.getInputPins().get(5), new Point(125, 690));
+               new GUIWire(submodelModifiable, cpQ310, andorA10.getInputPins().get(6), new Point(120, 700));
+               new GUIWire(submodelModifiable, cpQ410, andorA10.getInputPins().get(7), new Point(115, 710));
+               new GUIWire(submodelModifiable, cpQ111, andorA11.getInputPins().get(4), new Point(130, 830));
+               new GUIWire(submodelModifiable, cpQ211, andorA11.getInputPins().get(5), new Point(125, 840));
+               new GUIWire(submodelModifiable, cpQ311, andorA11.getInputPins().get(6), new Point(120, 850));
+               new GUIWire(submodelModifiable, cpQ411, andorA11.getInputPins().get(7), new Point(115, 860));
+               new GUIWire(submodelModifiable, cpQ100, andB00  .getInputPins().get(0), new Point[0]);
+               new GUIWire(submodelModifiable, cpQ200, andB00  .getInputPins().get(1), new Point[0]);
+               new GUIWire(submodelModifiable, cpQ300, andB00  .getInputPins().get(2), new Point[0]);
+               new GUIWire(submodelModifiable, cpQ400, andB00  .getInputPins().get(3), new Point[0]);
                new GUIWire(submodelModifiable, cpQ101, andorB01.getInputPins().get(4), new Point[0]);
                new GUIWire(submodelModifiable, cpQ201, andorB01.getInputPins().get(5), new Point[0]);
                new GUIWire(submodelModifiable, cpQ301, andorB01.getInputPins().get(6), new Point[0]);
@@ -189,37 +239,38 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
                new GUIWire(submodelModifiable, cpQ211, andorB11.getInputPins().get(5), new Point[0]);
                new GUIWire(submodelModifiable, cpQ311, andorB11.getInputPins().get(6), new Point[0]);
                new GUIWire(submodelModifiable, cpQ411, andorB11.getInputPins().get(7), new Point[0]);
-               new GUIWire(submodelModifiable, andA00.getOutputPins().get(0), andorA01.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, andA00.getOutputPins().get(1), andorA01.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, andA00.getOutputPins().get(2), andorA01.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, andA00.getOutputPins().get(3), andorA01.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, andorA01.getOutputPins().get(0), andorA10.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, andorA01.getOutputPins().get(1), andorA10.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, andorA01.getOutputPins().get(2), andorA10.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, andorA01.getOutputPins().get(3), andorA10.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, andorA10.getOutputPins().get(0), andorA11.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, andorA10.getOutputPins().get(1), andorA11.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, andorA10.getOutputPins().get(2), andorA11.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, andorA10.getOutputPins().get(3), andorA11.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(0), QA1, new Point[0]);
-               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(1), QA2, new Point[0]);
-               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(2), QA3, new Point[0]);
-               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(3), QA4, new Point[0]);
-               new GUIWire(submodelModifiable, andB00.getOutputPins().get(0), andorB01.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, andB00.getOutputPins().get(1), andorB01.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, andB00.getOutputPins().get(2), andorB01.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, andB00.getOutputPins().get(3), andorB01.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, andorB01.getOutputPins().get(0), andorB10.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, andorB01.getOutputPins().get(1), andorB10.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, andorB01.getOutputPins().get(2), andorB10.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, andorB01.getOutputPins().get(3), andorB10.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, andorB10.getOutputPins().get(0), andorB11.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, andorB10.getOutputPins().get(1), andorB11.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, andorB10.getOutputPins().get(2), andorB11.getInputPins().get(2), new Point[0]);
-               new GUIWire(submodelModifiable, andorB10.getOutputPins().get(3), andorB11.getInputPins().get(3), new Point[0]);
-               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(0), QB1, new Point[0]);
-               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(1), QB2, new Point[0]);
-               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(2), QB3, new Point[0]);
-               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(3), QB4, new Point[0]);
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(0), QA1                           , new Point(300, 790), new Point(300,  50));
+               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(1), QA2                           , new Point(305, 800), new Point(305, 150));
+               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(2), QA3                           , new Point(310, 810), new Point(310, 250));
+               new GUIWire(submodelModifiable, andorA11.getOutputPins().get(3), QA4                           , new Point(315, 820), new Point(315, 350));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               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));
+               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(0), QB1                           , new Point(190, 740), new Point(190, 880), new Point(325, 880), new Point(325, 450));
+               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(1), QB2                           , new Point(185, 750), new Point(185, 885), new Point(330, 885), new Point(330, 550));
+               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(2), QB3                           , new Point(180, 760), new Point(180, 890), new Point(335, 890), new Point(335, 650));
+               new GUIWire(submodelModifiable, andorB11.getOutputPins().get(3), QB4                           , new Point(175, 770), new Point(175, 895), new Point(340, 895), new Point(340, 750));
+               //@formatter:on
        }
 }
\ No newline at end of file