Pins are now accessed via name, not index
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / mi / nandbased / GUIdlatch4.java
index 426fbf7..440cfb4 100644 (file)
@@ -13,23 +13,23 @@ public class GUIdlatch4 extends SimpleRectangularSubmodelComponent
        {
                super(model, 1, "GUIdlatch4");
                setSubmodelScale(.4);
-               setInputCount(5);
-               setOutputCount(4);
+               setInputPins("D1", "D2", "D3", "D4", "C");
+               setOutputPins("Q1", "Q2", "Q3", "Q4");
                initSubmodelComponents();
        }
 
        @SuppressWarnings("unused") // for GUIWires being created
        private void initSubmodelComponents()
        {
-               Pin D1 = getInputSubmodelPins().get(0);
-               Pin D2 = getInputSubmodelPins().get(1);
-               Pin D3 = getInputSubmodelPins().get(2);
-               Pin D4 = getInputSubmodelPins().get(3);
-               Pin C = getInputSubmodelPins().get(4);
-               Pin Q1 = getOutputSubmodelPins().get(0);
-               Pin Q2 = getOutputSubmodelPins().get(1);
-               Pin Q3 = getOutputSubmodelPins().get(2);
-               Pin Q4 = getOutputSubmodelPins().get(3);
+               Pin D1 = getSubmodelPin("D1");
+               Pin D2 = getSubmodelPin("D2");
+               Pin D3 = getSubmodelPin("D3");
+               Pin D4 = getSubmodelPin("D4");
+               Pin C = getSubmodelPin("C");
+               Pin Q1 = getSubmodelPin("Q1");
+               Pin Q2 = getSubmodelPin("Q2");
+               Pin Q3 = getSubmodelPin("Q3");
+               Pin Q4 = getSubmodelPin("Q4");
 
                GUIdlatch dlatch1 = new GUIdlatch(submodelModifiable);
                GUIdlatch dlatch2 = new GUIdlatch(submodelModifiable);
@@ -44,24 +44,24 @@ public class GUIdlatch4 extends SimpleRectangularSubmodelComponent
                dlatch2.moveTo(30, 32.5);
                dlatch3.moveTo(30, 57.5);
                dlatch4.moveTo(30, 82.5);
-               cp2.moveTo(15, 47.5);
-               cp3.moveTo(15, 72.5);
-               cp4.moveTo(15, 97.5);
+               cp2.moveCenterTo(15, 47.5);
+               cp3.moveCenterTo(15, 72.5);
+               cp4.moveCenterTo(15, 97.5);
 
                new GUIWire(submodelModifiable, C, cp4, new Point(15, 112.5));
-               new GUIWire(submodelModifiable, cp4, dlatch4.getInputPins().get(1), new Point[0]);
+               new GUIWire(submodelModifiable, cp4, dlatch4.getPin("E"), new Point[0]);
                new GUIWire(submodelModifiable, cp4, cp3, new Point[0]);
-               new GUIWire(submodelModifiable, cp3, dlatch3.getInputPins().get(1), new Point[0]);
+               new GUIWire(submodelModifiable, cp3, dlatch3.getPin("E"), new Point[0]);
                new GUIWire(submodelModifiable, cp3, cp2, new Point[0]);
-               new GUIWire(submodelModifiable, cp2, dlatch2.getInputPins().get(1), new Point[0]);
-               new GUIWire(submodelModifiable, cp2, dlatch1.getInputPins().get(1), new Point(15, 22.5));
-               new GUIWire(submodelModifiable, D1, dlatch1.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, D2, dlatch2.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, D3, dlatch3.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, D4, dlatch4.getInputPins().get(0), new Point[0]);
-               new GUIWire(submodelModifiable, dlatch1.getOutputPins().get(0), Q1, new Point[0]);
-               new GUIWire(submodelModifiable, dlatch2.getOutputPins().get(0), Q2, new Point[0]);
-               new GUIWire(submodelModifiable, dlatch3.getOutputPins().get(0), Q3, new Point[0]);
-               new GUIWire(submodelModifiable, dlatch4.getOutputPins().get(0), Q4, new Point[0]);
+               new GUIWire(submodelModifiable, cp2, dlatch2.getPin("E"), new Point[0]);
+               new GUIWire(submodelModifiable, cp2, dlatch1.getPin("E"), new Point(15, 22.5));
+               new GUIWire(submodelModifiable, D1, dlatch1.getPin("D"), new Point[0]);
+               new GUIWire(submodelModifiable, D2, dlatch2.getPin("D"), new Point[0]);
+               new GUIWire(submodelModifiable, D3, dlatch3.getPin("D"), new Point[0]);
+               new GUIWire(submodelModifiable, D4, dlatch4.getPin("D"), new Point[0]);
+               new GUIWire(submodelModifiable, dlatch1.getPin("Q"), Q1, new Point[0]);
+               new GUIWire(submodelModifiable, dlatch2.getPin("Q"), Q2, new Point[0]);
+               new GUIWire(submodelModifiable, dlatch3.getPin("Q"), Q3, new Point[0]);
+               new GUIWire(submodelModifiable, dlatch4.getPin("Q"), Q4, new Point[0]);
        }
 }
\ No newline at end of file