瀏覽代碼

Add base command plugins

Change-Id: I8bb1e5bc9e2ca965ff3687d365a167c9b5ccc746
Depends-On: I1d49bc2e572e44466193b4851646edb01d303998
Reviewed-on: http://gerrit.dmdirc.com/2613
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
tags/0.8
Greg Holmes 11 年之前
父節點
當前提交
2ca4779a17
共有 49 個文件被更改,包括 250 次插入142 次删除
  1. 7
    4
      src/com/dmdirc/addons/activewindow/ActiveWindowPlugin.java
  2. 10
    5
      src/com/dmdirc/addons/audio/AudioPlugin.java
  3. 10
    5
      src/com/dmdirc/addons/calc/CalcPlugin.java
  4. 10
    5
      src/com/dmdirc/addons/contactlist/ContactListPlugin.java
  5. 7
    5
      src/com/dmdirc/addons/dcc/DCCPlugin.java
  6. 10
    5
      src/com/dmdirc/addons/dcop/DcopPlugin.java
  7. 7
    4
      src/com/dmdirc/addons/debug/DebugPlugin.java
  8. 10
    5
      src/com/dmdirc/addons/dns/DNSPlugin.java
  9. 10
    5
      src/com/dmdirc/addons/exec/ExecPlugin.java
  10. 17
    9
      src/com/dmdirc/addons/freedesktop_notifications/FreeDesktopNotificationsPlugin.java
  11. 1
    1
      src/com/dmdirc/addons/identd/IdentdPlugin.java
  12. 1
    1
      src/com/dmdirc/addons/lagdisplay/LagDisplayPlugin.java
  13. 7
    4
      src/com/dmdirc/addons/logging/LoggingPlugin.java
  14. 1
    1
      src/com/dmdirc/addons/mediasource_dbus/DBusMediaSource.java
  15. 1
    1
      src/com/dmdirc/addons/mediasource_dcop/DcopMediaSourcePlugin.java
  16. 1
    1
      src/com/dmdirc/addons/mediasource_linux_title/TitleMediaSourcePlugin.java
  17. 1
    1
      src/com/dmdirc/addons/mediasource_mplayer/MplayerMediaSourcePlugin.java
  18. 1
    1
      src/com/dmdirc/addons/mediasource_vlc/VlcMediaSourcePlugin.java
  19. 14
    6
      src/com/dmdirc/addons/mediasource_windows/WindowsMediaSourcePlugin.java
  20. 1
    1
      src/com/dmdirc/addons/nickcolours/NickColourPlugin.java
  21. 7
    3
      src/com/dmdirc/addons/nma/NotifyMyAndroidPlugin.java
  22. 7
    4
      src/com/dmdirc/addons/notifications/NotificationsPlugin.java
  23. 7
    4
      src/com/dmdirc/addons/nowplaying/NowPlayingPlugin.java
  24. 7
    4
      src/com/dmdirc/addons/osd/OsdPlugin.java
  25. 7
    3
      src/com/dmdirc/addons/osx_integration/OsxIntegrationPlugin.java
  26. 1
    1
      src/com/dmdirc/addons/parser_irc/IrcPlugin.java
  27. 1
    1
      src/com/dmdirc/addons/parser_msn/MSNPlugin.java
  28. 1
    1
      src/com/dmdirc/addons/parser_twitter/TwitterPlugin.java
  29. 1
    1
      src/com/dmdirc/addons/parser_xmpp/XmppPlugin.java
  30. 8
    4
      src/com/dmdirc/addons/parserdebug/DebugPlugin.java
  31. 10
    5
      src/com/dmdirc/addons/redirect/RedirectPlugin.java
  32. 1
    1
      src/com/dmdirc/addons/relaybot/RelayBotPlugin.java
  33. 8
    4
      src/com/dmdirc/addons/scriptplugin/ScriptPlugin.java
  34. 2
    1
      src/com/dmdirc/addons/serverlistdialog/ServerListDialogPlugin.java
  35. 1
    1
      src/com/dmdirc/addons/serverlists/ServerListPlugin.java
  36. 1
    1
      src/com/dmdirc/addons/sessionlock/SessionLock.java
  37. 1
    1
      src/com/dmdirc/addons/swingdebug/SwingDebugPlugin.java
  38. 8
    5
      src/com/dmdirc/addons/systray/SystrayPlugin.java
  39. 1
    1
      src/com/dmdirc/addons/tabcompletion_bash/BashStylePlugin.java
  40. 1
    1
      src/com/dmdirc/addons/tabcompletion_mirc/MircStylePlugin.java
  41. 7
    4
      src/com/dmdirc/addons/time/TimePlugin.java
  42. 1
    1
      src/com/dmdirc/addons/ui_dummy/DummyController.java
  43. 10
    4
      src/com/dmdirc/addons/ui_swing/SwingController.java
  44. 1
    1
      src/com/dmdirc/addons/ui_web/WebInterfacePlugin.java
  45. 11
    6
      src/com/dmdirc/addons/urlcatcher/UrlCatcherPlugin.java
  46. 1
    1
      src/com/dmdirc/addons/userlevel/UserLevelPlugin.java
  47. 7
    4
      src/com/dmdirc/addons/windowflashing/WindowFlashing.java
  48. 1
    1
      src/com/dmdirc/addons/windowstatus/WindowStatusPlugin.java
  49. 3
    3
      test/com/dmdirc/addons/urlcatcher/UrlCatcherPluginTest.java

+ 7
- 4
src/com/dmdirc/addons/activewindow/ActiveWindowPlugin.java 查看文件

23
 package com.dmdirc.addons.activewindow;
23
 package com.dmdirc.addons.activewindow;
24
 
24
 
25
 import com.dmdirc.addons.ui_swing.SwingController;
25
 import com.dmdirc.addons.ui_swing.SwingController;
26
+import com.dmdirc.interfaces.CommandController;
26
 import com.dmdirc.messages.MessageSinkManager;
27
 import com.dmdirc.messages.MessageSinkManager;
27
-import com.dmdirc.plugins.BasePlugin;
28
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
28
 
29
 
29
 /** Plugin to provide an active window command to the Swing UI. */
30
 /** Plugin to provide an active window command to the Swing UI. */
