Pārlūkot izejas kodu

Remove plugin (un)loaded events.

Depends-On: I84f07c00e0589ff25ae1b4a01f5671488b847925
Change-Id: I413a3f6f72999262bf4426de082cc8c9946a6f90
Reviewed-on: http://gerrit.dmdirc.com/3449
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
changes/49/3449/3
Greg Holmes 10 gadus atpakaļ
vecāks
revīzija
45b649a9d8

+ 22
- 18
src/com/dmdirc/addons/notifications/NotificationsManager.java Parādīt failu

24
 
24
 
25
 import com.dmdirc.ClientModule.GlobalConfig;
25
 import com.dmdirc.ClientModule.GlobalConfig;
26
 import com.dmdirc.ClientModule.UserConfig;
26
 import com.dmdirc.ClientModule.UserConfig;
27
-import com.dmdirc.actions.ActionManager;
28
-import com.dmdirc.actions.CoreActionType;
29
-import com.dmdirc.interfaces.ActionListener;
30
-import com.dmdirc.interfaces.actions.ActionType;
27
+import com.dmdirc.events.PluginLoadedEvent;
28
+import com.dmdirc.events.PluginUnloadedEvent;
31
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
29
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
32
 import com.dmdirc.interfaces.config.ConfigProvider;
30
 import com.dmdirc.interfaces.config.ConfigProvider;
33
 import com.dmdirc.plugins.PluginDomain;
31
 import com.dmdirc.plugins.PluginDomain;
34
 import com.dmdirc.plugins.PluginInfo;
32
 import com.dmdirc.plugins.PluginInfo;
35
 import com.dmdirc.plugins.PluginManager;
33
 import com.dmdirc.plugins.PluginManager;
36
 
34
 
35
+import com.google.common.eventbus.EventBus;
36
+import com.google.common.eventbus.Subscribe;
37
+
37
 import java.util.ArrayList;
38
 import java.util.ArrayList;
38
 import java.util.List;
39
 import java.util.List;
39
 
40
 
40
 import javax.inject.Inject;
41
 import javax.inject.Inject;
41
 
42
 
