X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2Fmodel%2Fcomponents%2FGUIManualSwitch.java;h=b2a8b01881e58d39467993626cedc932ecaeeb85;hb=80bfbd8ebf0ad8a7ad98584544a0c73f43e6f3b6;hp=546b17e20be085afc8b840aa3f14904b151783d2;hpb=53db506919cb378f8f3e2584491ddbc5357ccd8c;p=Mograsim.git diff --git a/LogicUI/src/era/mi/gui/model/components/GUIManualSwitch.java b/LogicUI/src/era/mi/gui/model/components/GUIManualSwitch.java index 546b17e2..b2a8b018 100644 --- a/LogicUI/src/era/mi/gui/model/components/GUIManualSwitch.java +++ b/LogicUI/src/era/mi/gui/model/components/GUIManualSwitch.java @@ -16,6 +16,8 @@ public class GUIManualSwitch extends GUIComponent private static final double height = 15; private static final double fontHeight = 5; + private final Pin outputPin; + private ManualSwitch logicSwitch; private ReadEnd end; @@ -23,19 +25,22 @@ public class GUIManualSwitch extends GUIComponent { super(model); setSize(width, height); - addPin(new Pin(this, width, height / 2)); + addPin(this.outputPin = new Pin(this, 1, width, height / 2)); } @Override public void render(GeneralGC gc, Rectangle visibleRegion) { - gc.drawRectangle(0, 0, width, height); + double posX = getBounds().x; + double posY = getBounds().y; + + gc.drawRectangle(posX, posY, width, height); String label = BitVectorFormatter.formatValueAsString(end); Font oldFont = gc.getFont(); Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); gc.setFont(labelFont); Point textExtent = gc.textExtent(label); - gc.drawText(label, (width - textExtent.x) / 2, (height - textExtent.y) / 2, true); + gc.drawText(label, posX + (width - textExtent.x) / 2, posY + (height - textExtent.y) / 2, true); gc.setFont(oldFont); } @@ -50,7 +55,13 @@ public class GUIManualSwitch extends GUIComponent @Override public boolean clicked(double x, double y) { - logicSwitch.toggle(); + if (logicSwitch != null) + logicSwitch.toggle(); return true; } + + public Pin getOutputPin() + { + return outputPin; + } } \ No newline at end of file