Browse Source

Move to injecting various things in the addon browser.

Add a deprecated method to the SwingController/Manager to avoid having
to propagate the changes all the way up through the prefs dialog.

Add dependency on the annotation processor library for factories.

Change-Id: I420b85ed73ba6ea02bbbb5fe18411fa18d994011
Reviewed-on: http://gerrit.dmdirc.com/3023
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.8
Chris Smith 10 years ago
parent
commit
f79dabdef0

+ 1
- 0
ivy.xml View File

16
 
16
 
17
         <dependency org="com.google.guava" name="guava" rev="15.+" conf="build->default" />
17
         <dependency org="com.google.guava" name="guava" rev="15.+" conf="build->default" />
18
         <dependency org="com.google.code.findbugs" name="jsr305" rev="2.+" conf="main->default" />
18
         <dependency org="com.google.code.findbugs" name="jsr305" rev="2.+" conf="main->default" />
19
+        <dependency org="com.dmdirc" name="annotations" rev="[0.3.4,)" conf="main->default" />
19
 
20
 
20
         <dependency org="org.slf4j" name="slf4j-api" rev="1.+" conf="main->default" />
21
         <dependency org="org.slf4j" name="slf4j-api" rev="1.+" conf="main->default" />
21
         <dependency org="org.igniterealtime.smack" name="smack" rev="3.+" conf="main->default" />
22
         <dependency org="org.igniterealtime.smack" name="smack" rev="3.+" conf="main->default" />

+ 6
- 0
src/com/dmdirc/addons/ui_swing/SwingController.java View File

35
 import com.dmdirc.addons.ui_swing.commands.PopInCommand;
35
 import com.dmdirc.addons.ui_swing.commands.PopInCommand;
36
 import com.dmdirc.addons.ui_swing.commands.PopOutCommand;
36
 import com.dmdirc.addons.ui_swing.commands.PopOutCommand;
37
 import com.dmdirc.addons.ui_swing.commands.ServerSettings;
37
 import com.dmdirc.addons.ui_swing.commands.ServerSettings;
38
+import com.dmdirc.addons.ui_swing.components.addonbrowser.DataLoaderWorkerFactory;
38
 import com.dmdirc.addons.ui_swing.components.frames.TextFrame;
39
 import com.dmdirc.addons.ui_swing.components.frames.TextFrame;
39
 import com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag;
40
 import com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag;
40
 import com.dmdirc.addons.ui_swing.components.statusbar.SwingStatusBar;
41
 import com.dmdirc.addons.ui_swing.components.statusbar.SwingStatusBar;
926
         return swingManager.getDialogManager();
927
         return swingManager.getDialogManager();
927
     }
928
     }
928
 
929
 
930
+    @Deprecated
931
+    public DataLoaderWorkerFactory getDataLoaderWorkerFactory() {
932
+        return swingManager.getDataLoaderWorkerFactory();
933
+    }
934
+
929
 }
935
 }

+ 12
- 0
src/com/dmdirc/addons/ui_swing/SwingManager.java View File

22
 
22
 
23
 package com.dmdirc.addons.ui_swing;
23
 package com.dmdirc.addons.ui_swing;
24
 
24
 
25
+import com.dmdirc.addons.ui_swing.components.addonbrowser.DataLoaderWorkerFactory;
25
 import com.dmdirc.addons.ui_swing.components.menubar.MenuBar;
26
 import com.dmdirc.addons.ui_swing.components.menubar.MenuBar;
26
 import com.dmdirc.addons.ui_swing.components.statusbar.SwingStatusBar;
27
 import com.dmdirc.addons.ui_swing.components.statusbar.SwingStatusBar;
27
 import com.dmdirc.addons.ui_swing.dialogs.DialogKeyListener;
28
 import com.dmdirc.addons.ui_swing.dialogs.DialogKeyListener;
72
     /** The key listener that supports dialogs. */
73
     /** The key listener that supports dialogs. */
73
     private final DialogKeyListener dialogKeyListener;
