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
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
}\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