Browse Source

Make some plugins dependency inject the action manager

Change-Id: I4e17c971b445f71363cb434db233eca42131745c
Reviewed-on: http://gerrit.dmdirc.com/2165
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.7rc1
Chris Smith 12 years ago
parent
commit
d6a7f72b50

+ 10
- 4
src/com/dmdirc/addons/identd/IdentdPlugin.java View File

23
 package com.dmdirc.addons.identd;
23
 package com.dmdirc.addons.identd;
24
 
24
 
25
 import com.dmdirc.Server;
25
 import com.dmdirc.Server;
26
-import com.dmdirc.actions.ActionManager;
27
 import com.dmdirc.actions.CoreActionType;
26
 import com.dmdirc.actions.CoreActionType;
28
 import com.dmdirc.actions.interfaces.ActionType;
27
 import com.dmdirc.actions.interfaces.ActionType;
29
 import com.dmdirc.config.IdentityManager;
28
 import com.dmdirc.config.IdentityManager;
32
 import com.dmdirc.config.prefs.PreferencesDialogModel;
31
 import com.dmdirc.config.prefs.PreferencesDialogModel;
33
 import com.dmdirc.config.prefs.PreferencesSetting;
32
 import com.dmdirc.config.prefs.PreferencesSetting;
34
 import com.dmdirc.config.prefs.PreferencesType;
33
 import com.dmdirc.config.prefs.PreferencesType;
34
+import com.dmdirc.interfaces.ActionController;
35
 import com.dmdirc.interfaces.ActionListener;
35
 import com.dmdirc.interfaces.ActionListener;
36
 import com.dmdirc.plugins.BasePlugin;
36
 import com.dmdirc.plugins.BasePlugin;
37
 import com.dmdirc.plugins.PluginInfo;
37
 import com.dmdirc.plugins.PluginInfo;
51
     private IdentdServer myServer;
51
     private IdentdServer myServer;
52
     /** This plugin's plugin info. */
52
     /** This plugin's plugin info. */
53
     private final PluginInfo pluginInfo;
53
     private final PluginInfo pluginInfo;
54
+    /** The action controller to use. */
55
+    private final ActionController actionController;
54
 
56
 
55
     /**
57
     /**
56
      * Creates a new instance of this plugin.
58
      * Creates a new instance of this plugin.
57
      *
59
      *
58
      * @param pluginInfo This plugin's plugin info
60
      * @param pluginInfo This plugin's plugin info
61
+     * @param actionController The action controller to register listeners with
59
      */
62
      */
60
-    public IdentdPlugin(final PluginInfo pluginInfo) {
63
+    public IdentdPlugin(final PluginInfo pluginInfo,
64
+            final ActionController actionController) {
61
         super();
65
         super();
66
+
62
         this.pluginInfo = pluginInfo;
67
         this.pluginInfo = pluginInfo;
68
+        this.actionController = actionController;
63
     }
69
     }
64
 
70
 
65
     /**
71
     /**
68
     @Override
74
     @Override
69
     public void onLoad() {
75
     public void onLoad() {
70
         // Add action hooks
76
         // Add action hooks
71
-        ActionManager.getActionManager().registerListener(this,
77
+        actionController.registerListener(this,
72
                 CoreActionType.SERVER_CONNECTED,
78
                 CoreActionType.SERVER_CONNECTED,
73
                 CoreActionType.SERVER_CONNECTING,
79
                 CoreActionType.SERVER_CONNECTING,
74
                 CoreActionType.SERVER_CONNECTERROR);
80
                 CoreActionType.SERVER_CONNECTERROR);
87
     public void onUnload() {
93
     public void onUnload() {
88
         myServer.stopServer();
94
         myServer.stopServer();
89
         servers.clear();
95
         servers.clear();
90
-        ActionManager.getActionManager().unregisterListener(this);
96
+        actionController.unregisterListener(this);
91
     }
97
     }
92
 
98
 
93
     /**
99
     /**

+ 32
- 24
src/com/dmdirc/addons/logging/LoggingPlugin.java View File

27
 import com.dmdirc.Main;
27
 import com.dmdirc.Main;
28
 import com.dmdirc.Query;
28
 import com.dmdirc.Query;
29
 import com.dmdirc.Server;
29
 import com.dmdirc.Server;
30
-import com.dmdirc.actions.ActionManager;
31
 import com.dmdirc.actions.CoreActionType;
30
 import com.dmdirc.actions.CoreActionType;
32
 import com.dmdirc.actions.interfaces.ActionType;
31
 import com.dmdirc.actions.interfaces.ActionType;
33
 import com.dmdirc.config.IdentityManager;
32
 import com.dmdirc.config.IdentityManager;
36
 import com.dmdirc.config.prefs.PreferencesDialogModel;
35
 import com.dmdirc.config.prefs.PreferencesDialogModel;
37
 import com.dmdirc.config.prefs.PreferencesSetting;
36
 import com.dmdirc.config.prefs.PreferencesSetting;
38
 import com.dmdirc.config.prefs.PreferencesType;
37
 import com.dmdirc.config.prefs.PreferencesType;
38
+import com.dmdirc.interfaces.ActionController;
39
 import com.dmdirc.interfaces.ActionListener;
39
 import com.dmdirc.interfaces.ActionListener;
40
 import com.dmdirc.interfaces.ConfigChangeListener;
40
 import com.dmdirc.interfaces.ConfigChangeListener;
41
 import com.dmdirc.logger.ErrorLevel;
41
 import com.dmdirc.logger.ErrorLevel;
85
     private int historyLines, backbufferLines;
85
     private int historyLines, backbufferLines;
86
     /** This plugin's plugin info. */
