Browse Source

Merge pull request #282 from csmith/master

Make the nick colour plugin use events for prefs.
pull/284/head
Greg Holmes 9 years ago
parent
commit
cc188371c3

+ 54
- 1
nickcolours/src/com/dmdirc/addons/nickcolours/NickColourManager.java View File

@@ -25,10 +25,17 @@ package com.dmdirc.addons.nickcolours;
25 25
 import com.dmdirc.ClientModule.GlobalConfig;
26 26
 import com.dmdirc.DMDircMBassador;
27 27
 import com.dmdirc.addons.ui_swing.EDTInvocation;
28
+import com.dmdirc.addons.ui_swing.UIUtilities;
29
+import com.dmdirc.addons.ui_swing.injection.MainWindow;
28 30
 import com.dmdirc.config.ConfigBinder;
29 31
 import com.dmdirc.config.ConfigBinding;
32
+import com.dmdirc.config.prefs.PluginPreferencesCategory;
33
+import com.dmdirc.config.prefs.PreferencesCategory;
34
+import com.dmdirc.config.prefs.PreferencesSetting;
35
+import com.dmdirc.config.prefs.PreferencesType;
30 36
 import com.dmdirc.events.ChannelGotNamesEvent;
31 37
 import com.dmdirc.events.ChannelJoinEvent;
38
+import com.dmdirc.events.ClientPrefsOpenedEvent;
32 39
 import com.dmdirc.events.DisplayProperty;
33 40
 import com.dmdirc.interfaces.GroupChatUser;
34 41
 import com.dmdirc.interfaces.User;
@@ -36,14 +43,18 @@ import com.dmdirc.interfaces.config.AggregateConfigProvider;
36 43
 import com.dmdirc.interfaces.config.ReadOnlyConfigProvider;
37 44
 import com.dmdirc.parser.interfaces.StringConverter;
38 45
 import com.dmdirc.plugins.PluginDomain;
46
+import com.dmdirc.plugins.PluginInfo;
47
+import com.dmdirc.ui.IconManager;
39 48
 import com.dmdirc.ui.messages.ColourManager;
40 49
 import com.dmdirc.util.colours.Colour;
41 50
 
51
+import java.awt.Window;
42 52
 import java.util.ArrayList;
43 53
 import java.util.Collection;
44 54
 import java.util.List;
45 55
 
46 56
 import javax.inject.Inject;
57
+import javax.inject.Provider;
47 58
 import javax.inject.Singleton;
48 59
 
49 60
 import net.engio.mbassy.listener.Handler;
