The instruction editor can now display integers in bases 2, 8, 10 and 16
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / tables / DisplaySettings.java
diff --git a/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/DisplaySettings.java b/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/DisplaySettings.java
new file mode 100644 (file)
index 0000000..dde6b01
--- /dev/null
@@ -0,0 +1,49 @@
+package net.mograsim.plugin.tables;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import net.mograsim.plugin.asm.AsmNumberUtil.NumberType;
+
+public class DisplaySettings
+{
+       private NumberType dataNumberType;
+       private final Set<Runnable> observers;
+
+       public DisplaySettings()
+       {
+               this(NumberType.HEXADECIMAL);
+       }
+
+       public DisplaySettings(NumberType dataNumberType)
+       {
+               this.dataNumberType = dataNumberType;
+               observers = new HashSet<>();
+       }
+
+       public NumberType getDataNumberType()
+       {
+               return dataNumberType;
+       }
+
+       public void setDataNumberType(NumberType dataNumberType)
+       {
+               this.dataNumberType = dataNumberType;
+               notifyObservers();
+       }
+
+       void notifyObservers()
+       {
+               observers.forEach(r -> r.run());
+       }
+
+       public void addObserver(Runnable ob)
+       {
+               observers.add(ob);
+       }
+
+       public void removeObserver(Runnable ob)
+       {
+               observers.remove(ob);
+       }
+}
\ No newline at end of file