86
     /** This plugin's plugin info. */
87
     private final PluginInfo pluginInfo;
87
     private final PluginInfo pluginInfo;
88
-
89
-    /** Open File. */
90
-    protected static class OpenFile {
91
-
92
-        /** Last used time. */
93
-        public long lastUsedTime = System.currentTimeMillis();
94
-
95
-        /** Open file's writer. */
96
-        public BufferedWriter writer = null;
97
-
98
-        /**
99
-         * Creates a new open file.
100
-         *
101
-         * @param writer Writer that has file open
102
-         */
103
-        protected OpenFile(final BufferedWriter writer) {
104
-            this.writer = writer;
105
-        }
106
-
107
-    }
88
+    /** The action controller to use. */
89
+    private final ActionController actionController;
108
 
90
 
109
     /** Timer used to close idle files. */
91
     /** Timer used to close idle files. */
110
     protected Timer idleFileTimer;
92
     protected Timer idleFileTimer;
120
      * Creates a new instance of this plugin.
102
      * Creates a new instance of this plugin.
121
      *
103
      *
122
      * @param pluginInfo This plugin's plugin info
104
      * @param pluginInfo This plugin's plugin info
105
+     * @param actionController The action controller to register listeners with
123
      */
106
      */
124
-    public LoggingPlugin(final PluginInfo pluginInfo) {
107
+    public LoggingPlugin(final PluginInfo pluginInfo,
108
+            final ActionController actionController) {
125
         super();
109
         super();
110
+
126
         this.pluginInfo = pluginInfo;
111
         this.pluginInfo = pluginInfo;
112
+        this.actionController = actionController;
113
+
127
         registerCommand(new LoggingCommand(), LoggingCommand.INFO);
114
         registerCommand(new LoggingCommand(), LoggingCommand.INFO);
128
     }
115
     }
129
 
116
 
154
 
141
 
155
         IdentityManager.getGlobalConfig().addChangeListener(getDomain(), this);
142
         IdentityManager.getGlobalConfig().addChangeListener(getDomain(), this);
156
 
143
 
157
-        ActionManager.getActionManager().registerListener(this,
144
+        actionController.registerListener(this,
158
                 CoreActionType.CHANNEL_OPENED,
145
                 CoreActionType.CHANNEL_OPENED,
159
                 CoreActionType.CHANNEL_CLOSED,
146
                 CoreActionType.CHANNEL_CLOSED,
160
                 CoreActionType.CHANNEL_MESSAGE,
147
                 CoreActionType.CHANNEL_MESSAGE,
220
             idleFileTimer.purge();
207
             idleFileTimer.purge();
221
         }
208
         }
222
 
209
 
223
-        ActionManager.getActionManager().unregisterListener(this);
210
+        actionController.unregisterListener(this);
224
 
211
 
225
         synchronized (openFiles) {
212
         synchronized (openFiles) {
226
             for (OpenFile file : openFiles.values()) {
213
             for (OpenFile file : openFiles.values()) {
228
             }
215
             }
229
             openFiles.clear();
216
             openFiles.clear();
230
         }
217
         }