@@ -62,8 +73,12 @@ public class NickColourManager {
62 73
     private final ConfigBinder configBinder;
63 74
     /** Plugin's setting domain. */
64 75
     private final String domain;
76
+    private final IconManager iconManager;
77
+    private final Provider<Window> mainWindowProvider;
65 78
     /** Event bus to subscribe to events on . */
66 79
     private final DMDircMBassador eventBus;
80
+    /** The plugin's info. */
81
+    private final PluginInfo pluginInfo;
67 82
     /** "Random" colours to use to colour nicknames. */
68 83
     private String[] randColours = {
69 84
         "E90E7F", "8E55E9", "B30E0E", "18B33C", "58ADB3", "9E54B3", "B39875", "3176B3",};
@@ -72,13 +87,20 @@ public class NickColourManager {
72 87
     private boolean userandomcolour;
73 88
 
74 89
     @Inject
75
-    public NickColourManager(@GlobalConfig final ColourManager colourManager,
90
+    public NickColourManager(
91
+            @GlobalConfig final ColourManager colourManager,
76 92
             @PluginDomain(NickColourPlugin.class) final String domain,
77 93
             @GlobalConfig final AggregateConfigProvider globalConfig,
94
+            final IconManager iconManager,
95
+            @MainWindow final Provider<Window> mainWindowProvider,
96
+            final PluginInfo pluginInfo,
78 97
             final DMDircMBassador eventBus) {
79 98
         this.domain = domain;
80 99
         this.globalConfig = globalConfig;
81 100
         this.colourManager = colourManager;
101
+        this.iconManager = iconManager;
102
+        this.mainWindowProvider = mainWindowProvider;
103
+        this.pluginInfo = pluginInfo;
82 104
         this.eventBus = eventBus;
83 105
         configBinder = globalConfig.getBinder().withDefaultDomain(domain);
84 106
     }
@@ -255,4 +277,35 @@ public class NickColourManager {
255 277
     public void handleRandomColours(final List<String> value) {
256 278
         randColours = value.toArray(new String[value.size()]);
257 279
     }
280
+
281
+    @Handler
282
+    public void handlePrefsOpened(final ClientPrefsOpenedEvent event) {
283
+        final PreferencesCategory general = new PluginPreferencesCategory(
284
+                pluginInfo, "Nick Colours",
285
+                "General configuration for NickColour plugin.");
286
+        final PreferencesCategory colours = new PluginPreferencesCategory(
287
+                pluginInfo, "Colours",
288
+                "Set colours for specific nicknames.", UIUtilities.invokeAndWait(
289
+                () -> new NickColourPanel(mainWindowProvider.get(), iconManager, colourManager,
290
+                        event.getModel().getIdentity(), event.getModel().getConfigManager(),
291
+                        pluginInfo.getDomain()
292
+                )));
293
+
294
+        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
295
+                pluginInfo.getDomain(), "userandomcolour", "Use random colour",
296
+                "Use a pseudo-random colour for each person?",
297
+                event.getModel().getConfigManager(), event.getModel().getIdentity()));
298
+        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
299
+                pluginInfo.getDomain(), "useowncolour", "Use colour for own nick",
300
+                "Always use the same colour for our own nickname?",
301
+                event.getModel().getConfigManager(), event.getModel().getIdentity()));
302
+        general.addSetting(new PreferencesSetting(PreferencesType.COLOUR, pluginInfo.getDomain(),
303
+                "owncolour", "Colour to use for own nick",
304
+                "Colour used for our own nickname, if above setting is enabled.",
305
+                event.getModel().getConfigManager(), event.getModel().getIdentity()));
306
+
307
+        general.addSubCategory(colours);
308
+        event.getModel().getCategory("Plugins").addSubCategory(general);
309
+    }
310
+
258 311
 }

+ 10
- 1
nickcolours/src/com/dmdirc/addons/nickcolours/NickColourModule.java View File

@@ -24,6 +24,7 @@ package com.dmdirc.addons.nickcolours;
24 24
 
25 25
 import com.dmdirc.addons.ui_swing.injection.SwingModule;
26 26
 import com.dmdirc.plugins.PluginDomain;
27
+import com.dmdirc.plugins.PluginInfo;
27 28
 
28 29
 import dagger.Module;
29 30
 import dagger.Provides;
@@ -34,10 +35,13 @@ import dagger.Provides;
34 35
 @Module(injects = NickColourManager.class, addsTo = SwingModule.class)
