Browse Source

Use ConfigBinding in NickColourManager.

pull/232/head
Greg Holmes 9 years ago
parent
commit
92b8cf9671
1 changed files with 26 additions and 18 deletions
  1. 26
    18
      nickcolours/src/com/dmdirc/addons/nickcolours/NickColourManager.java

+ 26
- 18
nickcolours/src/com/dmdirc/addons/nickcolours/NickColourManager.java View File

24
 
24
 
25
 import com.dmdirc.ClientModule.GlobalConfig;
25
 import com.dmdirc.ClientModule.GlobalConfig;
26
 import com.dmdirc.DMDircMBassador;
26
 import com.dmdirc.DMDircMBassador;
27
+import com.dmdirc.addons.ui_swing.EDTInvocation;
28
+import com.dmdirc.config.ConfigBinder;
29
+import com.dmdirc.config.ConfigBinding;
27
 import com.dmdirc.events.ChannelGotnamesEvent;
30
 import com.dmdirc.events.ChannelGotnamesEvent;
28
 import com.dmdirc.events.ChannelJoinEvent;
31
 import com.dmdirc.events.ChannelJoinEvent;
29
 import com.dmdirc.events.DisplayProperty;
32
 import com.dmdirc.events.DisplayProperty;
30
 import com.dmdirc.interfaces.GroupChatUser;
33
 import com.dmdirc.interfaces.GroupChatUser;
31
 import com.dmdirc.interfaces.User;
34
 import com.dmdirc.interfaces.User;
32
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
35
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
33
-import com.dmdirc.interfaces.config.ConfigChangeListener;
34
 import com.dmdirc.interfaces.config.ReadOnlyConfigProvider;
36
 import com.dmdirc.interfaces.config.ReadOnlyConfigProvider;
35
 import com.dmdirc.parser.interfaces.StringConverter;
37
 import com.dmdirc.parser.interfaces.StringConverter;
36
 import com.dmdirc.plugins.PluginDomain;
38
 import com.dmdirc.plugins.PluginDomain;
50
  * Provides various features related to nickname colouring.
52
  * Provides various features related to nickname colouring.
51
  */
53
  */
52
 @Singleton
54
 @Singleton
53
-public class NickColourManager implements ConfigChangeListener {
55
+public class NickColourManager {
54
 
56
 
55
     /** Manager to parse colours with. */
57
     /** Manager to parse colours with. */
56
     private final ColourManager colourManager;
58
     private final ColourManager colourManager;
57
     /** Config to read settings from. */
59
     /** Config to read settings from. */
58
     private final AggregateConfigProvider globalConfig;
60
     private final AggregateConfigProvider globalConfig;
61
+    /** Config binder. */
62
+    private final ConfigBinder configBinder;
59
     /** Plugin's setting domain. */
63
     /** Plugin's setting domain. */
60
     private final String domain;
64
     private final String domain;
61
     /** Event bus to subscribe to events on . */
65
     /** Event bus to subscribe to events on . */
70
     @Inject
74
     @Inject
71
     public NickColourManager(@GlobalConfig final ColourManager colourManager,
75
     public NickColourManager(@GlobalConfig final ColourManager colourManager,
72
             @PluginDomain(NickColourPlugin.class) final String domain,
76
             @PluginDomain(NickColourPlugin.class) final String domain,
73
-            @GlobalConfig final AggregateConfigProvider globalConfig, final DMDircMBassador eventBus) {
77
+            @GlobalConfig final AggregateConfigProvider globalConfig,
78
+            final DMDircMBassador eventBus) {
74
         this.domain = domain;
79
         this.domain = domain;
75
         this.globalConfig = globalConfig;
80
         this.globalConfig = globalConfig;
76
         this.colourManager = colourManager;
81
         this.colourManager = colourManager;
77
         this.eventBus = eventBus;
82
         this.eventBus = eventBus;
83
+        configBinder = globalConfig.getBinder().withDefaultDomain(domain);
78
     }
84
     }
79
 
85
 
80
     @Handler
86
     @Handler
218
      * Loads this plugin.
224
      * Loads this plugin.
219
      */
225
      */
220
     public void onLoad() {
226
     public void onLoad() {
221
-        setCachedSettings();
222
         eventBus.subscribe(this);
227
         eventBus.subscribe(this);
228
+        configBinder.bind(this, NickColourManager.class);
223
     }
229
     }
224
 
230
 
225
     /**
231
     /**
227
      */
233
      */
228
     public void onUnload() {
234
     public void onUnload() {
229
         eventBus.unsubscribe(this);
235
         eventBus.unsubscribe(this);
236
+        configBinder.unbind(this);
230
     }
237
     }
231
 
238
 
232
-    /**
233
-     * Updates cached settings.
234
-     */
235
-    private void setCachedSettings() {
236
-        useowncolour = globalConfig.getOptionBool(domain, "useowncolour");
237
-        owncolour = globalConfig.getOption(domain, "owncolour");
238
-        userandomcolour = globalConfig.getOptionBool(domain, "userandomcolour");
239
-        if (globalConfig.hasOptionString(domain, "randomcolours")) {
240
-            final List<String> list = globalConfig.getOptionList(domain, "randomcolours");
241
-            randColours = list.toArray(new String[list.size()]);
242
-        }
239
+    @ConfigBinding(key = "useowncolour", invocation = EDTInvocation.class)
240
+    public void handleUseOwnColour(final boolean value) {
241
+        useowncolour = value;
243
     }
242
     }
244
 
243
 
245
-    @Override
246
-    public void configChanged(final String domain, final String key) {
247
-        setCachedSettings();
244
+    @ConfigBinding(key = "userandomcolour", invocation = EDTInvocation.class)
245
+    public void handleUseRandomColour(final boolean value) {
246
+        userandomcolour = value;
248
     }
247
     }
249
 
248
 
249
+    @ConfigBinding(key = "owncolour", invocation = EDTInvocation.class)
250
+    public void handleOwnColour(final String value) {
251
+        owncolour = value;
252
+    }
253
+
254
+    @ConfigBinding(key = "randomcolours", invocation = EDTInvocation.class)
255
+    public void handleRandomColours(final List<String> value) {
256
+        randColours = value.toArray(new String[value.size()]);
257
+    }
250
 }
258
 }

Loading…
Cancel
Save