The final restructured version for automatic build using maven tycho
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / tables / DisplaySettings.java
1 package net.mograsim.plugin.tables;
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6 import net.mograsim.plugin.asm.AsmNumberUtil.NumberType;
7
8 public class DisplaySettings
9 {
10         private NumberType dataNumberType;
11         private final Set<Runnable> observers;
12
13         public DisplaySettings()
14         {
15                 this(NumberType.HEXADECIMAL);
16         }
17
18         public DisplaySettings(NumberType dataNumberType)
19         {
20                 this.dataNumberType = dataNumberType;
21                 observers = new HashSet<>();
22         }
23
24         public NumberType getDataNumberType()
25         {
26                 return dataNumberType;
27         }
28
29         public void setDataNumberType(NumberType dataNumberType)
30         {
31                 this.dataNumberType = dataNumberType;
32                 notifyObservers();
33         }
34
35         void notifyObservers()
36         {
37                 observers.forEach(r -> r.run());
38         }
39
40         public void addObserver(Runnable ob)
41         {
42                 observers.add(ob);
43         }
44
45         public void removeObserver(Runnable ob)
46         {
47                 observers.remove(ob);
48         }
49 }