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