74
     private final DialogKeyListener dialogKeyListener;
74
 
75
 
76
+    /** Factory used to create data loader workers. */
77
+    private final DataLoaderWorkerFactory dataLoaderWorkerFactory;
78
+
75
     /** Provider of first run executors. */
79
     /** Provider of first run executors. */
76
     private final Provider<FirstRunWizardExecutor> firstRunExecutor;
80
     private final Provider<FirstRunWizardExecutor> firstRunExecutor;
77
 
81
 
89
      * @param ctrlTabManager The window manager that handles ctrl+tab behaviour.
93
      * @param ctrlTabManager The window manager that handles ctrl+tab behaviour.
90
      * @param urlHandler The URL handler to use.
94
      * @param urlHandler The URL handler to use.
91
      * @param dialogKeyListener The key listener that supports dialogs.
95
      * @param dialogKeyListener The key listener that supports dialogs.
96
+     * @param dataLoaderWorkerFactory Factory used to create data loader workers.
92
      * @param firstRunExecutor A provider of first run executors.
97
      * @param firstRunExecutor A provider of first run executors.
93
      */
98
      */
94
     @Inject
99
     @Inject
104
             final CtrlTabWindowManager ctrlTabManager,
109
             final CtrlTabWindowManager ctrlTabManager,
105
             final URLHandler urlHandler,
110
             final URLHandler urlHandler,
106
             final DialogKeyListener dialogKeyListener,
111
             final DialogKeyListener dialogKeyListener,
112
+            final DataLoaderWorkerFactory dataLoaderWorkerFactory,
107
             final Provider<FirstRunWizardExecutor> firstRunExecutor) {
113
             final Provider<FirstRunWizardExecutor> firstRunExecutor) {
108
         this.dialogManager = dialogManager;
114
         this.dialogManager = dialogManager;
109
         this.eventQueue = eventQueue;
115
         this.eventQueue = eventQueue;
113
         this.statusBarManager = statusBarManager;
119
         this.statusBarManager = statusBarManager;
114
         this.urlHandler = urlHandler;
120
         this.urlHandler = urlHandler;
115
         this.dialogKeyListener = dialogKeyListener;
121
         this.dialogKeyListener = dialogKeyListener;
122
+        this.dataLoaderWorkerFactory = dataLoaderWorkerFactory;
116
         this.firstRunExecutor = firstRunExecutor;
123
         this.firstRunExecutor = firstRunExecutor;
117
 
124
 
118
         this.mainFrame = mainFrame;
125
         this.mainFrame = mainFrame;
167
         return dialogManager;
174
         return dialogManager;
168
     }
175
     }
169
 
176
 
177
+    @Deprecated
178
+    public DataLoaderWorkerFactory getDataLoaderWorkerFactory() {
179
+        return dataLoaderWorkerFactory;
180
+    }
181
+
170
     /**
182
     /**
171
      * Retrieves the window factory to use.
183
      * Retrieves the window factory to use.
172
      *
184
      *

+ 15
- 10
src/com/dmdirc/addons/ui_swing/components/addonbrowser/AddonInfoLabel.java View File

22
 
22
 
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
24
 
24
 
25
-import com.dmdirc.addons.ui_swing.SwingController;
26
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
25
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
26
+import com.dmdirc.addons.ui_swing.dialogs.DialogManager;
27
 
27
 
28
 import java.awt.Color;
28
 import java.awt.Color;
29
 import java.awt.Font;
29
 import java.awt.Font;
51
     private final AddonInfo addonInfo;
51
     private final AddonInfo addonInfo;
52
     /** Parent window. */
52
     /** Parent window. */
53
     private final BrowserWindow parentWindow;
53
     private final BrowserWindow parentWindow;
54
-    /** Swing controller. */
55
-    private final SwingController controller;
54
+    /** The manager that will be used for installer dialogs. */
55
+    private final DialogManager dialogManager;
56
+    /** Factory to use to create install workers. */
57
+    private final InstallWorkerFactory workerFactory;
56
 
58
 