218
+
231
         super.onUnload();
219
         super.onUnload();
232
     }
220
     }
233
 
221
 
849
         logDirectory = IdentityManager.getGlobalConfig().getOption(getDomain(), "general.directory");
837
         logDirectory = IdentityManager.getGlobalConfig().getOption(getDomain(), "general.directory");
850
     }
838
     }
851
 
839
 
840
+    /** Open File. */
841
+    protected static class OpenFile {
842
+
843
+        /** Last used time. */
844
+        public long lastUsedTime = System.currentTimeMillis();
845
+
846
+        /** Open file's writer. */
847
+        public BufferedWriter writer = null;
848
+
849
+        /**
850
+         * Creates a new open file.
851
+         *
852
+         * @param writer Writer that has file open
853
+         */
854
+        protected OpenFile(final BufferedWriter writer) {
855
+            this.writer = writer;
856
+        }
857
+
858
+    }
859
+
852
 }
860
 }

+ 13
- 5
src/com/dmdirc/addons/nowplaying/NowPlayingPlugin.java View File

22
 
22
 
23
 package com.dmdirc.addons.nowplaying;
23
 package com.dmdirc.addons.nowplaying;
24
 
24
 
25
-import com.dmdirc.actions.ActionManager;
26
 import com.dmdirc.actions.CoreActionType;
25
 import com.dmdirc.actions.CoreActionType;
27
 import com.dmdirc.actions.interfaces.ActionType;
26
 import com.dmdirc.actions.interfaces.ActionType;
28
 import com.dmdirc.addons.ui_swing.UIUtilities;
27
 import com.dmdirc.addons.ui_swing.UIUtilities;
30
 import com.dmdirc.config.prefs.PluginPreferencesCategory;
29
 import com.dmdirc.config.prefs.PluginPreferencesCategory;
31
 import com.dmdirc.config.prefs.PreferencesCategory;
30
 import com.dmdirc.config.prefs.PreferencesCategory;
32
 import com.dmdirc.config.prefs.PreferencesDialogModel;
31
 import com.dmdirc.config.prefs.PreferencesDialogModel;
32
+import com.dmdirc.interfaces.ActionController;
33
 import com.dmdirc.interfaces.ActionListener;
33
 import com.dmdirc.interfaces.ActionListener;
34
 import com.dmdirc.plugins.BasePlugin;
34
 import com.dmdirc.plugins.BasePlugin;
35
 import com.dmdirc.plugins.Plugin;
35
 import com.dmdirc.plugins.Plugin;
55
     private List<String> order;
55
     private List<String> order;
56
     /** This plugin's plugin info. */
56
     /** This plugin's plugin info. */
57
     private final PluginInfo pluginInfo;
57
     private final PluginInfo pluginInfo;
58
+    /** The action controller to use. */
59
+    private final ActionController actionController;
58
 
60
 
59
     /**
61
     /**
60
      * Creates a new instance of this plugin.
62
      * Creates a new instance of this plugin.
61
      *
63
      *
62
      * @param pluginInfo This plugin's plugin info
64
      * @param pluginInfo This plugin's plugin info
65
+     * @param actionController The action controller to register listeners with
63
      */
66
      */
64
-    public NowPlayingPlugin(final PluginInfo pluginInfo) {
67
+    public NowPlayingPlugin(final PluginInfo pluginInfo,
68
+            final ActionController actionController) {
65
         super();
69
         super();
70
+
66
         this.pluginInfo = pluginInfo;
71
         this.pluginInfo = pluginInfo;
72
+        this.actionController = actionController;
73
+
67
         registerCommand(new NowPlayingCommand(this), NowPlayingCommand.INFO);
74
         registerCommand(new NowPlayingCommand(this), NowPlayingCommand.INFO);
68
     }
75
     }
69
 
76
 
75
 
82
 
76
         loadSettings();
83
         loadSettings();
77
 
84
 
78
-        ActionManager.getActionManager().registerListener(this,
79
-                CoreActionType.PLUGIN_LOADED, CoreActionType.PLUGIN_UNLOADED);
85
+        actionController.registerListener(this, CoreActionType.PLUGIN_LOADED,
86
+                CoreActionType.PLUGIN_UNLOADED);
80
 
