Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.logic.core / src / net / mograsim / logic / core / types / BitVectorFormatter.java
index a798531..5f645a2 100644 (file)
@@ -1,7 +1,9 @@
 package net.mograsim.logic.core.types;
 
-import net.mograsim.logic.core.types.ColorDefinition.BuiltInColor;
-import net.mograsim.logic.core.wires.Wire.ReadEnd;
+import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
+import net.mograsim.preferences.ColorDefinition;
+import net.mograsim.preferences.ColorDefinition.BuiltInColor;
+import net.mograsim.preferences.Preferences;
 
 public class BitVectorFormatter
 {
@@ -14,10 +16,10 @@ public class BitVectorFormatter
        {
                if (bitVector == null)
                        return "null";
-               else
-                       return bitVector.toString();
+               return bitVector.toString();
        }
 
+       // TODO doesn't this belong to logic.model?
        public static ColorDefinition formatAsColor(ReadEnd end)
        {
                return formatAsColor(end == null ? null : end.getValues());
@@ -28,22 +30,21 @@ public class BitVectorFormatter
                // TODO maybe find a color assignment for multiple-bit bit vectors?
                if (bitVector == null || bitVector.length() != 1)
                        return new ColorDefinition(BuiltInColor.COLOR_BLACK);
-               else
-                       switch (bitVector.getBit(0))
-                       {
-                       case ONE:
-                               return new ColorDefinition(BuiltInColor.COLOR_GREEN);
-                       case U:
-                               return new ColorDefinition(BuiltInColor.COLOR_CYAN);
-                       case X:
-                               return new ColorDefinition(BuiltInColor.COLOR_RED);
-                       case Z:
-                               return new ColorDefinition(BuiltInColor.COLOR_YELLOW);
-                       case ZERO:
-                               return new ColorDefinition(BuiltInColor.COLOR_GRAY);
-                       default:
-                               throw new IllegalArgumentException("Unknown enum constant: " + bitVector.getBit(0));
-                       }
+               switch (bitVector.getLSBit(0))
+               {
+               case ONE:
+                       return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.one");
+               case U:
+                       return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.u");
+               case X:
+                       return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.x");
+               case Z:
+                       return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.z");
+               case ZERO:
+                       return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.zero");
+               default:
+                       throw new IllegalArgumentException("Unknown enum constant: " + bitVector.getLSBit(0));
+               }
        }
 
        private BitVectorFormatter()