Adjusted LogicUI to new Wire / WireEnd concept
[Mograsim.git] / LogicUI / src / era / mi / gui / wires / WireConnectionPoint.java
index 4b10f1c..33d38df 100644 (file)
@@ -1,21 +1,31 @@
 package era.mi.gui.wires;\r
 \r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.List;\r
+\r
 import org.eclipse.swt.graphics.Color;\r
 \r
 import era.mi.gui.components.BasicGUIComponent;\r
-import era.mi.logic.wires.WireArray;\r
+import era.mi.logic.wires.Wire;\r
+import era.mi.logic.wires.Wire.WireEnd;\r
 import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
 \r
 public class WireConnectionPoint implements BasicGUIComponent\r
 {\r
-       private final WireArray wa;\r
+       private final Wire wire;\r
+       private final List<WireEnd> wireEnds;\r
        private final int wiresCrossing;\r
 \r
-       public WireConnectionPoint(WireArray wa, int wiresCrossing)\r
+       public WireConnectionPoint(Wire wire, int wiresCrossing)\r
        {\r
-               this.wa = wa;\r
+               this.wire = wire;\r
+               List<WireEnd> wireEndsModifiable = new ArrayList<>();\r
+               for (int i = 0; i < wiresCrossing; i++)\r
+                       wireEndsModifiable.add(wire.createReadOnlyEnd());\r
+               wireEnds = Collections.unmodifiableList(wireEndsModifiable);\r
                this.wiresCrossing = wiresCrossing;\r
        }\r
 \r
@@ -23,8 +33,8 @@ public class WireConnectionPoint implements BasicGUIComponent
        public void render(GeneralGC gc)\r
        {\r
                Color oldBG = gc.getBackground();\r
-               if (wa.length == 1)\r
-                       gc.setBackground(gc.getDevice().getSystemColor(GUIWire.getSWTColorConstantForBit(wa.getValue())));\r
+               if (wire.length == 1)\r
+                       gc.setBackground(gc.getDevice().getSystemColor(GUIWire.getSWTColorConstantForBit(wire.getValue())));\r
                gc.fillOval(-1, -1, 2, 2);\r
                gc.setBackground(oldBG);\r
        }\r
@@ -36,19 +46,19 @@ public class WireConnectionPoint implements BasicGUIComponent
        }\r
 \r
        @Override\r
-       public int getConnectedWireArraysCount()\r
+       public int getConnectedWireEndsCount()\r
        {\r
                return wiresCrossing;\r
        }\r
 \r
        @Override\r
-       public WireArray getConnectedWireArray(int connectionIndex)\r
+       public WireEnd getConnectedWireEnd(int connectionIndex)\r
        {\r
-               return wa;\r
+               return wireEnds.get(connectionIndex);\r
        }\r
 \r
        @Override\r
-       public Point getWireArrayConnectionPoint(int connectionIndex)\r
+       public Point getWireEndConnectionPoint(int connectionIndex)\r
        {\r
                return new Point(0, 0);\r
        }\r