57
     /**
59
     /**
58
      * Creates a new addon info label to describe the specified addon info.
60
      * Creates a new addon info label to describe the specified addon info.
59
      *
61
      *
60
-     * @param controller Swing controller
62
+     * @param dialogManager The manager that will be used for installer dialogs.
61
      * @param addonInfo Addon to describe
63
      * @param addonInfo Addon to describe
62
      * @param parentWindow Parent window
64
      * @param parentWindow Parent window
65
+     * @param workerFactory
63
      */
66
      */
64
-    public AddonInfoLabel(final SwingController controller,
65
-            final AddonInfo addonInfo, final BrowserWindow parentWindow) {
66
-        super();
67
-
68
-        this.controller = controller;
67
+    public AddonInfoLabel(
68
+            final DialogManager dialogManager,
69
+            final AddonInfo addonInfo,
70
+            final BrowserWindow parentWindow,
71
+            final InstallWorkerFactory workerFactory) {
72
+        this.dialogManager = dialogManager;
69
         this.addonInfo = addonInfo;
73
         this.addonInfo = addonInfo;
70
         this.parentWindow = parentWindow;
74
         this.parentWindow = parentWindow;
75
+        this.workerFactory = workerFactory;
71
 
76
 
72
         init();
77
         init();
73
     }
78
     }
95
                 "wmax 100%-170, hmax 150, growy, wrap, pushy, gapleft 5");
100
                 "wmax 100%-170, hmax 150, growy, wrap, pushy, gapleft 5");
96
 
101
 
97
         final JButton button = new JButton("Install");
102
         final JButton button = new JButton("Install");
98
-        button.addActionListener(new InstallListener(controller, addonInfo,
103
+        button.addActionListener(new InstallListener(dialogManager, workerFactory, addonInfo,
99
                 parentWindow));
104
                 parentWindow));
100
         final boolean installed = addonInfo.isInstalled();
105
         final boolean installed = addonInfo.isInstalled();
101
         add(button, "split, gapleft 5");
106
         add(button, "split, gapleft 5");

+ 7
- 11
src/com/dmdirc/addons/ui_swing/components/addonbrowser/BrowserWindow.java View File

22
 
22
 
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
24
 
24
 
25
-import com.dmdirc.addons.ui_swing.SwingController;
26
-
27
 import java.awt.Window;
25
 import java.awt.Window;
28
 import java.awt.event.ActionEvent;
26
 import java.awt.event.ActionEvent;
29
 import java.awt.event.ActionListener;
27
 import java.awt.event.ActionListener;
85
     private final JRadioButton statusButton = new JRadioButton("Status", false);
83
     private final JRadioButton statusButton = new JRadioButton("Status", false);
86
     /** Row sorter. */
84
     /** Row sorter. */
87
     private final AddonSorter sorter;
85
     private final AddonSorter sorter;
88
-    /** Swing controller. */
89
-    private final SwingController controller;
86
+    /** Factory to use to produce workers to load addon data. */
87
+    private final DataLoaderWorkerFactory loaderFactory;
90
 
88
 
91
     /**
89
     /**
92
      * Creates and displays a new browser window.
90
      * Creates and displays a new browser window.
93
      *
91
      *
94
-     * @param controller Swing controller
92
+     * @param loaderFactory Factory to use to produce workers.
95
      * @param parentWindow Parent window
93
      * @param parentWindow Parent window
96
      */
94
      */
