X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2Fwires%2FWireConnectionPoint.java;h=3ccc1b4bfddfd91a6e3c65c3dd97529dc9c6ccaf;hb=055d61dd8838c5926e78c9931cd4dcf16f761941;hp=c3bbab73c8d64ea9b0e377a1fe1e29aace138821;hpb=ea862e91dc6823307e7a6590d28fd392f50c4a8b;p=Mograsim.git diff --git a/LogicUI/src/era/mi/gui/wires/WireConnectionPoint.java b/LogicUI/src/era/mi/gui/wires/WireConnectionPoint.java index c3bbab73..3ccc1b4b 100644 --- a/LogicUI/src/era/mi/gui/wires/WireConnectionPoint.java +++ b/LogicUI/src/era/mi/gui/wires/WireConnectionPoint.java @@ -1,21 +1,31 @@ package era.mi.gui.wires; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import org.eclipse.swt.graphics.Color; import era.mi.gui.components.BasicGUIComponent; -import era.mi.logic.wires.WireArray; +import era.mi.logic.wires.Wire; +import era.mi.logic.wires.Wire.ReadEnd; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; public class WireConnectionPoint implements BasicGUIComponent { - private final WireArray wa; - private final int wiresCrossing; + private final Wire wire; + private final List wireEnds; + private final int wiresCrossing; - public WireConnectionPoint(WireArray wa, int wiresCrossing) + public WireConnectionPoint(Wire wire, int wiresCrossing) { - this.wa = wa; + this.wire = wire; + List wireEndsModifiable = new ArrayList<>(); + for (int i = 0; i < wiresCrossing; i++) + wireEndsModifiable.add(wire.createReadOnlyEnd()); + wireEnds = Collections.unmodifiableList(wireEndsModifiable); this.wiresCrossing = wiresCrossing; } @@ -23,28 +33,32 @@ public class WireConnectionPoint implements BasicGUIComponent public void render(GeneralGC gc) { Color oldBG = gc.getBackground(); - if(wa.length == 1) - gc.setBackground(gc.getDevice().getSystemColor(GUIWire.getSWTColorConstantForBit(wa.getValue()))); - gc.fillOval(-2, -2, 4, 4); + if (wire.length == 1) + gc.setBackground(gc.getDevice().getSystemColor(GUIWire.getSWTColorConstantForBit(wire.getValue()))); + gc.fillOval(-1, -1, 2, 2); gc.setBackground(oldBG); } + @Override public Rectangle getBounds() { return new Rectangle(0, 0, 0, 0); } + @Override - public int getConnectedWireArraysCount() + public int getConnectedWireEndsCount() { return wiresCrossing; } + @Override - public WireArray getConnectedWireArray(int connectionIndex) + public ReadEnd getConnectedWireEnd(int connectionIndex) { - return wa; + return wireEnds.get(connectionIndex); } + @Override - public Point getWireArrayConnectionPoint(int connectionIndex) + public Point getWireEndConnectionPoint(int connectionIndex) { return new Point(0, 0); }