30
-public final class ActiveWindowPlugin extends BasePlugin {
31
+public final class ActiveWindowPlugin extends BaseCommandPlugin {
31
 
32
 
32
     /** The message sink to register and unregister. */
33
     /** The message sink to register and unregister. */
33
     private final ActiveWindowMessageSink sink;
34
     private final ActiveWindowMessageSink sink;
36
      * Creates a new instance of this plugin.
37
      * Creates a new instance of this plugin.
37
      *
38
      *
38
      * @param controller The controller to use to find active windows
39
      * @param controller The controller to use to find active windows
40
+     * @param commandController Command controller to register commands
39
      */
41
      */
40
-    public ActiveWindowPlugin(final SwingController controller) {
41
-        super();
42
+    public ActiveWindowPlugin(final SwingController controller,
43
+            final CommandController commandController) {
44
+        super(commandController);
42
 
45
 
43
         sink = new ActiveWindowMessageSink(controller.getMainFrame());
46
         sink = new ActiveWindowMessageSink(controller.getMainFrame());
44
 
47
 

+ 10
- 5
src/com/dmdirc/addons/audio/AudioPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.audio;
23
 package com.dmdirc.addons.audio;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.interfaces.CommandController;
26
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
26
 
27
 
27
 /**
28
 /**
28
  * Adds Audio playing facility to client.
29
  * Adds Audio playing facility to client.
29
  */
30
  */
30
-public final class AudioPlugin extends BasePlugin {
31
+public final class AudioPlugin extends BaseCommandPlugin {
31
 
32
 
32
-    /** Creates a new instance of this plugin. */
33
-    public AudioPlugin() {
34
-        super();
33
+    /**
34
+     * Creates a new instance of this plugin.
35
+     *
36
+     * @param commandController Command controller to register commands
37
+     */
38
+    public AudioPlugin(final CommandController commandController) {
39
+        super(commandController);
35
         registerCommand(new AudioCommand(), AudioCommand.INFO);
40
         registerCommand(new AudioCommand(), AudioCommand.INFO);
36
         registerCommand(new BeepCommand(), BeepCommand.INFO);
41
         registerCommand(new BeepCommand(), BeepCommand.INFO);
37
     }
42
     }

+ 10
- 5
src/com/dmdirc/addons/calc/CalcPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.calc;
23
 package com.dmdirc.addons.calc;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.interfaces.CommandController;
26
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
26
 
27
 
27
 /**
28
 /**
28
  * A plugin which parses and evaluates various mathematical expressions.
29
  * A plugin which parses and evaluates various mathematical expressions.
29
  */
30
  */
30
-public class CalcPlugin extends BasePlugin {
31
+public class CalcPlugin extends BaseCommandPlugin {
31
 
32
 
32
-    /** Creates a new instance of this plugin. */
33
-    public CalcPlugin() {
34
-        super();
33
+    /**
34
+     * Creates a new instance of this plugin.
35
+     *
36
+     * @param commandController Command controller to register commands
37
+     */
38
+    public CalcPlugin(final CommandController commandController) {
39
+        super(commandController);
35
         registerCommand(new CalcCommand(), CalcCommand.INFO);
40
         registerCommand(new CalcCommand(), CalcCommand.INFO);
36
     }
41
     }
37
 }
42
 }

+ 10
- 5
src/com/dmdirc/addons/contactlist/ContactListPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.contactlist;
23
 package com.dmdirc.addons.contactlist;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.interfaces.CommandController;
26
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
26
 
27
 
27
 /**
28
 /**
28
  * Plugin to provide a POC contact list.
29
  * Plugin to provide a POC contact list.
29
  */
30
  */
30
-public final class ContactListPlugin extends BasePlugin {
31
+public final class ContactListPlugin extends BaseCommandPlugin {
31
 
32
 
32
-    /** Creates a new instance of this plugin. */
33
-    public ContactListPlugin() {
34
-        super();
33
+    /**
34
+     * Creates a new instance of this plugin.
35
+     *
36
+     * @param commandController Command controller to register commands
37
+     */
38
+    public ContactListPlugin(final CommandController commandController) {
39
+        super(commandController);
35
         registerCommand(new ContactListCommand(), ContactListCommand.INFO);
40
         registerCommand(new ContactListCommand(), ContactListCommand.INFO);
36
     }
41
     }
37
 }
42
 }

+ 7
- 5
src/com/dmdirc/addons/dcc/DCCPlugin.java 查看文件

42
 import com.dmdirc.config.prefs.PreferencesSetting;
42
 import com.dmdirc.config.prefs.PreferencesSetting;
43
 import com.dmdirc.config.prefs.PreferencesType;
43
 import com.dmdirc.config.prefs.PreferencesType;
44
 import com.dmdirc.interfaces.ActionListener;
44
 import com.dmdirc.interfaces.ActionListener;
45
+import com.dmdirc.interfaces.CommandController;
45
 import com.dmdirc.interfaces.actions.ActionType;
46
 import com.dmdirc.interfaces.actions.ActionType;
46
 import com.dmdirc.logger.ErrorLevel;
47
 import com.dmdirc.logger.ErrorLevel;
47
 import com.dmdirc.logger.Logger;
48
 import com.dmdirc.logger.Logger;
48
 import com.dmdirc.parser.interfaces.ClientInfo;
49
 import com.dmdirc.parser.interfaces.ClientInfo;
49
 import com.dmdirc.parser.interfaces.Parser;
50
 import com.dmdirc.parser.interfaces.Parser;
50
-import com.dmdirc.plugins.BasePlugin;
51
 import com.dmdirc.plugins.PluginInfo;
51
 import com.dmdirc.plugins.PluginInfo;
52
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
52
 import com.dmdirc.ui.WindowManager;
53
 import com.dmdirc.ui.WindowManager;
53
 
54
 
54
 import java.io.File;
55
 import java.io.File;
64
 /**
65
 /**
65
  * This plugin adds DCC to DMDirc.
66
  * This plugin adds DCC to DMDirc.
66
  */
67
  */
67
-public final class DCCPlugin extends BasePlugin implements ActionListener {
68
+public final class DCCPlugin extends BaseCommandPlugin implements ActionListener {
68
 
69
 
69
     /** Our DCC Container window. */
70
     /** Our DCC Container window. */
70
     private PlaceholderContainer container;
71
     private PlaceholderContainer container;
83
      * @param controller The controller to register UI implementations with
84
      * @param controller The controller to register UI implementations with
84
      * @param pluginInfo This plugin's plugin info
85
      * @param pluginInfo This plugin's plugin info
85
      * @param identityManager The Identity Manager that controls the current config
86
      * @param identityManager The Identity Manager that controls the current config
87
+     * @param commandController Command controller to register commands
86
      */
88
      */
87
     public DCCPlugin(final SwingController controller,
89
     public DCCPlugin(final SwingController controller,
88
             final PluginInfo pluginInfo,
90
             final PluginInfo pluginInfo,
89
-            final IdentityManager identityManager
90
-            ) {
91
-        super();
91
+            final IdentityManager identityManager,
92
+            final CommandController commandController) {
93
+        super(commandController);
92
         this.identityManager = identityManager;
94
         this.identityManager = identityManager;
93
         this.controller = controller;
95
         this.controller = controller;
94
         config = controller.getGlobalConfig();
96
         config = controller.getGlobalConfig();

+ 10
- 5
src/com/dmdirc/addons/dcop/DcopPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.dcop;
23
 package com.dmdirc.addons.dcop;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.interfaces.CommandController;
26
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
26
 
27
 
27
 import java.io.BufferedReader;
28
 import java.io.BufferedReader;
28
 import java.io.IOException;
29
 import java.io.IOException;
33
 /**
34
 /**
34
  * Allows the user to execute dcop commands (and read the results).
35
  * Allows the user to execute dcop commands (and read the results).
35
  */
36
  */
36
-public final class DcopPlugin extends BasePlugin {
37
+public final class DcopPlugin extends BaseCommandPlugin {
37
 
38
 
38
-    /** Creates a new instance of this plugin. */
39
-    public DcopPlugin() {
40
-        super();
39
+    /**
40
+     * Creates a new instance of this plugin.
41
+     *
42
+     * @param commandController Command controller to register commands
43
+     */
44
+    public DcopPlugin(final CommandController commandController) {
45
+        super(commandController);
41
         registerCommand(new DcopCommand(), DcopCommand.INFO);
46
         registerCommand(new DcopCommand(), DcopCommand.INFO);
42
     }
47
     }
43
 
48
 

+ 7
- 4
src/com/dmdirc/addons/debug/DebugPlugin.java 查看文件

24
 
24
 
25
 import com.dmdirc.addons.debug.commands.*; //NOPMD
25
 import com.dmdirc.addons.debug.commands.*; //NOPMD
26
 import com.dmdirc.config.IdentityManager;
26
 import com.dmdirc.config.IdentityManager;
27
+import com.dmdirc.interfaces.CommandController;
27
 import com.dmdirc.logger.ErrorLevel;
28
 import com.dmdirc.logger.ErrorLevel;
28
 import com.dmdirc.logger.Logger;
29
 import com.dmdirc.logger.Logger;
29
-import com.dmdirc.plugins.BasePlugin;
30
 import com.dmdirc.plugins.PluginManager;
30
 import com.dmdirc.plugins.PluginManager;
31
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
31
 
32
 
32
 import java.util.ArrayList;
33
 import java.util.ArrayList;
33
 import java.util.HashMap;
34
 import java.util.HashMap;
40
  * Debug plugin providing commands to aid in debugging the client.
41
  * Debug plugin providing commands to aid in debugging the client.
41
  */
42
  */
42
 @SuppressWarnings("unused")
43
 @SuppressWarnings("unused")
43
-public class DebugPlugin extends BasePlugin {
44
+public class DebugPlugin extends BaseCommandPlugin {
44
 
45
 
45
     /** List of build in debug commands to load. */
46
     /** List of build in debug commands to load. */
46
     private static final Class[] CLASSES = {
47
     private static final Class[] CLASSES = {
68
      *
69
      *
69
      * @param identityManager Identity manager instance
70
      * @param identityManager Identity manager instance
70
      * @param pluginManager Plugin manager instance.
71
      * @param pluginManager Plugin manager instance.
72
+     * @param commandController Command controller to register commands
71
      */
73
      */
72
     public DebugPlugin(final IdentityManager identityManager,
74
     public DebugPlugin(final IdentityManager identityManager,
73
-            final PluginManager pluginManager) {
74
-        super();
75
+            final PluginManager pluginManager,
76
+            final CommandController commandController) {
77
+        super(commandController);
75
         this.identityManager = identityManager;
78
         this.identityManager = identityManager;
76
         this.pluginManager = pluginManager;
79
         this.pluginManager = pluginManager;
77
         commands = new HashMap<String, DebugCommand>();
80
         commands = new HashMap<String, DebugCommand>();

+ 10
- 5
src/com/dmdirc/addons/dns/DNSPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.dns;
23
 package com.dmdirc.addons.dns;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.interfaces.CommandController;
26
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
26
 
27
 
27
 import java.net.InetAddress;
28
 import java.net.InetAddress;
28
 import java.net.UnknownHostException;
29
 import java.net.UnknownHostException;
33
 /**
34
 /**
34
  * DNS plugin.
35
  * DNS plugin.
35
  */
36
  */
36
-public final class DNSPlugin extends BasePlugin {
37
+public final class DNSPlugin extends BaseCommandPlugin {
37
 
38
 
38
-    /** Creates a new instance of this plugin. */
39
-    public DNSPlugin() {
40
-        super();
39
+    /**
40
+     * Creates a new instance of this plugin.
41
+     *
42
+     * @param commandController Command controller to register commands
43
+     */
44
+    public DNSPlugin(final CommandController commandController) {
45
+        super(commandController);
41
         registerCommand(new DNSCommand(), DNSCommand.INFO);
46
         registerCommand(new DNSCommand(), DNSCommand.INFO);
42
     }
47
     }
43
 
48
 

+ 10
- 5
src/com/dmdirc/addons/exec/ExecPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.exec;
23
 package com.dmdirc.addons.exec;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.interfaces.CommandController;
26
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
26
 
27
 
27
 /**
28
 /**
28
  * A plugin which provides an execute command.
29
  * A plugin which provides an execute command.
29
  */
30
  */
30
-public class ExecPlugin extends BasePlugin {
31
+public class ExecPlugin extends BaseCommandPlugin {
31
 
32
 
32
-    /** Creates a new instance of this plugin. */
33
-    public ExecPlugin() {
34
-        super();
33
+    /**
34
+     * Creates a new instance of this plugin.
35
+     *
36
+     * @param commandController Command controller to register commands
37
+     */
38
+    public ExecPlugin(final CommandController commandController) {
39
+        super(commandController);
35
         registerCommand(new ExecCommand(), ExecCommand.INFO);
40
         registerCommand(new ExecCommand(), ExecCommand.INFO);
36
     }
41
     }
37
 }
42
 }

+ 17
- 9
src/com/dmdirc/addons/freedesktop_notifications/FreeDesktopNotificationsPlugin.java 查看文件

30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
31
 import com.dmdirc.config.prefs.PreferencesSetting;
31
 import com.dmdirc.config.prefs.PreferencesSetting;
32
 import com.dmdirc.config.prefs.PreferencesType;
32
 import com.dmdirc.config.prefs.PreferencesType;
33
+import com.dmdirc.interfaces.CommandController;
33
 import com.dmdirc.interfaces.ConfigChangeListener;
34
 import com.dmdirc.interfaces.ConfigChangeListener;
34
 import com.dmdirc.logger.ErrorLevel;
35
 import com.dmdirc.logger.ErrorLevel;
35
 import com.dmdirc.logger.Logger;
36
 import com.dmdirc.logger.Logger;
36
-import com.dmdirc.plugins.BaseFileDependantPlugin;
37
 import com.dmdirc.plugins.PluginInfo;
37
 import com.dmdirc.plugins.PluginInfo;
38
 import com.dmdirc.plugins.PluginManager;
38
 import com.dmdirc.plugins.PluginManager;
39
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
40
+import com.dmdirc.plugins.implementations.PluginFilesHelper;
39
 import com.dmdirc.ui.messages.Styliser;
41
 import com.dmdirc.ui.messages.Styliser;
40
 import com.dmdirc.util.io.StreamReader;
42
 import com.dmdirc.util.io.StreamReader;
41
 import com.dmdirc.util.resourcemanager.ResourceManager;
43
 import com.dmdirc.util.resourcemanager.ResourceManager;
49
  * This plugin adds freedesktop Style Notifications to dmdirc.
51
  * This plugin adds freedesktop Style Notifications to dmdirc.
50
  */
52
  */
51
 public final class FreeDesktopNotificationsPlugin
53
 public final class FreeDesktopNotificationsPlugin
52
-        extends BaseFileDependantPlugin implements ConfigChangeListener {
54
+        extends BaseCommandPlugin implements ConfigChangeListener {
53
 
55
 
54
     /** notification timeout. */
56
     /** notification timeout. */
55
     private int timeout;
57
     private int timeout;
69
     private final Identity identity;
71
     private final Identity identity;
70
     /** Plugin manager instance. */
72
     /** Plugin manager instance. */
71
     private final PluginManager pluginManager;
73
     private final PluginManager pluginManager;
74
+    /** Plugin files helper. */
75
+    private final PluginFilesHelper filesHelper;
72
 
76
 
73
     /**
77
     /**
74
      * Creates a new instance of this plugin.
78
      * Creates a new instance of this plugin.
75
      *
79
      *
76
      * @param pluginInfo This plugin's plugin info
80
      * @param pluginInfo This plugin's plugin info
77
      * @param identityManager Identity Manager instance
81
      * @param identityManager Identity Manager instance
82
+     * @param pluginManager Plugin manager
83
+     * @param commandController Command controller to register commands
78
      */
84
      */
79
     public FreeDesktopNotificationsPlugin(final PluginInfo pluginInfo,
85
     public FreeDesktopNotificationsPlugin(final PluginInfo pluginInfo,
80
             final IdentityManager identityManager,
86
             final IdentityManager identityManager,
81
-            final PluginManager pluginManager) {
82
-        super(pluginInfo.getMetaData());
87
+            final PluginManager pluginManager,
88
+            final CommandController commandController) {
89
+        super(commandController);
83
         this.pluginInfo = pluginInfo;
90
         this.pluginInfo = pluginInfo;
84
         this.pluginManager = pluginManager;
91
         this.pluginManager = pluginManager;
92
+        this.filesHelper = new PluginFilesHelper(pluginInfo.getMetaData());
85
         config = identityManager.getGlobalConfiguration();
93
         config = identityManager.getGlobalConfiguration();
86
         identity = identityManager.getGlobalAddonIdentity();
94
         identity = identityManager.getGlobalAddonIdentity();
87
         registerCommand(new FDNotifyCommand(this), FDNotifyCommand.INFO);
95
         registerCommand(new FDNotifyCommand(this), FDNotifyCommand.INFO);
95
      * @return True if the notification was shown.
103
      * @return True if the notification was shown.
96
      */
104
      */
97
     public boolean showNotification(final String title, final String message) {
105
     public boolean showNotification(final String title, final String message) {
98
-        if (getFilesDir() == null) { return false; }
106
+        if (filesHelper.getFilesDir() == null) { return false; }
99
 
107
 
100
         final ArrayList<String> args = new ArrayList<String>();
108
         final ArrayList<String> args = new ArrayList<String>();
101
 
109
 
102
         args.add("/usr/bin/env");
110
         args.add("/usr/bin/env");
103
         args.add("python");
111
         args.add("python");
104
-        args.add(getFilesDirString() + "notify.py");
112
+        args.add(filesHelper.getFilesDirString() + "notify.py");
105
         args.add("-a");
113
         args.add("-a");
106
         args.add("DMDirc");
114
         args.add("DMDirc");
107
         args.add("-i");
115
         args.add("-i");
172
 
180
 
173
                 // Extract the files needed
181
                 // Extract the files needed
174
                 try {
182
                 try {
175
-                    res.extractResoucesEndingWith(getFilesDir(), ".py");
176
-                    res.extractResoucesEndingWith(getFilesDir(), ".png");
183
+                    res.extractResoucesEndingWith(filesHelper.getFilesDir(), ".py");
184
+                    res.extractResoucesEndingWith(filesHelper.getFilesDir(), ".png");
177
                 } catch (IOException ex) {
185
                 } catch (IOException ex) {
178
                     Logger.userError(ErrorLevel.MEDIUM, "Unable to extract files for Free desktop notifications: " + ex.getMessage(), ex);
186
                     Logger.userError(ErrorLevel.MEDIUM, "Unable to extract files for Free desktop notifications: " + ex.getMessage(), ex);
179
                 }
187
                 }
197
     @Override
205
     @Override
198
     public void domainUpdated() {
206
     public void domainUpdated() {
199
         identity.setOption(getDomain(),
207
         identity.setOption(getDomain(),
200
-                "general.icon", getFilesDirString() + "icon.png");
208
+                "general.icon", filesHelper.getFilesDirString() + "icon.png");
201
     }
209
     }
202
 
210
 
203
     /** {@inheritDoc} */
211
     /** {@inheritDoc} */

+ 1
- 1
src/com/dmdirc/addons/identd/IdentdPlugin.java 查看文件

35
 import com.dmdirc.interfaces.ActionController;
35
 import com.dmdirc.interfaces.ActionController;
36
 import com.dmdirc.interfaces.ActionListener;
36
 import com.dmdirc.interfaces.ActionListener;
37
 import com.dmdirc.interfaces.actions.ActionType;
37
 import com.dmdirc.interfaces.actions.ActionType;
38
-import com.dmdirc.plugins.BasePlugin;
38
+import com.dmdirc.plugins.implementations.BasePlugin;
39
 import com.dmdirc.plugins.PluginInfo;
39
 import com.dmdirc.plugins.PluginInfo;
40
 import com.dmdirc.util.validators.PortValidator;
40
 import com.dmdirc.util.validators.PortValidator;
41
 
41
 

+ 1
- 1
src/com/dmdirc/addons/lagdisplay/LagDisplayPlugin.java 查看文件

39
 import com.dmdirc.config.prefs.PreferencesType;
39
 import com.dmdirc.config.prefs.PreferencesType;
40
 import com.dmdirc.interfaces.ActionListener;
40
 import com.dmdirc.interfaces.ActionListener;
41
 import com.dmdirc.interfaces.ConfigChangeListener;
41
 import com.dmdirc.interfaces.ConfigChangeListener;
42
-import com.dmdirc.plugins.BasePlugin;
42
+import com.dmdirc.plugins.implementations.BasePlugin;
43
 import com.dmdirc.plugins.PluginInfo;
43
 import com.dmdirc.plugins.PluginInfo;
44
 import com.dmdirc.util.collections.RollingList;
44
 import com.dmdirc.util.collections.RollingList;
45
 
45
 

+ 7
- 4
src/com/dmdirc/addons/logging/LoggingPlugin.java 查看文件

39
 import com.dmdirc.config.prefs.PreferencesType;
39
 import com.dmdirc.config.prefs.PreferencesType;
40
 import com.dmdirc.interfaces.ActionController;
40
 import com.dmdirc.interfaces.ActionController;
41
 import com.dmdirc.interfaces.ActionListener;
41
 import com.dmdirc.interfaces.ActionListener;
42
+import com.dmdirc.interfaces.CommandController;
42
 import com.dmdirc.interfaces.ConfigChangeListener;
43
 import com.dmdirc.interfaces.ConfigChangeListener;
43
 import com.dmdirc.logger.ErrorLevel;
44
 import com.dmdirc.logger.ErrorLevel;
44
 import com.dmdirc.logger.Logger;
45
 import com.dmdirc.logger.Logger;
46
 import com.dmdirc.parser.interfaces.ChannelInfo;
47
 import com.dmdirc.parser.interfaces.ChannelInfo;
47
 import com.dmdirc.parser.interfaces.ClientInfo;
48
 import com.dmdirc.parser.interfaces.ClientInfo;
48
 import com.dmdirc.parser.interfaces.Parser;
49
 import com.dmdirc.parser.interfaces.Parser;
49
-import com.dmdirc.plugins.BasePlugin;
50
 import com.dmdirc.plugins.PluginInfo;
50
 import com.dmdirc.plugins.PluginInfo;
51
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
51
 import com.dmdirc.ui.messages.Styliser;
52
 import com.dmdirc.ui.messages.Styliser;
52
 import com.dmdirc.util.io.StreamUtils;
53
 import com.dmdirc.util.io.StreamUtils;
53
 
54
 
75
 /**
76
 /**
76
  * Adds logging facility to client.
77
  * Adds logging facility to client.
77
  */
78
  */
78
-public class LoggingPlugin extends BasePlugin implements ActionListener,
79
+public class LoggingPlugin extends BaseCommandPlugin implements ActionListener,
79
         ConfigChangeListener {
80
         ConfigChangeListener {
80
 
81
 
81
     /** Cached boolean settings. */
82
     /** Cached boolean settings. */
112
      * @param pluginInfo This plugin's plugin info
113
      * @param pluginInfo This plugin's plugin info
113
      * @param actionController The action controller to register listeners with
114
      * @param actionController The action controller to register listeners with
114
      * @param identityManager The Identity Manager that controls the current config
115
      * @param identityManager The Identity Manager that controls the current config
116
+     * @param commandController Command controller to register commands
115
      */
117
      */
116
     public LoggingPlugin(final PluginInfo pluginInfo,
118
     public LoggingPlugin(final PluginInfo pluginInfo,
117
             final ActionController actionController,
119
             final ActionController actionController,
118
-            final IdentityManager identityManager) {
119
-        super();
120
+            final IdentityManager identityManager,
121
+            final CommandController commandController) {
122
+        super(commandController);
120
         this.identityManager = identityManager;
123
         this.identityManager = identityManager;
121
 
124
 
122
         this.pluginInfo = pluginInfo;
125
         this.pluginInfo = pluginInfo;

+ 1
- 1
src/com/dmdirc/addons/mediasource_dbus/DBusMediaSource.java 查看文件

26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
27
 import com.dmdirc.logger.ErrorLevel;
27
 import com.dmdirc.logger.ErrorLevel;
28
 import com.dmdirc.logger.Logger;
28
 import com.dmdirc.logger.Logger;
29
-import com.dmdirc.plugins.BasePlugin;
29
+import com.dmdirc.plugins.implementations.BasePlugin;
30
 
30
 
31
 import java.io.BufferedReader;
31
 import java.io.BufferedReader;
32
 import java.io.File;
32
 import java.io.File;

+ 1
- 1
src/com/dmdirc/addons/mediasource_dcop/DcopMediaSourcePlugin.java 查看文件

24
 
24
 
25
 import com.dmdirc.addons.nowplaying.MediaSource;
25
 import com.dmdirc.addons.nowplaying.MediaSource;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
27
-import com.dmdirc.plugins.BasePlugin;
27
+import com.dmdirc.plugins.implementations.BasePlugin;
28
 import com.dmdirc.plugins.NoSuchProviderException;
28
 import com.dmdirc.plugins.NoSuchProviderException;
29
 import com.dmdirc.plugins.PluginManager;
29
 import com.dmdirc.plugins.PluginManager;
30
 
30
 

+ 1
- 1
src/com/dmdirc/addons/mediasource_linux_title/TitleMediaSourcePlugin.java 查看文件

24
 
24
 
25
 import com.dmdirc.addons.nowplaying.MediaSource;
25
 import com.dmdirc.addons.nowplaying.MediaSource;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
27
-import com.dmdirc.plugins.BasePlugin;
27
+import com.dmdirc.plugins.implementations.BasePlugin;
28
 
28
 
29
 import java.util.ArrayList;
29
 import java.util.ArrayList;
30
 import java.util.List;
30
 import java.util.List;

+ 1
- 1
src/com/dmdirc/addons/mediasource_mplayer/MplayerMediaSourcePlugin.java 查看文件

24
 
24
 
25
 import com.dmdirc.addons.nowplaying.MediaSource;
25
 import com.dmdirc.addons.nowplaying.MediaSource;
26
 import com.dmdirc.addons.nowplaying.MediaSourceState;
26
 import com.dmdirc.addons.nowplaying.MediaSourceState;
27
-import com.dmdirc.plugins.BasePlugin;
27
+import com.dmdirc.plugins.implementations.BasePlugin;
28
 
28
 
29
 import java.io.BufferedReader;
29
 import java.io.BufferedReader;
30
 import java.io.IOException;
30
 import java.io.IOException;

+ 1
- 1
src/com/dmdirc/addons/mediasource_vlc/VlcMediaSourcePlugin.java 查看文件

30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
31
 import com.dmdirc.config.prefs.PreferencesSetting;
31
 import com.dmdirc.config.prefs.PreferencesSetting;
32
 import com.dmdirc.config.prefs.PreferencesType;
32
 import com.dmdirc.config.prefs.PreferencesType;
33
-import com.dmdirc.plugins.BasePlugin;
33
+import com.dmdirc.plugins.implementations.BasePlugin;
34
 import com.dmdirc.plugins.PluginInfo;
34
 import com.dmdirc.plugins.PluginInfo;
35
 import com.dmdirc.util.io.Downloader;
35
 import com.dmdirc.util.io.Downloader;
36
 
36
 

+ 14
- 6
src/com/dmdirc/addons/mediasource_windows/WindowsMediaSourcePlugin.java 查看文件

26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
26
 import com.dmdirc.addons.nowplaying.MediaSourceManager;
27
 import com.dmdirc.logger.ErrorLevel;
27
 import com.dmdirc.logger.ErrorLevel;
28
 import com.dmdirc.logger.Logger;
28
 import com.dmdirc.logger.Logger;
29
-import com.dmdirc.plugins.BaseFileDependantPlugin;
30
 import com.dmdirc.plugins.PluginInfo;
29
 import com.dmdirc.plugins.PluginInfo;
30
+import com.dmdirc.plugins.implementations.BasePlugin;
31
+import com.dmdirc.plugins.implementations.PluginFilesHelper;
31
 import com.dmdirc.util.io.StreamReader;
32
 import com.dmdirc.util.io.StreamReader;
32
 import com.dmdirc.util.resourcemanager.ResourceManager;
33
 import com.dmdirc.util.resourcemanager.ResourceManager;
33
 
34
 
38
 /**
39
 /**
39
  * Manages all Windows based media sources.
40
  * Manages all Windows based media sources.
40
  */
41
  */
41
-public class WindowsMediaSourcePlugin extends BaseFileDependantPlugin
42
+public class WindowsMediaSourcePlugin extends BasePlugin
42
         implements MediaSourceManager {
43
         implements MediaSourceManager {
43
 
44
 
44
     /** Media sources. */
45
     /** Media sources. */
47
     /** My plugin info. */
48
     /** My plugin info. */
48
     private final PluginInfo pluginInfo;
49
     private final PluginInfo pluginInfo;
49
 
50
 
51
+    /** Plugin files helper. */
52
+    private final PluginFilesHelper filesHelper;
53
+
50
     /**
54
     /**
51
      * Creates a new instance of DcopMediaSourcePlugin.
55
      * Creates a new instance of DcopMediaSourcePlugin.
52
      *
56
      *
53
      * @param pluginInfo This plugin's plugin info
57
      * @param pluginInfo This plugin's plugin info
54
      */
58
      */
55
     public WindowsMediaSourcePlugin(final PluginInfo pluginInfo) {
59
     public WindowsMediaSourcePlugin(final PluginInfo pluginInfo) {
56
-        super(pluginInfo.getMetaData());
60
+        super();
57
         this.pluginInfo = pluginInfo;
61
         this.pluginInfo = pluginInfo;
62
+        this.filesHelper = new PluginFilesHelper(pluginInfo.getMetaData());
58
         sources = new ArrayList<MediaSource>();
63
         sources = new ArrayList<MediaSource>();
59
         sources.add(new DllSource(this, "Winamp", true));
64
         sources.add(new DllSource(this, "Winamp", true));
60
         sources.add(new DllSource(this, "iTunes", false));
65
         sources.add(new DllSource(this, "iTunes", false));
75
      */
80
      */
76
     protected MediaInfoOutput getOutput(final String player, final String method) {
81
     protected MediaInfoOutput getOutput(final String player, final String method) {
77
         try {
82
         try {
78
-            final Process myProcess = Runtime.getRuntime().exec(new String[]{getFilesDirString() + "GetMediaInfo.exe", player, method});
83
+            final Process myProcess = Runtime.getRuntime().exec(new String[]{
84
+                filesHelper.getFilesDirString() + "GetMediaInfo.exe",
85
+                player,
86
+                method});
79
             final StringBuffer data = new StringBuffer();
87
             final StringBuffer data = new StringBuffer();
80
             new StreamReader(myProcess.getErrorStream()).start();
88
             new StreamReader(myProcess.getErrorStream()).start();
81
             new StreamReader(myProcess.getInputStream(), data).start();
89
             new StreamReader(myProcess.getInputStream(), data).start();
109
 
117
 
110
             // Extract the .dlls and .exe
118
             // Extract the .dlls and .exe
111
             try {
119
             try {
112
-                res.extractResoucesEndingWith(getFilesDir(), ".dll");
113
-                res.extractResoucesEndingWith(getFilesDir(), ".exe");
120
+                res.extractResoucesEndingWith(filesHelper.getFilesDir(), ".dll");
121
+                res.extractResoucesEndingWith(filesHelper.getFilesDir(), ".exe");
114
             } catch (IOException ex) {
122
             } catch (IOException ex) {
115
                 Logger.userError(ErrorLevel.MEDIUM, "Unable to extract files for windows media source: " + ex.getMessage(), ex);
123
                 Logger.userError(ErrorLevel.MEDIUM, "Unable to extract files for windows media source: " + ex.getMessage(), ex);
116
             }
124
             }

+ 1
- 1
src/com/dmdirc/addons/nickcolours/NickColourPlugin.java 查看文件

41
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
41
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
42
 import com.dmdirc.parser.interfaces.ChannelInfo;
42
 import com.dmdirc.parser.interfaces.ChannelInfo;
43
 import com.dmdirc.parser.interfaces.ClientInfo;
43
 import com.dmdirc.parser.interfaces.ClientInfo;
44
-import com.dmdirc.plugins.BasePlugin;
44
+import com.dmdirc.plugins.implementations.BasePlugin;
45
 import com.dmdirc.plugins.PluginInfo;
45
 import com.dmdirc.plugins.PluginInfo;
46
 import com.dmdirc.ui.Colour;
46
 import com.dmdirc.ui.Colour;
47
 import com.dmdirc.ui.messages.ColourManager;
47
 import com.dmdirc.ui.messages.ColourManager;

+ 7
- 3
src/com/dmdirc/addons/nma/NotifyMyAndroidPlugin.java 查看文件

27
 import com.dmdirc.config.prefs.PreferencesDialogModel;
27
 import com.dmdirc.config.prefs.PreferencesDialogModel;
28
 import com.dmdirc.config.prefs.PreferencesSetting;
28
 import com.dmdirc.config.prefs.PreferencesSetting;
29
 import com.dmdirc.config.prefs.PreferencesType;
29
 import com.dmdirc.config.prefs.PreferencesType;
30
-import com.dmdirc.plugins.BasePlugin;
30
+import com.dmdirc.interfaces.CommandController;
31
 import com.dmdirc.plugins.PluginInfo;
31
 import com.dmdirc.plugins.PluginInfo;
32
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
32
 
33
 
33
 /**
34
 /**
34
  * Plugin to allow pushing notifications to NotifyMyAndroid.
35
  * Plugin to allow pushing notifications to NotifyMyAndroid.
35
  */
36
  */
36
-public class NotifyMyAndroidPlugin extends BasePlugin {
37
+public class NotifyMyAndroidPlugin extends BaseCommandPlugin {
37
 
38
 
38
     /** The command to register. */
39
     /** The command to register. */
39
     private final NotifyMyAndroidCommand command = new NotifyMyAndroidCommand();
40
     private final NotifyMyAndroidCommand command = new NotifyMyAndroidCommand();
45
      * Creates a new instance of the {@link NotifyMyAndroidPlugin}.
46
      * Creates a new instance of the {@link NotifyMyAndroidPlugin}.
46
      *
47
      *
47
      * @param pluginInfo The plugin info object for this plugin.
48
      * @param pluginInfo The plugin info object for this plugin.
49
+     * @param commandController Command controller to register commands
48
      */
50
      */
49
-    public NotifyMyAndroidPlugin(final PluginInfo pluginInfo) {
51
+    public NotifyMyAndroidPlugin(final PluginInfo pluginInfo,
52
+            final CommandController commandController) {
53
+        super(commandController);
50
         registerCommand(command, NotifyMyAndroidCommand.INFO);
54
         registerCommand(command, NotifyMyAndroidCommand.INFO);
51
 
55
 
52
         this.pluginInfo = pluginInfo;
56
         this.pluginInfo = pluginInfo;

+ 7
- 4
src/com/dmdirc/addons/notifications/NotificationsPlugin.java 查看文件

29
 import com.dmdirc.config.prefs.PreferencesCategory;
29
 import com.dmdirc.config.prefs.PreferencesCategory;
30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
31
 import com.dmdirc.interfaces.ActionListener;
31
 import com.dmdirc.interfaces.ActionListener;
32
+import com.dmdirc.interfaces.CommandController;
32
 import com.dmdirc.interfaces.actions.ActionType;
33
 import com.dmdirc.interfaces.actions.ActionType;
33
-import com.dmdirc.plugins.BasePlugin;
34
 import com.dmdirc.plugins.PluginInfo;
34
 import com.dmdirc.plugins.PluginInfo;
35
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
35
 
36
 
36
 import java.util.ArrayList;
37
 import java.util.ArrayList;
37
 import java.util.List;
38
 import java.util.List;
41
  * Notification Manager plugin, aggregates notification sources exposing them
42
  * Notification Manager plugin, aggregates notification sources exposing them
42
  * via a single command.
43
  * via a single command.
43
  */
44
  */
44
-public class NotificationsPlugin extends BasePlugin implements ActionListener {
45
+public class NotificationsPlugin extends BaseCommandPlugin implements ActionListener {
45
 
46
 
46
     /** The notification methods that we know of. */
47
     /** The notification methods that we know of. */
47
     private final List<String> methods = new ArrayList<String>();
48
     private final List<String> methods = new ArrayList<String>();
54
      * Creates a new instance of this plugin.
55
      * Creates a new instance of this plugin.
55
      *
56
      *
56
      * @param pluginInfo This plugin's plugin info
57
      * @param pluginInfo This plugin's plugin info
58
+     * @param commandController Command controller to register commands
57
      */
59
      */
58
-    public NotificationsPlugin(final PluginInfo pluginInfo) {
59
-        super();
60
+    public NotificationsPlugin(final PluginInfo pluginInfo,
61
+            final CommandController commandController) {
62
+        super(commandController);
60
         this.pluginInfo = pluginInfo;
63
         this.pluginInfo = pluginInfo;
61
         registerCommand(new NotificationCommand(this),
64
         registerCommand(new NotificationCommand(this),
62
                 NotificationCommand.INFO);
65
                 NotificationCommand.INFO);

+ 7
- 4
src/com/dmdirc/addons/nowplaying/NowPlayingPlugin.java 查看文件

30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
30
 import com.dmdirc.config.prefs.PreferencesDialogModel;
31
 import com.dmdirc.interfaces.ActionController;
31
 import com.dmdirc.interfaces.ActionController;
32
 import com.dmdirc.interfaces.ActionListener;
32
 import com.dmdirc.interfaces.ActionListener;
33
+import com.dmdirc.interfaces.CommandController;
33
 import com.dmdirc.interfaces.actions.ActionType;
34
 import com.dmdirc.interfaces.actions.ActionType;
34
-import com.dmdirc.plugins.BasePlugin;
35
 import com.dmdirc.plugins.Plugin;
35
 import com.dmdirc.plugins.Plugin;
36
 import com.dmdirc.plugins.PluginInfo;
36
 import com.dmdirc.plugins.PluginInfo;
37
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
37
 
38
 
38
 import java.util.ArrayList;
39
 import java.util.ArrayList;
39
 import java.util.Collections;
40
 import java.util.Collections;
44
  * Plugin that allows users to advertise what they're currently playing or
45
  * Plugin that allows users to advertise what they're currently playing or
45
  * listening to.
46
  * listening to.
46
  */
47
  */
47
-public class NowPlayingPlugin extends BasePlugin implements ActionListener  {
48
+public class NowPlayingPlugin extends BaseCommandPlugin implements ActionListener  {
48
 
49
 
49
     /** The sources that we know of. */
50
     /** The sources that we know of. */
50
     private final List<MediaSource> sources = new ArrayList<MediaSource>();
51
     private final List<MediaSource> sources = new ArrayList<MediaSource>();
62
      *
63
      *
63
      * @param pluginInfo This plugin's plugin info
64
      * @param pluginInfo This plugin's plugin info
64
      * @param actionController The action controller to register listeners with
65
      * @param actionController The action controller to register listeners with
66
+     * @param commandController Command controller to register commands
65
      */
67
      */
66
     public NowPlayingPlugin(final PluginInfo pluginInfo,
68
     public NowPlayingPlugin(final PluginInfo pluginInfo,
67
-            final ActionController actionController) {
68
-        super();
69
+            final ActionController actionController,
70
+            final CommandController commandController) {
71
+        super(commandController);
69
 
72
 
70
         this.pluginInfo = pluginInfo;
73
         this.pluginInfo = pluginInfo;
71
         this.actionController = actionController;
74
         this.actionController = actionController;

+ 7
- 4
src/com/dmdirc/addons/osd/OsdPlugin.java 查看文件

31
 import com.dmdirc.config.prefs.PreferencesSetting;
31
 import com.dmdirc.config.prefs.PreferencesSetting;
32
 import com.dmdirc.config.prefs.PreferencesType;
32
 import com.dmdirc.config.prefs.PreferencesType;
33
 import com.dmdirc.config.prefs.SettingChangeListener;
33
 import com.dmdirc.config.prefs.SettingChangeListener;
34
-import com.dmdirc.plugins.BasePlugin;
34
+import com.dmdirc.interfaces.CommandController;
35
 import com.dmdirc.plugins.PluginInfo;
35
 import com.dmdirc.plugins.PluginInfo;
36
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
36
 import com.dmdirc.util.validators.NumericalValidator;
37
 import com.dmdirc.util.validators.NumericalValidator;
37
 import com.dmdirc.util.validators.OptionalValidator;
38
 import com.dmdirc.util.validators.OptionalValidator;
38
 
39
 
42
 /**
43
 /**
43
  * Allows the user to display on-screen-display messages.
44
  * Allows the user to display on-screen-display messages.
44
  */
45
  */
45
-public final class OsdPlugin extends BasePlugin implements
46
+public final class OsdPlugin extends BaseCommandPlugin implements
46
         CategoryChangeListener, PreferencesInterface, SettingChangeListener {
47
         CategoryChangeListener, PreferencesInterface, SettingChangeListener {
47
 
48
 
48
     /** Config OSD Window. */
49
     /** Config OSD Window. */
63
      * Creates a new instance of this plugin.
64
      * Creates a new instance of this plugin.
64
      *
65
      *
65
      * @param pluginInfo This plugin's plugin info
66
      * @param pluginInfo This plugin's plugin info
67
+     * @param commandController Command controller to register commands
66
      */
68
      */
67
-    public OsdPlugin(final PluginInfo pluginInfo) {
68
-        super();
69
+    public OsdPlugin(final PluginInfo pluginInfo,
70
+            final CommandController commandController) {
71
+        super(commandController);
69
         this.pluginInfo = pluginInfo;
72
         this.pluginInfo = pluginInfo;
70
         osdManager = new OsdManager(this);
73
         osdManager = new OsdManager(this);
71
         registerCommand(new OsdCommand(osdManager), OsdCommand.INFO);
74
         registerCommand(new OsdCommand(osdManager), OsdCommand.INFO);

+ 7
- 3
src/com/dmdirc/addons/osx_integration/OsxIntegrationPlugin.java 查看文件

23
 package com.dmdirc.addons.osx_integration;
23
 package com.dmdirc.addons.osx_integration;
24
 
24
 
25
 import com.dmdirc.addons.ui_swing.SwingController;
25
 import com.dmdirc.addons.ui_swing.SwingController;
26
-import com.dmdirc.plugins.BasePlugin;
26
+import com.dmdirc.interfaces.CommandController;
27
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
27
 
28
 
28
 /**
29
 /**
29
  * A plugin which provides extra commands that integrate with the OS X
30
  * A plugin which provides extra commands that integrate with the OS X
30
  * environment.
31
  * environment.
31
  */
32
  */
32
-public class OsxIntegrationPlugin extends BasePlugin {
33
+public class OsxIntegrationPlugin extends BaseCommandPlugin {
33
 
34
 
34
     /**
35
     /**
35
      * Creates an instance of {@link OsxIntegrationPlugin}.
36
      * Creates an instance of {@link OsxIntegrationPlugin}.
36
      *
37
      *
37
      * @param controller The Swing UI which runs on the OS X environment
38
      * @param controller The Swing UI which runs on the OS X environment
39
+     * @param commandController Command controller to register commands
38
      */
40
      */
39
-    public OsxIntegrationPlugin(final SwingController controller) {
41
+    public OsxIntegrationPlugin(final SwingController controller,
42
+            final CommandController commandController) {
43
+        super(commandController);
40
         registerCommand(new DockBounceCommand(controller.getApple()),
44
         registerCommand(new DockBounceCommand(controller.getApple()),
41
                 DockBounceCommand.INFO);
45
                 DockBounceCommand.INFO);
42
     }
46
     }

+ 1
- 1
src/com/dmdirc/addons/parser_irc/IrcPlugin.java 查看文件

27
 import com.dmdirc.parser.interfaces.ProtocolDescription;
27
 import com.dmdirc.parser.interfaces.ProtocolDescription;
28
 import com.dmdirc.parser.irc.IRCParser;
28
 import com.dmdirc.parser.irc.IRCParser;
29
 import com.dmdirc.parser.irc.IRCProtocolDescription;
29
 import com.dmdirc.parser.irc.IRCProtocolDescription;
30
-import com.dmdirc.plugins.BasePlugin;
30
+import com.dmdirc.plugins.implementations.BasePlugin;
31
 
31
 
32
 import java.net.URI;
32
 import java.net.URI;
33
 
33
 

+ 1
- 1
src/com/dmdirc/addons/parser_msn/MSNPlugin.java 查看文件

25
 import com.dmdirc.parser.common.MyInfo;
25
 import com.dmdirc.parser.common.MyInfo;
26
 import com.dmdirc.parser.interfaces.Parser;
26
 import com.dmdirc.parser.interfaces.Parser;
27
 import com.dmdirc.parser.interfaces.ProtocolDescription;
27
 import com.dmdirc.parser.interfaces.ProtocolDescription;
28
-import com.dmdirc.plugins.BasePlugin;
28
+import com.dmdirc.plugins.implementations.BasePlugin;
29
 
29
 
30
 import java.net.URI;
30
 import java.net.URI;
31
 
31
 

+ 1
- 1
src/com/dmdirc/addons/parser_twitter/TwitterPlugin.java 查看文件

32
 import com.dmdirc.parser.common.MyInfo;
32
 import com.dmdirc.parser.common.MyInfo;
33
 import com.dmdirc.parser.interfaces.Parser;
33
 import com.dmdirc.parser.interfaces.Parser;
34
 import com.dmdirc.parser.interfaces.ProtocolDescription;
34
 import com.dmdirc.parser.interfaces.ProtocolDescription;
35
-import com.dmdirc.plugins.BasePlugin;
35
+import com.dmdirc.plugins.implementations.BasePlugin;
36
 import com.dmdirc.plugins.PluginInfo;
36
 import com.dmdirc.plugins.PluginInfo;
37
 
37
 
38
 import java.net.URI;
38
 import java.net.URI;

+ 1
- 1
src/com/dmdirc/addons/parser_xmpp/XmppPlugin.java 查看文件

25
 import com.dmdirc.parser.common.MyInfo;
25
 import com.dmdirc.parser.common.MyInfo;
26
 import com.dmdirc.parser.interfaces.Parser;
26
 import com.dmdirc.parser.interfaces.Parser;
27
 import com.dmdirc.parser.interfaces.ProtocolDescription;
27
 import com.dmdirc.parser.interfaces.ProtocolDescription;
28
-import com.dmdirc.plugins.BasePlugin;
28
+import com.dmdirc.plugins.implementations.BasePlugin;
29
 
29
 
30
 import java.net.URI;
30
 import java.net.URI;
31
 
31
 

+ 8
- 4
src/com/dmdirc/addons/parserdebug/DebugPlugin.java 查看文件

26
 import com.dmdirc.actions.CoreActionType;
26
 import com.dmdirc.actions.CoreActionType;
27
 import com.dmdirc.interfaces.ActionController;
27
 import com.dmdirc.interfaces.ActionController;
28
 import com.dmdirc.interfaces.ActionListener;
28
 import com.dmdirc.interfaces.ActionListener;
29
+import com.dmdirc.interfaces.CommandController;
29
 import com.dmdirc.interfaces.actions.ActionType;
30
 import com.dmdirc.interfaces.actions.ActionType;
30
 import com.dmdirc.parser.interfaces.Parser;
31
 import com.dmdirc.parser.interfaces.Parser;
31
 import com.dmdirc.parser.interfaces.callbacks.DebugInfoListener;
32
 import com.dmdirc.parser.interfaces.callbacks.DebugInfoListener;
32
-import com.dmdirc.plugins.BasePlugin;
33
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
33
 
34
 
34
 import java.util.ArrayList;
35
 import java.util.ArrayList;
35
 import java.util.Date;
36
 import java.util.Date;
39
 /**
40
 /**
40
  * This causes parser debugging to be spammed to the console.
41
  * This causes parser debugging to be spammed to the console.
41
  */
42
  */
42
-public final class DebugPlugin extends BasePlugin implements DebugInfoListener, ActionListener {
43
+public final class DebugPlugin extends BaseCommandPlugin implements
44
+        DebugInfoListener, ActionListener {
43
 
45
 
44
     /** Map of parsers registered. */
46
     /** Map of parsers registered. */
45
     protected final Map<Parser, DebugWindow> registeredParsers
47
     protected final Map<Parser, DebugWindow> registeredParsers
51
      * Creates a new instance of this plugin.
53
      * Creates a new instance of this plugin.
52
      *
54
      *
53
      * @param actionController The action controller to register listeners with
55
      * @param actionController The action controller to register listeners with
56
+     * @param commandController Command controller to register commands
54
      */
57
      */
55
-    public DebugPlugin(final ActionController actionController) {
56
-        super();
58
+    public DebugPlugin(final ActionController actionController,
59
+            final CommandController commandController) {
60
+        super(commandController);
57
 
61
 
58
         this.actionController = actionController;
62
         this.actionController = actionController;
59
 
63
 

+ 10
- 5
src/com/dmdirc/addons/redirect/RedirectPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.redirect;
23
 package com.dmdirc.addons.redirect;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.interfaces.CommandController;
26
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
26
 
27
 
27
 /**
28
 /**
28
  * The redirect plugin allows the suer to redirect the output of commands that
29
  * The redirect plugin allows the suer to redirect the output of commands that
29
  * would normally echo their results locally to a channel or chat window instead.
30
  * would normally echo their results locally to a channel or chat window instead.
30
  */
31
  */
31
-public final class RedirectPlugin extends BasePlugin {
32
+public final class RedirectPlugin extends BaseCommandPlugin {
32
 
33
 
33
-    /** Creates a new instance of this plugin. */
34
-    public RedirectPlugin() {
35
-        super();
34
+    /**
35
+     * Creates a new instance of this plugin.
36
+     *
37
+     * @param commandController Command controller to register commands
38
+     */
39
+    public RedirectPlugin(final CommandController commandController) {
40
+        super(commandController);
36
         registerCommand(new RedirectCommand(), RedirectCommand.INFO);
41
         registerCommand(new RedirectCommand(), RedirectCommand.INFO);
37
     }
42
     }
38
 }
43
 }

+ 1
- 1
src/com/dmdirc/addons/relaybot/RelayBotPlugin.java 查看文件

39
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
39
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
40
 import com.dmdirc.parser.interfaces.Parser;
40
 import com.dmdirc.parser.interfaces.Parser;
41
 import com.dmdirc.parser.irc.IRCParser;
41
 import com.dmdirc.parser.irc.IRCParser;
42
-import com.dmdirc.plugins.BasePlugin;
42
+import com.dmdirc.plugins.implementations.BasePlugin;
43
 import com.dmdirc.plugins.PluginInfo;
43
 import com.dmdirc.plugins.PluginInfo;
44
 import com.dmdirc.plugins.PluginManager;
44
 import com.dmdirc.plugins.PluginManager;
45
 
45
 

+ 8
- 4
src/com/dmdirc/addons/scriptplugin/ScriptPlugin.java 查看文件

26
 import com.dmdirc.config.IdentityManager;
26
 import com.dmdirc.config.IdentityManager;
27
 import com.dmdirc.interfaces.ActionController;
27
 import com.dmdirc.interfaces.ActionController;
28
 import com.dmdirc.interfaces.ActionListener;
28
 import com.dmdirc.interfaces.ActionListener;
29
+import com.dmdirc.interfaces.CommandController;
29
 import com.dmdirc.interfaces.actions.ActionType;
30
 import com.dmdirc.interfaces.actions.ActionType;
30
 import com.dmdirc.logger.ErrorLevel;
31
 import com.dmdirc.logger.ErrorLevel;
31
 import com.dmdirc.logger.Logger;
32
 import com.dmdirc.logger.Logger;
32
-import com.dmdirc.plugins.BasePlugin;
33
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
33
 import com.dmdirc.util.io.StreamUtils;
34
 import com.dmdirc.util.io.StreamUtils;
34
 import com.dmdirc.util.validators.ValidationResponse;
35
 import com.dmdirc.util.validators.ValidationResponse;
35
 
36
 
46
 /**
47
 /**
47
  * This allows javascript scripts to be used in DMDirc.
48
  * This allows javascript scripts to be used in DMDirc.
48
  */
49
  */
49
-public final class ScriptPlugin extends BasePlugin implements ActionListener {
50
+public final class ScriptPlugin extends BaseCommandPlugin implements ActionListener {
50
 
51
 
51
     /** Script Directory */
52
     /** Script Directory */
52
     private final String scriptDir;
53
     private final String scriptDir;
66
      *
67
      *
67
      * @param actionController The action controller to register listeners with
68
      * @param actionController The action controller to register listeners with
68
      * @param identityManager The Identity Manager that controls the current config
69
      * @param identityManager The Identity Manager that controls the current config
70
+     * @param commandController Command controller to register commands
69
      */
71
      */
70
-    public ScriptPlugin(final ActionController actionController, final IdentityManager identityManager) {
71
-        super();
72
+    public ScriptPlugin(final ActionController actionController,
73
+            final IdentityManager identityManager,
74
+            final CommandController commandController) {
75
+        super(commandController);
72
         scriptDir = identityManager.getConfigDir() + "scripts/";
76
         scriptDir = identityManager.getConfigDir() + "scripts/";
73
         this.actionController = actionController;
77
         this.actionController = actionController;
74
 
78
 

+ 2
- 1
src/com/dmdirc/addons/serverlistdialog/ServerListDialogPlugin.java 查看文件

24
 
24
 
25
 import com.dmdirc.addons.ui_swing.SwingController;
25
 import com.dmdirc.addons.ui_swing.SwingController;
26
 import com.dmdirc.plugins.PluginManager;
26
 import com.dmdirc.plugins.PluginManager;
27
+import com.dmdirc.plugins.implementations.BasePlugin;
27
 
28
 
28
 import java.awt.event.ActionEvent;
29
 import java.awt.event.ActionEvent;
29
 import java.awt.event.ActionListener;
30
 import java.awt.event.ActionListener;
33
 /**
34
 /**
34
  * Server list dialog plugin.
35
  * Server list dialog plugin.
35
  */
36
  */
36
-public class ServerListDialogPlugin implements ActionListener {
37
+public class ServerListDialogPlugin extends BasePlugin implements ActionListener {
37
 
38
 
38
     /** Swing controller. */
39
     /** Swing controller. */
39
     private final SwingController controller;
40
     private final SwingController controller;

+ 1
- 1
src/com/dmdirc/addons/serverlists/ServerListPlugin.java 查看文件

22
 
22
 
23
 package com.dmdirc.addons.serverlists;
23
 package com.dmdirc.addons.serverlists;
24
 
24
 
25
-import com.dmdirc.plugins.BasePlugin;
25
+import com.dmdirc.plugins.implementations.BasePlugin;
26
 
26
 
27
 /** Dummy plugin for server lists. */
27
 /** Dummy plugin for server lists. */
28
 public class ServerListPlugin extends BasePlugin {}
28
 public class ServerListPlugin extends BasePlugin {}

+ 1
- 1
src/com/dmdirc/addons/sessionlock/SessionLock.java 查看文件

23
 package com.dmdirc.addons.sessionlock;
23
 package com.dmdirc.addons.sessionlock;
24
 
24
 
25
 import com.dmdirc.actions.ActionManager;
25
 import com.dmdirc.actions.ActionManager;
26
-import com.dmdirc.plugins.BasePlugin;
26
+import com.dmdirc.plugins.implementations.BasePlugin;
27
 
27
 
28
 import com.greboid.lock.LockAdapter;
28
 import com.greboid.lock.LockAdapter;
29
 import com.greboid.lock.LockListener;
29
 import com.greboid.lock.LockListener;

+ 1
- 1
src/com/dmdirc/addons/swingdebug/SwingDebugPlugin.java 查看文件

24
 import com.dmdirc.addons.ui_swing.DMDircEventQueue;
24
 import com.dmdirc.addons.ui_swing.DMDircEventQueue;
25
 import com.dmdirc.addons.ui_swing.SwingController;
25
 import com.dmdirc.addons.ui_swing.SwingController;
26
 import com.dmdirc.addons.ui_swing.components.CheckBoxMenuItem;
26
 import com.dmdirc.addons.ui_swing.components.CheckBoxMenuItem;
27
-import com.dmdirc.plugins.BasePlugin;
27
+import com.dmdirc.plugins.implementations.BasePlugin;
28
 
28
 
29
 import java.awt.Toolkit;
29
 import java.awt.Toolkit;
30
 import java.awt.event.ActionEvent;
30
 import java.awt.event.ActionEvent;

+ 8
- 5
src/com/dmdirc/addons/systray/SystrayPlugin.java 查看文件

33
 import com.dmdirc.config.prefs.PreferencesSetting;
33
 import com.dmdirc.config.prefs.PreferencesSetting;
34
 import com.dmdirc.config.prefs.PreferencesType;
34
 import com.dmdirc.config.prefs.PreferencesType;
35
 import com.dmdirc.interfaces.ActionController;
35
 import com.dmdirc.interfaces.ActionController;
36
-import com.dmdirc.plugins.BasePlugin;
36
+import com.dmdirc.interfaces.CommandController;
37
 import com.dmdirc.plugins.PluginInfo;
37
 import com.dmdirc.plugins.PluginInfo;
38
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
38
 import com.dmdirc.ui.IconManager;
39
 import com.dmdirc.ui.IconManager;
39
 import com.dmdirc.ui.messages.Styliser;
40
 import com.dmdirc.ui.messages.Styliser;
40
 import com.dmdirc.util.validators.ValidationResponse;
41
 import com.dmdirc.util.validators.ValidationResponse;
54
  * The Systray plugin shows DMDirc in the user's system tray, and allows
55
  * The Systray plugin shows DMDirc in the user's system tray, and allows
55
  * notifications to be disabled.
56
  * notifications to be disabled.
56
  */
57
  */
57
-public final class SystrayPlugin extends BasePlugin implements ActionListener,
58
-        MouseListener, com.dmdirc.interfaces.ActionListener {
58
+public final class SystrayPlugin extends BaseCommandPlugin implements
59
+        ActionListener, MouseListener, com.dmdirc.interfaces.ActionListener {
59
 
60
 
60
     /** The tray icon we're currently using. */
61
     /** The tray icon we're currently using. */
61
     private final TrayIcon icon;
62
     private final TrayIcon icon;
71
      *
72
      *
72
      * @param pluginInfo This plugin's plugin info
73
      * @param pluginInfo This plugin's plugin info
73
      * @param actionController The action controller to use
74
      * @param actionController The action controller to use
75
+     * @param commandController Command controller to register commands
74
      */
76
      */
75
     public SystrayPlugin(final PluginInfo pluginInfo,
77
     public SystrayPlugin(final PluginInfo pluginInfo,
76
-            final ActionController actionController) {
77
-        super();
78
+            final ActionController actionController,
79
+            final CommandController commandController) {
80
+        super(commandController);
78
 
81
 
79
         this.pluginInfo = pluginInfo;
82
         this.pluginInfo = pluginInfo;
80
         this.actionController = actionController;
83
         this.actionController = actionController;

+ 1
- 1
src/com/dmdirc/addons/tabcompletion_bash/BashStylePlugin.java 查看文件

23
 package com.dmdirc.addons.tabcompletion_bash;
23
 package com.dmdirc.addons.tabcompletion_bash;
24
 
24
 
25
 import com.dmdirc.WritableFrameContainer;
25
 import com.dmdirc.WritableFrameContainer;
26
-import com.dmdirc.plugins.BasePlugin;
26
+import com.dmdirc.plugins.implementations.BasePlugin;
27
 import com.dmdirc.ui.input.TabCompleter;
27
 import com.dmdirc.ui.input.TabCompleter;
28
 import com.dmdirc.ui.input.tabstyles.TabCompletionStyle;
28
 import com.dmdirc.ui.input.tabstyles.TabCompletionStyle;
29
 
29
 

+ 1
- 1
src/com/dmdirc/addons/tabcompletion_mirc/MircStylePlugin.java 查看文件

23
 package com.dmdirc.addons.tabcompletion_mirc;
23
 package com.dmdirc.addons.tabcompletion_mirc;
24
 
24
 
25
 import com.dmdirc.WritableFrameContainer;
25
 import com.dmdirc.WritableFrameContainer;
26
-import com.dmdirc.plugins.BasePlugin;
26
+import com.dmdirc.plugins.implementations.BasePlugin;
27
 import com.dmdirc.ui.input.TabCompleter;
27
 import com.dmdirc.ui.input.TabCompleter;
28
 import com.dmdirc.ui.input.tabstyles.TabCompletionStyle;
28
 import com.dmdirc.ui.input.tabstyles.TabCompletionStyle;
29
 
29
 

+ 7
- 4
src/com/dmdirc/addons/time/TimePlugin.java 查看文件

23
 package com.dmdirc.addons.time;
23
 package com.dmdirc.addons.time;
24
 
24
 
25
 import com.dmdirc.interfaces.ActionController;
25
 import com.dmdirc.interfaces.ActionController;
26
-import com.dmdirc.plugins.BasePlugin;
26
+import com.dmdirc.interfaces.CommandController;
27
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
27
 
28
 
28
 import java.util.Calendar;
29
 import java.util.Calendar;
29
 import java.util.Timer;
30
 import java.util.Timer;
32
 /**
33
 /**
33
  * Provides various time-related features.
34
  * Provides various time-related features.
34
  */
35
  */
35
-public final class TimePlugin extends BasePlugin {
36
+public final class TimePlugin extends BaseCommandPlugin {
36
 
37
 
37
     /** Have we registered our types already? */
38
     /** Have we registered our types already? */
38
     private static boolean registered;
39
     private static boolean registered;
47
      * Creates a new instance of this plugin.
48
      * Creates a new instance of this plugin.
48
      *
49
      *
49
      * @param actionController The action controller to register listeners with
50
      * @param actionController The action controller to register listeners with
51
+     * @param commandController Command controller to register commands
50
      */
52
      */
51
-    public TimePlugin(final ActionController actionController) {
52
-        super();
53
+    public TimePlugin(final ActionController actionController,
54
+            final CommandController commandController) {
55
+        super(commandController);
53
 
56
 
54
         this.actionController = actionController;
57
         this.actionController = actionController;
55
         manager = new TimerManager();
58
         manager = new TimerManager();

+ 1
- 1
src/com/dmdirc/addons/ui_dummy/DummyController.java 查看文件

26
 import com.dmdirc.FrameContainer;
26
 import com.dmdirc.FrameContainer;
27
 import com.dmdirc.Main;
27
 import com.dmdirc.Main;
28
 import com.dmdirc.Server;
28
 import com.dmdirc.Server;
29
-import com.dmdirc.plugins.BasePlugin;
29
+import com.dmdirc.plugins.implementations.BasePlugin;
30
 import com.dmdirc.ui.core.components.StatusBarManager;
30
 import com.dmdirc.ui.core.components.StatusBarManager;
31
 import com.dmdirc.interfaces.ui.UIController;
31
 import com.dmdirc.interfaces.ui.UIController;
32
 import com.dmdirc.interfaces.ui.Window;
32
 import com.dmdirc.interfaces.ui.Window;

+ 10
- 4
src/com/dmdirc/addons/ui_swing/SwingController.java 查看文件

54
 import com.dmdirc.config.prefs.PreferencesDialogModel;
54
 import com.dmdirc.config.prefs.PreferencesDialogModel;
55
 import com.dmdirc.config.prefs.PreferencesSetting;
55
 import com.dmdirc.config.prefs.PreferencesSetting;
56
 import com.dmdirc.config.prefs.PreferencesType;
56
 import com.dmdirc.config.prefs.PreferencesType;
57
+import com.dmdirc.interfaces.CommandController;
57
 import com.dmdirc.interfaces.ui.UIController;
58
 import com.dmdirc.interfaces.ui.UIController;
58
 import com.dmdirc.interfaces.ui.Window;
59
 import com.dmdirc.interfaces.ui.Window;
59
 import com.dmdirc.logger.ErrorLevel;
60
 import com.dmdirc.logger.ErrorLevel;
60
 import com.dmdirc.logger.Logger;
61
 import com.dmdirc.logger.Logger;
61
-import com.dmdirc.plugins.BasePlugin;
62
 import com.dmdirc.plugins.PluginInfo;
62
 import com.dmdirc.plugins.PluginInfo;
63
 import com.dmdirc.plugins.PluginManager;
63
 import com.dmdirc.plugins.PluginManager;
64
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
64
 import com.dmdirc.ui.IconManager;
65
 import com.dmdirc.ui.IconManager;
65
 import com.dmdirc.ui.WindowManager;
66
 import com.dmdirc.ui.WindowManager;
66
 import com.dmdirc.ui.core.components.StatusBarManager;
67
 import com.dmdirc.ui.core.components.StatusBarManager;
96
  * Controls the main swing UI.
97
  * Controls the main swing UI.
97
  */
98
  */
98
 @SuppressWarnings("PMD.UnusedPrivateField")
99
 @SuppressWarnings("PMD.UnusedPrivateField")
99
-public class SwingController extends BasePlugin implements UIController {
100
+public class SwingController extends BaseCommandPlugin implements UIController {
100
     /** Window factory. */
101
     /** Window factory. */
101
     @Getter
102
     @Getter
102
     private final SwingWindowFactory windowFactory =
103
     private final SwingWindowFactory windowFactory =
161
      *
162
      *
162
      * @param pluginInfo Plugin info
163
      * @param pluginInfo Plugin info
163
      * @param identityManager Identity Manager
164
      * @param identityManager Identity Manager
165
+     * @param pluginManager Plugin manager
166
+     * @param main Main instance
167
+     * @param actionManager Action manager
168
+     * @param commandController Command controller to register commands
164
      */
169
      */
165
     public SwingController(final PluginInfo pluginInfo,
170
     public SwingController(final PluginInfo pluginInfo,
166
             final IdentityManager identityManager,
171
             final IdentityManager identityManager,
167
             final PluginManager pluginManager,
172
             final PluginManager pluginManager,
168
             final Main main,
173
             final Main main,
169
-            final ActionManager actionManager) {
170
-        super();
174
+            final ActionManager actionManager,
175
+            final CommandController commandController) {
176
+        super(commandController);
171
         this.main = main;
177
         this.main = main;
172
         this.pluginInfo = pluginInfo;
178
         this.pluginInfo = pluginInfo;
173
         this.identityManager = identityManager;
179
         this.identityManager = identityManager;

+ 1
- 1
src/com/dmdirc/addons/ui_web/WebInterfacePlugin.java 查看文件

23
 package com.dmdirc.addons.ui_web;
23
 package com.dmdirc.addons.ui_web;
24
 
24
 
25
 import com.dmdirc.Main;
25
 import com.dmdirc.Main;
26
-import com.dmdirc.plugins.BasePlugin;
26
+import com.dmdirc.plugins.implementations.BasePlugin;
27
 
27
 
28
 import lombok.Getter;
28
 import lombok.Getter;
29
 
29
 

+ 11
- 6
src/com/dmdirc/addons/urlcatcher/UrlCatcherPlugin.java 查看文件

29
 import com.dmdirc.interfaces.actions.ActionType;
29
 import com.dmdirc.interfaces.actions.ActionType;
30
 import com.dmdirc.config.IdentityManager;
30
 import com.dmdirc.config.IdentityManager;
31
 import com.dmdirc.interfaces.ActionListener;
31
 import com.dmdirc.interfaces.ActionListener;
32
+import com.dmdirc.interfaces.CommandController;
32
 import com.dmdirc.interfaces.ConfigChangeListener;
33
 import com.dmdirc.interfaces.ConfigChangeListener;
33
-import com.dmdirc.plugins.BasePlugin;
34
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
34
 import com.dmdirc.ui.messages.Styliser;
35
 import com.dmdirc.ui.messages.Styliser;
35
 
36
 
36
 import java.util.HashMap;
37
 import java.util.HashMap;
40
  * A plugin which logs all observed URLs and allows the user to list them
41
  * A plugin which logs all observed URLs and allows the user to list them
41
  * later.
42
  * later.
42
  */
43
  */
43
-public class UrlCatcherPlugin extends BasePlugin implements ActionListener,
44
-        ConfigChangeListener {
44
+public class UrlCatcherPlugin extends BaseCommandPlugin implements
45
+        ActionListener, ConfigChangeListener {
45
 
46
 
46
     /* URLs and the number of times they were mentioned. */
47
     /* URLs and the number of times they were mentioned. */
47
     private final Map<String, Integer> urls = new HashMap<String, Integer>();
48
     private final Map<String, Integer> urls = new HashMap<String, Integer>();
48
     /** Whether to capture URLs from the raw window. */
49
     /** Whether to capture URLs from the raw window. */
49
     private boolean captureRaw = false;
50
     private boolean captureRaw = false;
50
 
51
 
51
-    /** Creates a new instance of this plugin. */
52
-    public UrlCatcherPlugin() {
53
-        super();
52
+    /**
53
+     * Creates a new instance of this plugin.
54
+     *
55
+     * @param commandController Command controller to register commands
56
+     */
57
+    public UrlCatcherPlugin(final CommandController commandController) {
58
+        super(commandController);
54
         registerCommand(new UrlListCommand(this), UrlListCommand.INFO);
59
         registerCommand(new UrlListCommand(this), UrlListCommand.INFO);
55
     }
60
     }
56
 
61
 

+ 1
- 1
src/com/dmdirc/addons/userlevel/UserLevelPlugin.java 查看文件

31
 import com.dmdirc.interfaces.ConfigChangeListener;
31
 import com.dmdirc.interfaces.ConfigChangeListener;
32
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
32
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
33
 import com.dmdirc.parser.interfaces.ClientInfo;
33
 import com.dmdirc.parser.interfaces.ClientInfo;
34
-import com.dmdirc.plugins.BasePlugin;
34
+import com.dmdirc.plugins.implementations.BasePlugin;
35
 
35
 
36
 import java.util.HashMap;
36
 import java.util.HashMap;
37
 import java.util.Map;
37
 import java.util.Map;

+ 7
- 4
src/com/dmdirc/addons/windowflashing/WindowFlashing.java 查看文件

35
 import com.dmdirc.config.prefs.PreferencesSetting;
35
 import com.dmdirc.config.prefs.PreferencesSetting;
36
 import com.dmdirc.config.prefs.PreferencesType;
36
 import com.dmdirc.config.prefs.PreferencesType;
37
 import com.dmdirc.interfaces.ActionListener;
37
 import com.dmdirc.interfaces.ActionListener;
38
+import com.dmdirc.interfaces.CommandController;
38
 import com.dmdirc.interfaces.actions.ActionType;
39
 import com.dmdirc.interfaces.actions.ActionType;
39
-import com.dmdirc.plugins.BasePlugin;
40
 import com.dmdirc.plugins.PluginInfo;
40
 import com.dmdirc.plugins.PluginInfo;
41
+import com.dmdirc.plugins.implementations.BaseCommandPlugin;
41
 
42
 
42
 import com.sun.jna.Native;
43
 import com.sun.jna.Native;
43
 import com.sun.jna.NativeLibrary;
44
 import com.sun.jna.NativeLibrary;
50
 /**
51
 /**
51
  * Native notification plugin to make DMDirc support windows task bar flashing.
52
  * Native notification plugin to make DMDirc support windows task bar flashing.
52
  */
53
  */
53
-public class WindowFlashing extends BasePlugin implements ActionListener {
54
+public class WindowFlashing extends BaseCommandPlugin implements ActionListener {
54
 
55
 
55
     /** This plugin's plugin info. */
56
     /** This plugin's plugin info. */
56
     private final PluginInfo pluginInfo;
57
     private final PluginInfo pluginInfo;
86
      * @param identityManager Identity Manager
87
      * @param identityManager Identity Manager
87
      * @param controller Parent swing controller
88
      * @param controller Parent swing controller
88
      * @param actionManager Action manager
89
      * @param actionManager Action manager
90
+     * @param commandController command controller to register commands
89
      */
91
      */
90
     public WindowFlashing(final PluginInfo pluginInfo,
92
     public WindowFlashing(final PluginInfo pluginInfo,
91
             final IdentityManager identityManager,
93
             final IdentityManager identityManager,
92
             final SwingController controller,
94
             final SwingController controller,
93
-            final ActionManager actionManager) {
94
-        super();
95
+            final ActionManager actionManager,
96
+            final CommandController commandController) {
97
+        super(commandController);
95
         this.pluginInfo = pluginInfo;
98
         this.pluginInfo = pluginInfo;
96
         this.controller = controller;
99
         this.controller = controller;
97
         this.actionManager = actionManager;
100
         this.actionManager = actionManager;

+ 1
- 1
src/com/dmdirc/addons/windowstatus/WindowStatusPlugin.java 查看文件

40
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
40
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
41
 import com.dmdirc.parser.interfaces.ChannelInfo;
41
 import com.dmdirc.parser.interfaces.ChannelInfo;
42
 import com.dmdirc.parser.interfaces.ClientInfo;
42
 import com.dmdirc.parser.interfaces.ClientInfo;
43
-import com.dmdirc.plugins.BasePlugin;
43
+import com.dmdirc.plugins.implementations.BasePlugin;
44
 import com.dmdirc.plugins.PluginInfo;
44
 import com.dmdirc.plugins.PluginInfo;
45
 
45
 
46
 import java.util.HashMap;
46
 import java.util.HashMap;

+ 3
- 3
test/com/dmdirc/addons/urlcatcher/UrlCatcherPluginTest.java 查看文件

26
 import com.dmdirc.FrameContainer;
26
 import com.dmdirc.FrameContainer;
27
 import com.dmdirc.actions.CoreActionType;
27
 import com.dmdirc.actions.CoreActionType;
28
 import com.dmdirc.config.ConfigManager;
28
 import com.dmdirc.config.ConfigManager;
29
-import com.dmdirc.config.IdentityManager;
30
 import com.dmdirc.config.InvalidIdentityFileException;
29
 import com.dmdirc.config.InvalidIdentityFileException;
30
+import com.dmdirc.interfaces.CommandController;
31
 import com.dmdirc.ui.messages.Styliser;
31
 import com.dmdirc.ui.messages.Styliser;
32
 import org.junit.BeforeClass;
32
 import org.junit.BeforeClass;
33
 import org.junit.Test;
33
 import org.junit.Test;
55
     public void testURLCounting() throws InvalidIdentityFileException {
55
     public void testURLCounting() throws InvalidIdentityFileException {
56
         TestMain.getTestMain();
56
         TestMain.getTestMain();
57
 
57
 
58
-        final UrlCatcherPlugin plugin = new UrlCatcherPlugin();
58
+        final UrlCatcherPlugin plugin = new UrlCatcherPlugin(mock(CommandController.class));
59
 
59
 
60
         plugin.processEvent(CoreActionType.CHANNEL_MESSAGE, null,
60
         plugin.processEvent(CoreActionType.CHANNEL_MESSAGE, null,
61
                 container, "This is a message - http://www.google.com/ foo");
61
                 container, "This is a message - http://www.google.com/ foo");
72
     public void testURLCatching() throws InvalidIdentityFileException {
72
     public void testURLCatching() throws InvalidIdentityFileException {
73
         TestMain.getTestMain();
73
         TestMain.getTestMain();
74
 
74
 
75
-        final UrlCatcherPlugin plugin = new UrlCatcherPlugin();
75
+        final UrlCatcherPlugin plugin = new UrlCatcherPlugin(mock(CommandController.class));
76
 
76
 
77
         plugin.processEvent(CoreActionType.CHANNEL_MESSAGE, null,
77
         plugin.processEvent(CoreActionType.CHANNEL_MESSAGE, null,
78
                 container, "http://www.google.com/ www.example.com foo://bar.baz");
78
                 container, "http://www.google.com/ www.example.com foo://bar.baz");

Loading…
取消
儲存