35 36
 public class NickColourModule {
36 37
 
38
+    /** This plugin's plugin info. */
39
+    private final PluginInfo pluginInfo;
37 40
     /** The domain for plugin settings. */
38 41
     private final String domain;
39 42
 
40
-    public NickColourModule(final String domain) {
43
+    public NickColourModule(final PluginInfo pluginInfo, final String domain) {
44
+        this.pluginInfo = pluginInfo;
41 45
         this.domain = domain;
42 46
     }
43 47
 
@@ -52,4 +56,9 @@ public class NickColourModule {
52 56
         return domain;
53 57
     }
54 58
 
59
+    @Provides
60
+    public PluginInfo getPluginInfo() {
61
+        return pluginInfo;
62
+    }
63
+
55 64
 }

+ 1
- 58
nickcolours/src/com/dmdirc/addons/nickcolours/NickColourPlugin.java View File

@@ -22,19 +22,8 @@
22 22
 
23 23
 package com.dmdirc.addons.nickcolours;
24 24
 
25
-import com.dmdirc.addons.ui_swing.SwingController;
26
-import com.dmdirc.addons.ui_swing.UIUtilities;
27
-import com.dmdirc.config.prefs.PluginPreferencesCategory;
28
-import com.dmdirc.config.prefs.PreferencesCategory;
29
-import com.dmdirc.config.prefs.PreferencesDialogModel;
30
-import com.dmdirc.config.prefs.PreferencesSetting;
31
-import com.dmdirc.config.prefs.PreferencesType;
32 25
 import com.dmdirc.plugins.PluginInfo;
33 26
 import com.dmdirc.plugins.implementations.BasePlugin;
34
-import com.dmdirc.ui.IconManager;
35
-import com.dmdirc.ui.messages.ColourManager;
36
-
37
-import java.awt.Window;
38 27
 
39 28
 import dagger.ObjectGraph;
40 29
 
@@ -43,31 +32,14 @@ import dagger.ObjectGraph;
43 32
  */
44 33
 public class NickColourPlugin extends BasePlugin {
45 34
 
46
-    /** Plugin info. */
47
-    private final PluginInfo pluginInfo;
48
-    /** Main window that will own any dialogs. */
49
-    private final Window mainWindow;
50
-    /** Icon manager. */
51
-    private final IconManager iconManager;
52
-    /** Colour manager. */
53
-    private final ColourManager colourManager;
54 35
     /** Nick colour manager. */
55 36
     private NickColourManager nickColourManager;
56 37
 
57
-    public NickColourPlugin(final PluginInfo pluginInfo, final SwingController controller,
58
-            final IconManager iconManager,
59
-            final ColourManager colourManager) {
60
-        this.pluginInfo = pluginInfo;
61
-        this.mainWindow = controller.getMainFrame();
62
-        this.iconManager = iconManager;
63
-        this.colourManager = colourManager;
64
-    }
65
-
66 38
     @Override
67 39
     public void load(final PluginInfo pluginInfo, final ObjectGraph graph) {
68 40
         super.load(pluginInfo, graph);
69 41
 
70
-        setObjectGraph(graph.plus(new NickColourModule(pluginInfo.getDomain())));
42
+        setObjectGraph(graph.plus(new NickColourModule(pluginInfo, pluginInfo.getDomain())));
71 43
         nickColourManager = getObjectGraph().get(NickColourManager.class);
72 44
     }
73 45
 
@@ -83,33 +55,4 @@ public class NickColourPlugin extends BasePlugin {
83 55
         nickColourManager.onUnload();
84 56
     }
85 57
 
86
-    @Override
87
-    public void showConfig(final PreferencesDialogModel manager) {
88
-        final PreferencesCategory general = new PluginPreferencesCategory(
89
-                pluginInfo, "Nick Colours",
90
-                "General configuration for NickColour plugin.");
91
-        final PreferencesCategory colours = new PluginPreferencesCategory(
92
-                pluginInfo, "Colours",
93
-                "Set colours for specific nicknames.", UIUtilities.invokeAndWait(
94
-                () -> new NickColourPanel(mainWindow, iconManager, colourManager,
95
-                        manager.getIdentity(), manager.getConfigManager(),
96
-                        pluginInfo.getDomain())));
97
-
98
-        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
99
-                pluginInfo.getDomain(), "userandomcolour", "Use random colour",
100
-                "Use a pseudo-random colour for each person?",
101
-                manager.getConfigManager(), manager.getIdentity()));
102
-        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
103
-                pluginInfo.getDomain(), "useowncolour", "Use colour for own nick",
104
-                "Always use the same colour for our own nickname?",
105
-                manager.getConfigManager(), manager.getIdentity()));
106
-        general.addSetting(new PreferencesSetting(PreferencesType.COLOUR, pluginInfo.getDomain(),
107
-                "owncolour", "Colour to use for own nick",
108
-                "Colour used for our own nickname, if above setting is "
109
-                + "enabled.", manager.getConfigManager(), manager.getIdentity()));
110
-
111
-        general.addSubCategory(colours);
112
-        manager.getCategory("Plugins").addSubCategory(general);
113
-    }
114
-
115 58
 }

Loading…
Cancel
Save