WireConnectionPoints now have the same color as the wire they belong to
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 16 May 2019 09:06:26 +0000 (11:06 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 16 May 2019 09:06:26 +0000 (11:06 +0200)
LogicUI/src/era/mi/gui/wires/GUIWire.java
LogicUI/src/era/mi/gui/wires/WireConnectionPoint.java

index 391535c..5d9a174 100644 (file)
@@ -6,6 +6,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;\r
 \r
 import era.mi.gui.components.BasicGUIComponent;\r
+import era.mi.logic.Bit;\r
 import era.mi.logic.wires.WireArray;\r
 import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
@@ -40,27 +41,26 @@ public class GUIWire
        {\r
                Color oldFG = gc.getForeground();\r
                if(wa.length == 1)\r
-               {\r
-                       int fgColorConstant;\r
-                       switch(wa.getValue())\r
-                       {\r
-                               case ONE:\r
-                                       fgColorConstant = SWT.COLOR_GREEN;\r
-                                       break;\r
-                               case ZERO:\r
-                                       fgColorConstant = SWT.COLOR_BLUE;\r
-                                       break;\r
-                               case U:\r
-                               case X:\r
-                               case Z:\r
-                                       fgColorConstant = SWT.COLOR_RED;\r
-                                       break;\r
-                               default:\r
-                                       throw new IllegalArgumentException("Unknown enum constant: " + wa.getValue());\r
-                       }\r
-                       gc.setForeground(gc.getDevice().getSystemColor(fgColorConstant));\r
-               }\r
+                       gc.setForeground(gc.getDevice().getSystemColor(getSWTColorConstantForBit(wa.getValue())));\r
                gc.drawPolyline(path);\r
                gc.setForeground(oldFG);\r
        }\r
+\r
+       public static int getSWTColorConstantForBit(Bit bit)\r
+       {\r
+               switch(bit)\r
+               {\r
+                       case ONE:\r
+                               return SWT.COLOR_GREEN;\r
+                       case ZERO:\r
+                               return SWT.COLOR_BLUE;\r
+                       case Z:\r
+                               return SWT.COLOR_BLACK;\r
+                       case U:\r
+                       case X:\r
+                               return SWT.COLOR_RED;\r
+                       default:\r
+                               throw new IllegalArgumentException("Unknown enum constant: " + bit);\r
+               }\r
+       }\r
 }
\ No newline at end of file
index e993c93..c3bbab7 100644 (file)
@@ -23,8 +23,8 @@ public class WireConnectionPoint implements BasicGUIComponent
        public void render(GeneralGC gc)\r
        {\r
                Color oldBG = gc.getBackground();\r
-               Color fg = gc.getForeground();\r
-               gc.setBackground(fg);\r
+               if(wa.length == 1)\r
+                       gc.setBackground(gc.getDevice().getSystemColor(GUIWire.getSWTColorConstantForBit(wa.getValue())));\r
                gc.fillOval(-2, -2, 4, 4);\r
                gc.setBackground(oldBG);\r
        }\r