1 package era.mi.gui.wires;
3 import java.util.ArrayList;
4 import java.util.Collections;
7 import org.eclipse.swt.graphics.Color;
9 import era.mi.gui.components.BasicGUIComponent;
10 import era.mi.logic.wires.Wire;
11 import era.mi.logic.wires.Wire.ReadEnd;
12 import net.haspamelodica.swt.helper.gcs.GeneralGC;
13 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
14 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
16 public class WireConnectionPoint implements BasicGUIComponent
18 private final Wire wire;
19 private final List<ReadEnd> wireEnds;
20 private final int wiresCrossing;
22 public WireConnectionPoint(Wire wire, int wiresCrossing)
25 List<ReadEnd> wireEndsModifiable = new ArrayList<>();
26 for (int i = 0; i < wiresCrossing; i++)
27 wireEndsModifiable.add(wire.createReadOnlyEnd());
28 wireEnds = Collections.unmodifiableList(wireEndsModifiable);
29 this.wiresCrossing = wiresCrossing;
33 public void render(GeneralGC gc)
35 Color oldBG = gc.getBackground();
37 gc.setBackground(gc.getDevice().getSystemColor(GUIWire.getSWTColorConstantForBit(wire.getValue())));
38 gc.fillOval(-1, -1, 2, 2);
39 gc.setBackground(oldBG);
43 public Rectangle getBounds()
45 return new Rectangle(0, 0, 0, 0);
49 public int getConnectedWireEndsCount()
55 public ReadEnd getConnectedWireEnd(int connectionIndex)
57 return wireEnds.get(connectionIndex);
61 public Point getWireEndConnectionPoint(int connectionIndex)
63 return new Point(0, 0);