87
 
81
         for (PluginInfo target : PluginManager.getPluginManager().getPluginInfos()) {
88
         for (PluginInfo target : PluginManager.getPluginManager().getPluginInfos()) {
82
             if (target.isLoaded()) {
89
             if (target.isLoaded()) {
91
     public void onUnload() {
98
     public void onUnload() {
92
         sources.clear();
99
         sources.clear();
93
         managers.clear();
100
         managers.clear();
94
-        ActionManager.getActionManager().unregisterListener(this);
101
+        actionController.unregisterListener(this);
102
+
95
         super.onUnload();
103
         super.onUnload();
96
     }
104
     }
97
 
105
 

+ 15
- 5
src/com/dmdirc/addons/parserdebug/DebugPlugin.java View File

23
 package com.dmdirc.addons.parserdebug;
23
 package com.dmdirc.addons.parserdebug;
24
 
24
 
25
 import com.dmdirc.Server;
25
 import com.dmdirc.Server;
26
-import com.dmdirc.actions.ActionManager;
27
 import com.dmdirc.actions.CoreActionType;
26
 import com.dmdirc.actions.CoreActionType;
28
 import com.dmdirc.actions.interfaces.ActionType;
27
 import com.dmdirc.actions.interfaces.ActionType;
28
+import com.dmdirc.interfaces.ActionController;
29
 import com.dmdirc.interfaces.ActionListener;
29
 import com.dmdirc.interfaces.ActionListener;
30
 import com.dmdirc.parser.interfaces.Parser;
30
 import com.dmdirc.parser.interfaces.Parser;
31
 import com.dmdirc.parser.interfaces.callbacks.DebugInfoListener;
31
 import com.dmdirc.parser.interfaces.callbacks.DebugInfoListener;
44
     /** Map of parsers registered. */
44
     /** Map of parsers registered. */
45
     protected final Map<Parser, DebugWindow> registeredParsers
45
     protected final Map<Parser, DebugWindow> registeredParsers
46
             = new HashMap<Parser, DebugWindow>();
46
             = new HashMap<Parser, DebugWindow>();
47
+    /** The action controller to use. */
48
+    private final ActionController actionController;
47
 
49
 
48
-    /** Creates a new instance of this plugin. */
49
-    public DebugPlugin() {
50
+    /**
51
+     * Creates a new instance of this plugin.
52
+     *
53
+     * @param actionController The action controller to register listeners with
54
+     */
55
+    public DebugPlugin(final ActionController actionController) {
50
         super();
56
         super();
57
+
58
+        this.actionController = actionController;
59
+
51
         registerCommand(new ParserDebugCommand(this), ParserDebugCommand.INFO);
60
         registerCommand(new ParserDebugCommand(this), ParserDebugCommand.INFO);
52
     }
61
     }
53
 
62
 
54
     /** {@inheritDoc} */
63
     /** {@inheritDoc} */
55
     @Override
64
     @Override
56
     public void onLoad() {
65
     public void onLoad() {
57
-        ActionManager.getActionManager().unregisterListener(this,
58
-                CoreActionType.SERVER_DISCONNECTED);
66
+        actionController.registerListener(this, CoreActionType.SERVER_DISCONNECTED);
59
         super.onLoad();
67
         super.onLoad();
60
     }
68
     }
61
 
69
 
62
     /** {@inheritDoc} */
70
     /** {@inheritDoc} */
63
     @Override
71
     @Override
64
     public void onUnload() {
72
     public void onUnload() {
73
+        actionController.unregisterListener(this);
74
+
65
         final ArrayList<DebugWindow> windowList = new ArrayList<DebugWindow>();
75
         final ArrayList<DebugWindow> windowList = new ArrayList<DebugWindow>();
66
         for (Parser parser : registeredParsers.keySet()) {
76
         for (Parser parser : registeredParsers.keySet()) {
67
             try {
77
             try {

+ 14
- 9
src/com/dmdirc/addons/scriptplugin/ScriptPlugin.java View File

23
 package com.dmdirc.addons.scriptplugin;
23
 package com.dmdirc.addons.scriptplugin;
24
 
24
 
25
 import com.dmdirc.Main;
25
 import com.dmdirc.Main;
26
-import com.dmdirc.actions.ActionManager;
27
 import com.dmdirc.actions.CoreActionType;
26
 import com.dmdirc.actions.CoreActionType;
28
 import com.dmdirc.actions.interfaces.ActionType;
27
 import com.dmdirc.actions.interfaces.ActionType;
28
+import com.dmdirc.interfaces.ActionController;
29
 import com.dmdirc.interfaces.ActionListener;
29
 import com.dmdirc.interfaces.ActionListener;
30
 import com.dmdirc.logger.ErrorLevel;
30
 import com.dmdirc.logger.ErrorLevel;
31
 import com.dmdirc.logger.Logger;
31
 import com.dmdirc.logger.Logger;
58
     private Map<String, ScriptEngineWrapper> scripts = new HashMap<String, ScriptEngineWrapper>();
58
     private Map<String, ScriptEngineWrapper> scripts = new HashMap<String, ScriptEngineWrapper>();
59
     /** Used to store permanent variables */
59
     /** Used to store permanent variables */
60
     protected TypedProperties globalVariables = new TypedProperties();
60
     protected TypedProperties globalVariables = new TypedProperties();
61
+    /** The action controller to use. */
62
+    private final ActionController actionController;
61
 
63
 
62
     /**
64
     /**
63
      * Creates a new instance of the Script Plugin.
65
      * Creates a new instance of the Script Plugin.
66
+     *
67
+     * @param actionController The action controller to register listeners with
64
      */
68
      */
65
-    public ScriptPlugin() {
69
+    public ScriptPlugin(final ActionController actionController) {
66
         super();
70
         super();
67
 
71
 
72
+        this.actionController = actionController;
73
+
68
         // Add the JS Helper to the scriptFactory
74
         // Add the JS Helper to the scriptFactory
69
         getScriptFactory().put("globalHelper", getJavaScriptHelper());
75
         getScriptFactory().put("globalHelper", getJavaScriptHelper());
70
         getScriptFactory().put("globalVariables", getGlobalVariables());
76
         getScriptFactory().put("globalVariables", getGlobalVariables());
76
     public void onLoad() {
82
     public void onLoad() {
77
         // Register the plugin_loaded action initially, this will be called
83
         // Register the plugin_loaded action initially, this will be called
78
         // after this method finishes for us to register the rest.
84
         // after this method finishes for us to register the rest.
79
-        ActionManager.getActionManager().registerListener(this,
80
-                CoreActionType.PLUGIN_LOADED);
85
+        actionController.registerListener(this, CoreActionType.PLUGIN_LOADED);
81
 
86
 
82
         // Make sure our scripts dir exists
87
         // Make sure our scripts dir exists
83
         final File newDir = new File(scriptDir);
88
         final File newDir = new File(scriptDir);
101
     /** {@inheritDoc} */
106
     /** {@inheritDoc} */
102
     @Override
107
     @Override
103
     public void onUnload() {
108
     public void onUnload() {
104
-        ActionManager.getActionManager().unregisterListener(this);
109
+        actionController.unregisterListener(this);
105
 
110
 
106
         final File savedVariables = new File(scriptDir+"storedVariables");
111
         final File savedVariables = new File(scriptDir+"storedVariables");
107
         FileOutputStream fos = null;
112
         FileOutputStream fos = null;
121
      * This will unregister all the actions first.
126
      * This will unregister all the actions first.
122
      */
127
      */
123
     private void registerAll() {
128
     private void registerAll() {
124
-        ActionManager.getActionManager().registerListener(this);
125
-        for (Map.Entry<String, List<ActionType>> entry : ActionManager
126
-                .getActionManager().getGroupedTypes().entrySet()) {
129
+        actionController.registerListener(this);
130
+        for (Map.Entry<String, List<ActionType>> entry
131
+                : actionController.getGroupedTypes().entrySet()) {
127
             final List<ActionType> types = entry.getValue();
132
             final List<ActionType> types = entry.getValue();
128
-            ActionManager.getActionManager().registerListener(this,
133
+            actionController.registerListener(this,
129
                     types.toArray(new ActionType[types.size()]));
134
                     types.toArray(new ActionType[types.size()]));
130
         }
135
         }
131
     }
136
     }

+ 11
- 5
src/com/dmdirc/addons/systray/SystrayPlugin.java View File

22
 
22
 
23
 package com.dmdirc.addons.systray;
23
 package com.dmdirc.addons.systray;
24
 
24
 
25
-import com.dmdirc.actions.ActionManager;
26
 import com.dmdirc.actions.CoreActionType;
25
 import com.dmdirc.actions.CoreActionType;
27
 import com.dmdirc.actions.interfaces.ActionType;
26
 import com.dmdirc.actions.interfaces.ActionType;
28
 import com.dmdirc.addons.ui_swing.MainFrame;
27
 import com.dmdirc.addons.ui_swing.MainFrame;
33
 import com.dmdirc.config.prefs.PreferencesDialogModel;
32
 import com.dmdirc.config.prefs.PreferencesDialogModel;
34
 import com.dmdirc.config.prefs.PreferencesSetting;
33
 import com.dmdirc.config.prefs.PreferencesSetting;
35
 import com.dmdirc.config.prefs.PreferencesType;
34
 import com.dmdirc.config.prefs.PreferencesType;
35
+import com.dmdirc.interfaces.ActionController;
36
 import com.dmdirc.plugins.BasePlugin;
36
 import com.dmdirc.plugins.BasePlugin;
37
 import com.dmdirc.plugins.PluginInfo;
37
 import com.dmdirc.plugins.PluginInfo;
38
 import com.dmdirc.plugins.PluginManager;
38
 import com.dmdirc.plugins.PluginManager;
64
     private MainFrame mainFrame;
64
     private MainFrame mainFrame;
65
     /** This plugin's plugin info. */
65
     /** This plugin's plugin info. */
66
     private final PluginInfo pluginInfo;
66
     private final PluginInfo pluginInfo;
67
+    /** The action controller to use. */
68
+    private final ActionController actionController;
67
 
69
 
68
     /**
70
     /**
69
      * Creates a new system tray plugin.
71
      * Creates a new system tray plugin.
70
      *
72
      *
71
      * @param pluginInfo This plugin's plugin info
73
      * @param pluginInfo This plugin's plugin info
74
+     * @param actionController The action controller to use
72
      */
75
      */
73
-    public SystrayPlugin(final PluginInfo pluginInfo) {
76
+    public SystrayPlugin(final PluginInfo pluginInfo,
77
+            final ActionController actionController) {
74
         super();
78
         super();
79
+
75
         this.pluginInfo = pluginInfo;
80
         this.pluginInfo = pluginInfo;
81
+        this.actionController = actionController;
82
+
76
         final MenuItem show = new MenuItem("Show/hide");
83
         final MenuItem show = new MenuItem("Show/hide");
77
         final MenuItem quit = new MenuItem("Quit");
84
         final MenuItem quit = new MenuItem("Quit");
78
 
85
 
155
             mainFrame = ((SwingController) PluginManager.getPluginManager()
162
             mainFrame = ((SwingController) PluginManager.getPluginManager()
156
                     .getPluginInfoByName("ui_swing").getPlugin())
163
                     .getPluginInfoByName("ui_swing").getPlugin())
157
                     .getMainFrame();
164
                     .getMainFrame();
158
-            ActionManager.getActionManager().registerListener(this,
159
-                CoreActionType.CLIENT_MINIMISED);
165
+            actionController.registerListener(this, CoreActionType.CLIENT_MINIMISED);
160
         } catch (AWTException ex) {
166
         } catch (AWTException ex) {
161
             continueLoading = false;
167
             continueLoading = false;
162
         }
168
         }
170
     @Override
176
     @Override
171
     public void onUnload() {
177
     public void onUnload() {
172
         SystemTray.getSystemTray().remove(icon);
178
         SystemTray.getSystemTray().remove(icon);
173
-        ActionManager.getActionManager().unregisterListener(this);
179
+        actionController.unregisterListener(this);
174
         super.onUnload();
180
         super.onUnload();
175
     }
181
     }
176
 
182
 

+ 18
- 12
src/com/dmdirc/addons/time/TimePlugin.java View File

22
 
22
 
23
 package com.dmdirc.addons.time;
23
 package com.dmdirc.addons.time;
24
 
24
 
25
-import com.dmdirc.actions.ActionManager;
25
+import com.dmdirc.interfaces.ActionController;
26
 import com.dmdirc.plugins.BasePlugin;
26
 import com.dmdirc.plugins.BasePlugin;
27
 
27
 
28
 import java.util.Calendar;
28
 import java.util.Calendar;
32
 /**
32
 /**
33
  * Provides various time-related features.
33
  * Provides various time-related features.
34
  */
34
  */
35
-public final class TimePlugin  extends BasePlugin {
35
+public final class TimePlugin extends BasePlugin {
36
 
36
 
37
     /** Have we registered our types already? */
37
     /** Have we registered our types already? */
38
     private static boolean registered;
38
     private static boolean registered;
40
     private Timer timer;
40
     private Timer timer;
41
     /** The Manager to use for managing timers. */
41
     /** The Manager to use for managing timers. */
42
     private TimerManager manager;
42
     private TimerManager manager;
43
+    /** The action controller to use. */
44
+    private final ActionController actionController;
43
 
45
 
44
-    /** Creates a new instance of this plugin. */
45
-    public TimePlugin() {
46
+    /**
47
+     * Creates a new instance of this plugin.
48
+     *
49
+     * @param actionController The action controller to register listeners with
50
+     */
51
+    public TimePlugin(final ActionController actionController) {
46
         super();
52
         super();
53
+
54
+        this.actionController = actionController;
55
+
47
         registerCommand(new TimerCommand(manager), TimerCommand.INFO);
56
         registerCommand(new TimerCommand(manager), TimerCommand.INFO);
48
     }
57
     }
49
 
58
 
51
     @Override
60
     @Override
52
     public void onLoad() {
61
     public void onLoad() {
53
         if (!registered) {
62
         if (!registered) {
54
-            ActionManager.getActionManager().registerTypes(
55
-                    TimeActionType.values());
63
+            actionController.registerTypes(TimeActionType.values());
56
             registered = true;
64
             registered = true;
57
         }
65
         }
58
 
66
 
76
     public void runTimer() {
84
     public void runTimer() {
77
         final Calendar cal = Calendar.getInstance();
85
         final Calendar cal = Calendar.getInstance();
78
 
86
 
79
-        ActionManager.getActionManager().triggerEvent(
80
-                TimeActionType.TIME_MINUTE, null, cal);
87
+        actionController.triggerEvent(TimeActionType.TIME_MINUTE, null, cal);
81
 
88
 
82
         if (cal.get(Calendar.MINUTE) == 0) {
89
         if (cal.get(Calendar.MINUTE) == 0) {
83
-            ActionManager.getActionManager().triggerEvent(
84
-                    TimeActionType.TIME_HOUR, null, cal);
90
+            actionController.triggerEvent(TimeActionType.TIME_HOUR, null, cal);
85
 
91
 
86
             if (cal.get(Calendar.HOUR_OF_DAY) == 0) {
92
             if (cal.get(Calendar.HOUR_OF_DAY) == 0) {
87
-                ActionManager.getActionManager().triggerEvent(
88
-                        TimeActionType.TIME_DAY, null, cal);
93
+                actionController.triggerEvent(TimeActionType.TIME_DAY, null, cal);
89
             }
94
             }
90
         }
95
         }
91
     }
96
     }
98
             timer = null;
103
             timer = null;
99
         }
104
         }
100
         manager = null;
105
         manager = null;
106
+
101
         super.onUnload();
107
         super.onUnload();
102
     }
108
     }
103
 
109
 

+ 2
- 1
test/com/dmdirc/addons/logging/TestLoggingPlugin.java View File

22
 
22
 
23
 package com.dmdirc.addons.logging;
23
 package com.dmdirc.addons.logging;
24
 
24
 
25
+import com.dmdirc.interfaces.ActionController;
25
 import com.dmdirc.plugins.PluginInfo;
26
 import com.dmdirc.plugins.PluginInfo;
26
 import com.dmdirc.util.MapList;
27
 import com.dmdirc.util.MapList;
27
 import static org.mockito.Mockito.*;
28
 import static org.mockito.Mockito.*;
31
     public final MapList<Object, String> lines = new MapList<Object, String>();
32
     public final MapList<Object, String> lines = new MapList<Object, String>();
32
 
33
 
33
     public TestLoggingPlugin() {
34
     public TestLoggingPlugin() {
34
-        super(mock(PluginInfo.class));
35
+        super(mock(PluginInfo.class), mock(ActionController.class));
35
     }
36
     }
36
 
37
 
37
     @Override
38
     @Override

Loading…
Cancel
Save