97
-    public BrowserWindow(final SwingController controller,
95
+    public BrowserWindow(
96
+            final DataLoaderWorkerFactory loaderFactory,
98
             final Window parentWindow) {
97
             final Window parentWindow) {
99
         super(parentWindow, "DMDirc Addon Browser", ModalityType.MODELESS);
98
         super(parentWindow, "DMDirc Addon Browser", ModalityType.MODELESS);
100
-        this.controller = controller;
99
+        this.loaderFactory = loaderFactory;
101
         setIconImages(parentWindow.getIconImages());
100
         setIconImages(parentWindow.getIconImages());
102
         setResizable(false);
101
         setResizable(false);
103
         setLayout(new MigLayout("fill, wmin 650, hmin 600"));
102
         setLayout(new MigLayout("fill, wmin 650, hmin 600"));
195
      * @param download Download new addon feed?
194
      * @param download Download new addon feed?
196
      */
195
      */
197
     public final void loadData(final boolean download) {
196
     public final void loadData(final boolean download) {
198
-        new DataLoaderWorker(controller, list, download,
199
-                controller.getIdentityManager().getConfigurationDirectory(),
200
-                this, scrollPane)
201
-                .executeInExecutor();
197
+        loaderFactory.getDataLoaderWorker(list, download, this, scrollPane).executeInExecutor();
202
     }
198
     }
203
 
199
 
204
     /**
200
     /**

+ 19
- 8
src/com/dmdirc/addons/ui_swing/components/addonbrowser/DataLoaderWorker.java View File

26
 import com.dmdirc.addons.ui_swing.UIUtilities;
26
 import com.dmdirc.addons.ui_swing.UIUtilities;
27
 import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
27
 import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
28
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
28
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
29
+import com.dmdirc.commandline.CommandLineOptionsModule.Directory;
30
+import com.dmdirc.commandline.CommandLineOptionsModule.DirectoryType;
29
 import com.dmdirc.logger.ErrorLevel;
31
 import com.dmdirc.logger.ErrorLevel;
30
 import com.dmdirc.logger.Logger;
32
 import com.dmdirc.logger.Logger;
31
 import com.dmdirc.updater.UpdateChecker;
33
 import com.dmdirc.updater.UpdateChecker;
34
+import com.dmdirc.util.annotations.factory.Factory;
35
+import com.dmdirc.util.annotations.factory.Unbound;
32
 import com.dmdirc.util.io.ConfigFile;
36
 import com.dmdirc.util.io.ConfigFile;
33
 import com.dmdirc.util.io.DownloadListener;
37
 import com.dmdirc.util.io.DownloadListener;
34
 import com.dmdirc.util.io.Downloader;
38
 import com.dmdirc.util.io.Downloader;
53
 /**
57
 /**
54
  * Loads the addon data feed into the addon browser.
58
  * Loads the addon data feed into the addon browser.
55
  */
59
  */
60
+@Factory(inject = true)
56
 public class DataLoaderWorker
61
 public class DataLoaderWorker
57
         extends LoggingSwingWorker<Collection<AddonInfo>, Object>
62
         extends LoggingSwingWorker<Collection<AddonInfo>, Object>
58
         implements DownloadListener {
63
         implements DownloadListener {
71
     private final SwingController controller;
76
     private final SwingController controller;
72
     /** Directory to store temporary files in. */
77
     /** Directory to store temporary files in. */
73
     private final String tempDirectory;
78
     private final String tempDirectory;
79
+    /** Factory to use to produce install workers. */
80
+    private final InstallWorkerFactory workerFactory;
74
 
81
 
75
     /**
82
     /**
76
      * Creates a new data loader worker.
83
      * Creates a new data loader worker.
77
      *
84
      *
78
      * @param controller Swing controller
85
      * @param controller Swing controller
86
+     * @param workerFactory Factory to use to produce install workers.
87
+     * @param tempDirectory The directory to store temporary items in, such as the addons feed.
79
      * @param table Table to load data into
88
      * @param table Table to load data into
80
      * @param download Download new addons feed?
89
      * @param download Download new addons feed?
81
-     * @param tempDirectory The directory to store temporary items in, such as the addons feed.
82
      * @param browserWindow Browser window to pass to table objects
90
      * @param browserWindow Browser window to pass to table objects
83
      * @param scrollPane Table's parent scrollpane
91
      * @param scrollPane Table's parent scrollpane
84
      */
92
      */
85
-    public DataLoaderWorker(final SwingController controller,
86
-            final AddonTable table, final boolean download,
87
-            final String tempDirectory,
88
-            final BrowserWindow browserWindow, final JScrollPane scrollPane) {
89
-        super();
90
-
93
+    public DataLoaderWorker(
94
+            final SwingController controller,
95
+            final InstallWorkerFactory workerFactory,
96
+            @Directory(DirectoryType.TEMPORARY) final String tempDirectory,
97
+            @Unbound final AddonTable table,
98
+            @Unbound final boolean download,
99
+            @Unbound final BrowserWindow browserWindow,
100
+            @Unbound final JScrollPane scrollPane) {
91
         this.controller = controller;
101
         this.controller = controller;
102
+        this.workerFactory = workerFactory;
92
         this.download = download;
103
         this.download = download;
93
         this.table = table;
104
         this.table = table;
94
         this.tempDirectory = tempDirectory;
105
         this.tempDirectory = tempDirectory;
162
         table.getModel().setRowCount(0);
173
         table.getModel().setRowCount(0);
163
         for (final AddonInfo info : data) {
174
         for (final AddonInfo info : data) {
164
             table.getModel().addRow(new Object[]{
175
             table.getModel().addRow(new Object[]{
165
-                new AddonInfoLabel(controller, info, browserWindow),
176
+                new AddonInfoLabel(controller.getDialogManager(), info, browserWindow, workerFactory),
166
             });
177
             });
167
         }
178
         }
168
         table.getSelectionModel().setSelectionInterval(selectedRow, selectedRow);
179
         table.getSelectionModel().setSelectionInterval(selectedRow, selectedRow);

+ 15
- 10
src/com/dmdirc/addons/ui_swing/components/addonbrowser/InstallListener.java View File

22
 
22
 
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
24
 
24
 
25
-import com.dmdirc.addons.ui_swing.SwingController;
25
+import com.dmdirc.addons.ui_swing.dialogs.DialogManager;
26
 
26
 
27
 import java.awt.event.ActionEvent;
27
 import java.awt.event.ActionEvent;
28
 import java.awt.event.ActionListener;
28
 import java.awt.event.ActionListener;
34
 
34
 
35
     /** Addon info. */
35
     /** Addon info. */
36
     private final AddonInfo info;
36
     private final AddonInfo info;
37
+    /** Factory to use to create install workers. */
38
+    private final InstallWorkerFactory workerFactory;
37
     /** Parent window. */
39
     /** Parent window. */
38
     private final BrowserWindow parentWindow;
40
     private final BrowserWindow parentWindow;
39
     /** Swing controller. */
41
     /** Swing controller. */
40
-    private final SwingController controller;
42
+    private final DialogManager dialogManager;
41
 
43
 
42
     /**
44
     /**
43
      * Instantiates a new install listener.
45
      * Instantiates a new install listener.
44
      *
46
      *
45
-     * @param controller Swing controller
47
+     * @param dialogManager Manager to use for installer dialogs.
48
+     * @param workerFactory Factory to use to construct install workers.
46
      * @param info Addoninfo to install
49
      * @param info Addoninfo to install
47
      * @param parentWindow Parent window
50
      * @param parentWindow Parent window
48
      */
51
      */
49
-    public InstallListener(final SwingController controller,
50
-            final AddonInfo info, final BrowserWindow parentWindow) {
51
-        super();
52
-
53
-        this.controller = controller;
52
+    public InstallListener(
53
+            final DialogManager dialogManager,
54
+            final InstallWorkerFactory workerFactory,
55
+            final AddonInfo info,
56
+            final BrowserWindow parentWindow) {
57
+        this.dialogManager = dialogManager;
58
+        this.workerFactory = workerFactory;
54
         this.info = info;
59
         this.info = info;
55
         this.parentWindow = parentWindow;
60
         this.parentWindow = parentWindow;
56
     }
61
     }
62
      */
67
      */
63
     @Override
68
     @Override
64
     public void actionPerformed(final ActionEvent e) {
69
     public void actionPerformed(final ActionEvent e) {
65
-        final InstallerWindow installer = new InstallerWindow(controller,
70
+        final InstallerWindow installer = new InstallerWindow(dialogManager,
66
                 parentWindow, info);
71
                 parentWindow, info);
67
         installer.display(parentWindow);
72
         installer.display(parentWindow);
68
-        new InstallWorker(info, installer, controller).executeInExecutor();
73
+        workerFactory.getInstallWorker(info, installer).executeInExecutor();
69
     }
74
     }
70
 }
75
 }

+ 29
- 15
src/com/dmdirc/addons/ui_swing/components/addonbrowser/InstallWorker.java View File

23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
24
 
24
 
25
 import com.dmdirc.actions.ActionManager;
25
 import com.dmdirc.actions.ActionManager;
26
-import com.dmdirc.addons.ui_swing.SwingController;
27
 import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
26
 import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
27
+import com.dmdirc.commandline.CommandLineOptionsModule.Directory;
28
+import com.dmdirc.commandline.CommandLineOptionsModule.DirectoryType;
29
+import com.dmdirc.plugins.PluginManager;
30
+import com.dmdirc.util.annotations.factory.Factory;
31
+import com.dmdirc.util.annotations.factory.Unbound;
28
 import com.dmdirc.util.io.Downloader;
32
 import com.dmdirc.util.io.Downloader;
29
 
33
 
30
 import java.io.File;
34
 import java.io.File;
34
 /**
38
 /**
35
  * Downloads a given addon from the addon site and loads it into the client.
39
  * Downloads a given addon from the addon site and loads it into the client.
36
  */
40
  */
41
+@Factory(inject = true)
37
 public class InstallWorker extends LoggingSwingWorker<String, Void> {
42
 public class InstallWorker extends LoggingSwingWorker<String, Void> {
38
 
43
 
39
     /** Addon info. */
44
     /** Addon info. */
40
     private final AddonInfo info;
45
     private final AddonInfo info;
41
     /** Window to show installer progress. */
46
     /** Window to show installer progress. */
42
     private final InstallerWindow installer;
47
     private final InstallerWindow installer;
43
-    /** */
44
-    private final SwingController controller;
48
+    /** Temporary directory to download files to. */
49
+    private final String tempDirectory;
50
+    /** Directory to install plugins in. */
51
+    private final String pluginDirectory;
52
+    /** Directory to install themes in. */
53
+    private final String themeDirectory;
54
+    /** Plugin manager to inform of new plugins. */
55
+    private final PluginManager pluginManager;
45
 
56
 
46
-    public InstallWorker(final AddonInfo info, final InstallerWindow window,
47
-            final SwingController controller) {
57
+    public InstallWorker(
58
+            @Directory(DirectoryType.TEMPORARY) final String tempDirectory,
59
+            @Directory(DirectoryType.PLUGINS) final String pluginDirectory,
60
+            @Directory(DirectoryType.THEMES) final String themeDirectory,
61
+            final PluginManager pluginManager,
62
+            @Unbound final AddonInfo info,
63
+            @Unbound final InstallerWindow window) {
48
         super();
64
         super();
49
 
65
 
50
         this.info = info;
66
         this.info = info;
51
         this.installer = window;
67
         this.installer = window;
52
-        this.controller = controller;
68
+        this.tempDirectory = tempDirectory;
69
+        this.pluginDirectory = pluginDirectory;
70
+        this.themeDirectory = themeDirectory;
71
+        this.pluginManager = pluginManager;
53
     }
72
     }
54
 
73
 
55
     /** {@inheritDoc} */
74
     /** {@inheritDoc} */
56
     @Override
75
     @Override
57
     protected String doInBackground() {
76
     protected String doInBackground() {
58
         try {
77
         try {
59
-            final File file = new File(controller.getIdentityManager().getConfigurationDirectory(),
60
-                    "." + info.getId());
78
+            final File file = new File(tempDirectory, "." + info.getId());
61
             Downloader.downloadPage("http://addons.dmdirc.com/addondownload/"
79
             Downloader.downloadPage("http://addons.dmdirc.com/addondownload/"
62
                     + info.getDownload(), file.getAbsolutePath());
80
                     + info.getDownload(), file.getAbsolutePath());
63
 
81
 
66
                     ActionManager.installActionPack(file.getAbsolutePath());
84
                     ActionManager.installActionPack(file.getAbsolutePath());
67
                     break;
85
                     break;
68
                 case TYPE_PLUGIN:
86
                 case TYPE_PLUGIN:
69
-                    final File newFile = new File(
70
-                            controller.getPluginManager().getDirectory(),
71
-                            info.getTitle() + ".jar");
87
+                    final File newFile = new File(pluginDirectory, info.getTitle() + ".jar");
72
                     if (file.renameTo(newFile)) {
88
                     if (file.renameTo(newFile)) {
73
-                        controller.getPluginManager().addPlugin(
74
-                                newFile.getName());
89
+                        pluginManager.addPlugin(newFile.getName());
75
                     } else {
90
                     } else {
76
                         return "Unable to install addon, failed to move file: "
91
                         return "Unable to install addon, failed to move file: "
77
                                 + file.getAbsolutePath();
92
                                 + file.getAbsolutePath();
78
                     }
93
                     }
79
                     break;
94
                     break;
80
                 case TYPE_THEME:
95
                 case TYPE_THEME:
81
-                    if (!file.renameTo(new File(controller.getThemeManager().getDirectory()
82
-                            + info.getTitle() + ".zip"))) {
96
+                    if (!file.renameTo(new File(themeDirectory, info.getTitle() + ".zip"))) {
83
                         return "Unable to install addon, failed to move file: "
97
                         return "Unable to install addon, failed to move file: "
84
                                 + file.getAbsolutePath();
98
                                 + file.getAbsolutePath();
85
                     }
99
                     }

+ 4
- 4
src/com/dmdirc/addons/ui_swing/components/addonbrowser/InstallerWindow.java View File

22
 
22
 
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
23
 package com.dmdirc.addons.ui_swing.components.addonbrowser;
24
 
24
 
25
-import com.dmdirc.addons.ui_swing.SwingController;
26
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
25
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
26
+import com.dmdirc.addons.ui_swing.dialogs.DialogManager;
27
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
27
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
28
 
28
 
29
 import java.awt.event.ActionEvent;
29
 import java.awt.event.ActionEvent;
57
     /**
57
     /**
58
      * Instantiates a new installer window.
58
      * Instantiates a new installer window.
59
      *
59
      *
60
-     * @param controller Swing controller
60
+     * @param dialogManager The dialog manager looking after this window.
61
      * @param parentWindow Parent window
61
      * @param parentWindow Parent window
62
      * @param info Associated addon info
62
      * @param info Associated addon info
63
      */
63
      */
64
-    public InstallerWindow(final SwingController controller,
64
+    public InstallerWindow(final DialogManager dialogManager,
65
             final BrowserWindow parentWindow, final AddonInfo info) {
65
             final BrowserWindow parentWindow, final AddonInfo info) {
66
-        super(controller.getDialogManager(), parentWindow, ModalityType.MODELESS);
66
+        super(dialogManager, parentWindow, ModalityType.MODELESS);
67
         this.info = info;
67
         this.info = info;
68
         this.parentWindow = parentWindow;
68
         this.parentWindow = parentWindow;
69
         setTitle("Installing addon...");
69
         setTitle("Installing addon...");

+ 1
- 1
src/com/dmdirc/addons/ui_swing/components/addonpanel/AddonPanel.java View File

207
     @Override
207
     @Override
208
     public void hyperlinkUpdate(final HyperlinkEvent e) {
208
     public void hyperlinkUpdate(final HyperlinkEvent e) {
209
         if (e.getEventType() == EventType.ACTIVATED) {
209
         if (e.getEventType() == EventType.ACTIVATED) {
210
-            new BrowserWindow(controller, parentWindow);
210
+            new BrowserWindow(controller.getDataLoaderWorkerFactory(), parentWindow);
211
         }
211
         }
212
     }
212
     }
213
 
213
 

Loading…
Cancel
Save