42
-public class NotificationsManager implements ActionListener {
43
+public class NotificationsManager {
43
 
44
 
44
     /** The notification methods that we know of. */
45
     /** The notification methods that we know of. */
45
     private final List<String> methods = new ArrayList<>();
46
     private final List<String> methods = new ArrayList<>();
51
     private final AggregateConfigProvider globalConfig;
52
     private final AggregateConfigProvider globalConfig;
52
     /** Plugin manager. */
53
     /** Plugin manager. */
53
     private final PluginManager pluginManager;
54
     private final PluginManager pluginManager;
55
+    /** Event bus to listen for events on. */
56
+    private final EventBus eventBus;
54
 
57
 
55
     @Inject
58
     @Inject
56
     public NotificationsManager(
59
     public NotificationsManager(
57
             @PluginDomain(NotificationsPlugin.class) final String domain,
60
             @PluginDomain(NotificationsPlugin.class) final String domain,
58
             @GlobalConfig final AggregateConfigProvider globalConfig,
61
             @GlobalConfig final AggregateConfigProvider globalConfig,
59
             @UserConfig final ConfigProvider userSettings,
62
             @UserConfig final ConfigProvider userSettings,
63
+            final EventBus eventBus,
60
             final PluginManager pluginManager) {
64
             final PluginManager pluginManager) {
61
         this.domain = domain;
65
         this.domain = domain;
62
         this.globalConfig = globalConfig;
66
         this.globalConfig = globalConfig;
63
         this.pluginManager = pluginManager;
67
         this.pluginManager = pluginManager;
68
+        this.eventBus = eventBus;
64
     }
69
     }
65
 
70
 
66
     public void onLoad() {
71
     public void onLoad() {
67
         methods.clear();
72
         methods.clear();
68
         loadSettings();
73
         loadSettings();
69
-        ActionManager.getActionManager().registerListener(this,
70
-                CoreActionType.PLUGIN_LOADED, CoreActionType.PLUGIN_UNLOADED);
74
+        eventBus.register(this);
71
         for (PluginInfo target : pluginManager.getPluginInfos()) {
75
         for (PluginInfo target : pluginManager.getPluginInfos()) {
72
             if (target.isLoaded()) {
76
             if (target.isLoaded()) {
73
                 addPlugin(target);
77
                 addPlugin(target);
77
 
81
 
78
     public void onUnload() {
82
     public void onUnload() {
79
         methods.clear();
83
         methods.clear();
80
-        ActionManager.getActionManager().unregisterListener(this);
84
+        eventBus.unregister(this);
85
+    }
86
+
87
+    @Subscribe
88
+    public void handlePluginLoaded(final PluginLoadedEvent event) {
89
+        addPlugin(event.getPlugin());
90
+    }
91
+
92
+    @Subscribe
93
+    public void handlePluginUnloaded(final PluginUnloadedEvent event) {
94
+        removePlugin(event.getPlugin());
81
     }
95
     }
82
 
96
 
83
     /** Loads the plugins settings. */
97
     /** Loads the plugins settings. */
89
         }
103
         }
90
     }
104
     }
91
 
105
 
92
-    @Override
93
-    public void processEvent(final ActionType type, final StringBuffer format,
94
-            final Object... arguments) {
95
-        if (type == CoreActionType.PLUGIN_LOADED) {
96
-            addPlugin((PluginInfo) arguments[0]);
97
-        } else if (type == CoreActionType.PLUGIN_UNLOADED) {
98
-            removePlugin((PluginInfo) arguments[0]);
99
-        }
100
-    }
101
-
102
     /**
106
     /**
103
      * Checks to see if a plugin implements the notification method interface and if it does, adds
107
      * Checks to see if a plugin implements the notification method interface and if it does, adds
104
      * the method to our list.
108
      * the method to our list.

+ 22
- 17
src/com/dmdirc/addons/nowplaying/NowPlayingManager.java Parādīt failu

24
 
24
 
25
 import com.dmdirc.ClientModule.GlobalConfig;
25
 import com.dmdirc.ClientModule.GlobalConfig;
26
 import com.dmdirc.ClientModule.UserConfig;
26
 import com.dmdirc.ClientModule.UserConfig;
27
-import com.dmdirc.actions.CoreActionType;
27
+import com.dmdirc.events.PluginLoadedEvent;
28
+import com.dmdirc.events.PluginUnloadedEvent;
28
 import com.dmdirc.interfaces.ActionController;
29
 import com.dmdirc.interfaces.ActionController;
29
-import com.dmdirc.interfaces.ActionListener;
30
-import com.dmdirc.interfaces.actions.ActionType;
31
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
30
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
32
 import com.dmdirc.interfaces.config.ConfigProvider;
31
 import com.dmdirc.interfaces.config.ConfigProvider;
33
 import com.dmdirc.plugins.Plugin;
32
 import com.dmdirc.plugins.Plugin;
35
 import com.dmdirc.plugins.PluginInfo;
34
 import com.dmdirc.plugins.PluginInfo;
36
 import com.dmdirc.plugins.PluginManager;
35
 import com.dmdirc.plugins.PluginManager;
37
 
36
 
37
+import com.google.common.eventbus.EventBus;
38
+import com.google.common.eventbus.Subscribe;
39
+
38
 import java.util.ArrayList;
40
 import java.util.ArrayList;
39
 import java.util.Collections;
41
 import java.util.Collections;
40
 import java.util.List;
42
 import java.util.List;
41
 
43
 
42
 import javax.inject.Inject;
44
 import javax.inject.Inject;
43
 
45
 
44
-public class NowPlayingManager implements ActionListener {
46
+public class NowPlayingManager {
45
 
47
 
46
     /** Plugin manager to get plugins from. */
48
     /** Plugin manager to get plugins from. */
47
     private final PluginManager pluginManager;
49
     private final PluginManager pluginManager;
49
     private final ActionController actionController;
51
     private final ActionController actionController;
50
     /** Global configuration to read settings from. */
52
     /** Global configuration to read settings from. */
51
     private final AggregateConfigProvider globalConfig;
53
     private final AggregateConfigProvider globalConfig;
54
+    /** Event bus to subscribe to events on. */
55
+    private final EventBus eventBus;
52
     /** This plugin's settings domain. */
56
     /** This plugin's settings domain. */
53
     private final String domain;
57
     private final String domain;
54
     /** The sources that we know of. */
58
     /** The sources that we know of. */
62
     public NowPlayingManager(
66
     public NowPlayingManager(
63
             final PluginManager pluginManager,
67
             final PluginManager pluginManager,
64
             final ActionController actionController,
68
             final ActionController actionController,
69
+            final EventBus eventBus,
65
             @GlobalConfig final AggregateConfigProvider globalConfig,
70
             @GlobalConfig final AggregateConfigProvider globalConfig,
66
             @UserConfig final ConfigProvider userConfig,
71
             @UserConfig final ConfigProvider userConfig,
67
             @PluginDomain(NowPlayingPlugin.class) final String domain) {
72
             @PluginDomain(NowPlayingPlugin.class) final String domain) {
69
         this.actionController = actionController;
74
         this.actionController = actionController;
70
         this.globalConfig = globalConfig;
75
         this.globalConfig = globalConfig;
71
         this.domain = domain;
76
         this.domain = domain;
77
+        this.eventBus = eventBus;
72
     }
78
     }
73
 
79
 
74
     /**
80
     /**
78
         sources.clear();
84
         sources.clear();
79
         managers.clear();
85
         managers.clear();
80
         order = getSettings();
86
         order = getSettings();
81
-        actionController.registerListener(this, CoreActionType.PLUGIN_LOADED,
82
-                CoreActionType.PLUGIN_UNLOADED);
87
+        eventBus.register(this);
83
         for (PluginInfo target : pluginManager.getPluginInfos()) {
88
         for (PluginInfo target : pluginManager.getPluginInfos()) {
84
             if (target.isLoaded()) {
89
             if (target.isLoaded()) {
85
                 addPlugin(target);
90
                 addPlugin(target);
93
     public void onUnload() {
98
     public void onUnload() {
94
         sources.clear();
99
         sources.clear();
95
         managers.clear();
100
         managers.clear();
96
-        actionController.unregisterListener(this);
101
+        eventBus.unregister(this);
102
+    }
103
+
104
+    @Subscribe
105
+    public void handlePluginLoaded(final PluginLoadedEvent event) {
106
+        addPlugin(event.getPlugin());
107
+    }
108
+
109
+    @Subscribe
110
+    public void handlePluginUnloaded(final PluginUnloadedEvent event) {
111
+        removePlugin(event.getPlugin());
97
     }
112
     }
98
 
113
 
99
     /**
114
     /**
282
         return res;
297
         return res;
283
     }
298
     }
284
 
299
 
285
-    @Override
286
-    public void processEvent(final ActionType type, final StringBuffer format,
287
-            final Object... arguments) {
288
-        if (type == CoreActionType.PLUGIN_LOADED) {
289
-            addPlugin((PluginInfo) arguments[0]);
290
-        } else if (type == CoreActionType.PLUGIN_UNLOADED) {
291
-            removePlugin((PluginInfo) arguments[0]);
292
-        }
293
-    }
294
-
295
 }
300
 }

Notiek ielāde…
Atcelt
Saglabāt