-package net.mograsim.logic.core.types;
-
-import net.mograsim.logic.core.types.ColorDefinition.BuiltInColor;
-import net.mograsim.logic.core.wires.Wire.ReadEnd;
-
-public class BitVectorFormatter
-{
- public static String formatValueAsString(ReadEnd end)
- {
- return formatAsString(end == null ? null : end.getValues());
- }
-
- public static String formatAsString(BitVector bitVector)
- {
- if (bitVector == null)
- return "null";
- else
- return bitVector.toString();
- }
-
- public static ColorDefinition formatAsColor(ReadEnd end)
- {
- return formatAsColor(end == null ? null : end.getValues());
- }
-
- public static ColorDefinition formatAsColor(BitVector bitVector)
- {
- // 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));
- }
- }
-
- private BitVectorFormatter()
- {
- throw new UnsupportedOperationException("No BitVectorFormatter instances");
- }
+package net.mograsim.logic.core.types;\r
+\r
+import net.mograsim.logic.core.wires.Wire.ReadEnd;\r
+import net.mograsim.preferences.ColorDefinition;\r
+import net.mograsim.preferences.ColorDefinition.BuiltInColor;\r
+import net.mograsim.preferences.Preferences;\r
+\r
+public class BitVectorFormatter\r
+{\r
+ public static String formatValueAsString(ReadEnd end)\r
+ {\r
+ return formatAsString(end == null ? null : end.getValues());\r
+ }\r
+\r
+ public static String formatAsString(BitVector bitVector)\r
+ {\r
+ if (bitVector == null)\r
+ return "null";\r
+ return bitVector.toString();\r
+ }\r
+\r
+ // TODO doesn't this belong to logic.model?\r
+ public static ColorDefinition formatAsColor(ReadEnd end)\r
+ {\r
+ return formatAsColor(end == null ? null : end.getValues());\r
+ }\r
+\r
+ public static ColorDefinition formatAsColor(BitVector bitVector)\r
+ {\r
+ // TODO maybe find a color assignment for multiple-bit bit vectors?\r
+ if (bitVector == null || bitVector.length() != 1)\r
+ return new ColorDefinition(BuiltInColor.COLOR_BLACK);\r
+ switch (bitVector.getLSBit(0))\r
+ {\r
+ case ONE:\r
+ return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.one");\r
+ case U:\r
+ return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.u");\r
+ case X:\r
+ return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.x");\r
+ case Z:\r
+ return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.z");\r
+ case ZERO:\r
+ return Preferences.current().getColorDefinition("net.mograsim.logic.model.color.bit.zero");\r
+ default:\r
+ throw new IllegalArgumentException("Unknown enum constant: " + bitVector.getLSBit(0));\r
+ }\r
+ }\r
+\r
+ private BitVectorFormatter()\r
+ {\r
+ throw new UnsupportedOperationException("No BitVectorFormatter instances");\r
+ }\r
}
\ No newline at end of file