Browse Source

Inject update manager in a few places.

Again, add a deprecated method to SwingController/Manager to escape the dependency
hell temporarily.

Change-Id: Ia79f9199e8ca40dddddd8de6f9a44da042fc617f
Depends-On: Ia79f9199e8ca40dc3031234569a44da042fc617f
Reviewed-on: http://gerrit.dmdirc.com/3025
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.8
Chris Smith 10 years ago
parent
commit
8916d98222

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

@@ -70,6 +70,7 @@ import com.dmdirc.ui.core.util.URLHandler;
70 70
 import com.dmdirc.ui.messages.ColourManager;
71 71
 import com.dmdirc.ui.themes.ThemeManager;
72 72
 import com.dmdirc.updater.Version;
73
+import com.dmdirc.updater.manager.CachingUpdateManager;
73 74
 import com.dmdirc.util.URLBuilder;
74 75
 import com.dmdirc.util.validators.NumericalValidator;
75 76
 import com.dmdirc.util.validators.OptionalValidator;
@@ -932,4 +933,9 @@ public class SwingController extends BaseCommandPlugin implements UIController {
932 933
         return swingManager.getDataLoaderWorkerFactory();
933 934
     }
934 935
 
936
+    @Deprecated
937
+    public CachingUpdateManager getCachingUpdateManager() {
938
+        return swingManager.getCachingUpdateManager();
939
+    }
940
+
935 941
 }

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

@@ -32,6 +32,7 @@ import com.dmdirc.addons.ui_swing.wizard.firstrun.FirstRunWizardExecutor;
32 32
 import com.dmdirc.ui.WindowManager;
33 33
 import com.dmdirc.ui.core.components.StatusBarManager;
34 34
 import com.dmdirc.ui.core.util.URLHandler;
35
+import com.dmdirc.updater.manager.CachingUpdateManager;
35 36
 
36 37
 import java.awt.KeyboardFocusManager;
37 38
 import java.awt.Toolkit;
@@ -76,6 +77,9 @@ public class SwingManager {
76 77
     /** Factory used to create data loader workers. */
77 78
     private final DataLoaderWorkerFactory dataLoaderWorkerFactory;
78 79
 
80
+    /** The update manager to use. */
81
+    private final CachingUpdateManager cachingUpdateManager;
82
+
79 83
     /** Provider of first run executors. */
80 84
     private final Provider<FirstRunWizardExecutor> firstRunExecutor;
81 85
 
@@ -94,6 +98,7 @@ public class SwingManager {
94 98
      * @param urlHandler The URL handler to use.
95 99
      * @param dialogKeyListener The key listener that supports dialogs.
96 100
      * @param dataLoaderWorkerFactory Factory used to create data loader workers.
101
+     * @param cachingUpdateManager Update manager to use.
97 102
      * @param firstRunExecutor A provider of first run executors.
98 103
      */
99 104
     @Inject
@@ -110,6 +115,7 @@ public class SwingManager {
110 115
             final URLHandler urlHandler,
111 116
             final DialogKeyListener dialogKeyListener,
112 117
             final DataLoaderWorkerFactory dataLoaderWorkerFactory,
118
+            final CachingUpdateManager cachingUpdateManager,
113 119
             final Provider<FirstRunWizardExecutor> firstRunExecutor) {
114 120
         this.dialogManager = dialogManager;
115 121
         this.eventQueue = eventQueue;
@@ -120,6 +126,7 @@ public class SwingManager {
120 126
         this.urlHandler = urlHandler;
121 127
         this.dialogKeyListener = dialogKeyListener;
122 128
         this.dataLoaderWorkerFactory = dataLoaderWorkerFactory;
129
+        this.cachingUpdateManager = cachingUpdateManager;
123 130
         this.firstRunExecutor = firstRunExecutor;
124 131
 
125 132
         this.mainFrame = mainFrame;
@@ -179,6 +186,11 @@ public class SwingManager {
179 186
         return dataLoaderWorkerFactory;
180 187
     }
181 188
 
189
+    @Deprecated
190
+    public CachingUpdateManager getCachingUpdateManager() {
191
+        return cachingUpdateManager;
192
+    }
193
+
182 194
     /**
183 195
      * Retrieves the window factory to use.
184 196
      *

+ 25
- 15
src/com/dmdirc/addons/ui_swing/components/addonpanel/AddonToggle.java View File

@@ -26,8 +26,8 @@ import com.dmdirc.interfaces.config.ConfigProvider;
26 26
 import com.dmdirc.plugins.PluginInfo;
27 27
 import com.dmdirc.ui.themes.Theme;
28 28
 import com.dmdirc.ui.themes.ThemeManager;
29
-import com.dmdirc.updater.UpdateChecker;
30 29
 import com.dmdirc.updater.UpdateComponent;
30
+import com.dmdirc.updater.manager.CachingUpdateManager;
31 31
 import com.dmdirc.updater.manager.UpdateStatus;
32 32
 import com.dmdirc.util.collections.ListenerList;
33 33
 
@@ -56,44 +56,54 @@ public final class AddonToggle {
56 56
      * Creates a new instance of AddonToggle to wrap the specified
57 57
      * PluginInfo.
58 58
      *
59
+     * @param updateManager The update manager to use to retrieve component info.
59 60
      * @param identity Identity to change update settings in.
60 61
      * @param pi The PluginInfo to be wrapped.
61 62
      */
62
-    public AddonToggle(final ConfigProvider identity, final PluginInfo pi) {
63
+    public AddonToggle(
64
+            final CachingUpdateManager updateManager,
65
+            final ConfigProvider identity,
66
+            final PluginInfo pi) {
63 67
         this.identity = identity;
64 68
         this.pi = pi;
65 69
         this.theme = null;
66 70
         this.themeManager = null;
67 71
         state = pi.isLoaded();
68 72
 
69
-        for (UpdateComponent comp : UpdateChecker.getManager().getComponents()) {
70
-            if (comp.getName().equals("addon-" + getID())) {
71
-                updateState = UpdateChecker.getManager().getStatus(comp)
72
-                        != UpdateStatus.CHECKING_NOT_PERMITTED;
73
-                break;
74
-            }
75
-        }
73
+        checkUpdateState(updateManager);
76 74
     }
77 75
 
78 76
     /**
79
-     * Creates a new instance of AddonToggle to wrap the specified
80
-     * Theme.
77
+     * Creates a new instance of AddonToggle to wrap the specified Theme.
81 78
      *
79
+     * @param updateManager The update manager to use to retrieve component info.
82 80
      * @param identity Identity to change update settings in.
83 81
      * @param themeManager The manager to update when toggling a theme.
84 82
      * @param theme The Theme to be wrapped
85 83
      */
86
-    public AddonToggle(final ConfigProvider identity, final ThemeManager themeManager, final Theme theme) {
84
+    public AddonToggle(
85
+            final CachingUpdateManager updateManager,
86
+            final ConfigProvider identity,
87
+            final ThemeManager themeManager,
88
+            final Theme theme) {
87 89
         this.identity = identity;
88 90
         this.pi = null;
89 91
         this.theme = theme;
90 92
         this.themeManager = themeManager;
91 93
         state = theme.isEnabled();
92 94
 
93
-        for (UpdateComponent comp : UpdateChecker.getManager().getComponents()) {
95
+        checkUpdateState(updateManager);
96
+    }
97
+
98
+    /**
99
+     * Checks whether or not the component that is controlled by this toggle is enabled.
100
+     *
101
+     * @param updateManager The update manager to use to retrieve component info.
102
+     */
103
+    private void checkUpdateState(final CachingUpdateManager updateManager) {
104
+        for (UpdateComponent comp : updateManager.getComponents()) {
94 105
             if (comp.getName().equals("addon-" + getID())) {
95
-                updateState = UpdateChecker.getManager().getStatus(comp)
96
-                        != UpdateStatus.CHECKING_NOT_PERMITTED;
106
+                updateState = updateManager.getStatus(comp) != UpdateStatus.CHECKING_NOT_PERMITTED;
97 107
                 break;
98 108
             }
99 109
         }

+ 8
- 3
src/com/dmdirc/addons/ui_swing/components/addonpanel/PluginPanel.java View File

@@ -96,9 +96,14 @@ public class PluginPanel extends AddonPanel implements ActionListener {
96 96
                 ((DefaultTableModel) table.getModel()).setNumRows(0);
97 97
                 for (final PluginInfo plugin : sortedList) {
98 98
                     ((DefaultTableModel) table.getModel()).addRow(
99
-                            new AddonCell[]{ new AddonCell(new AddonToggle(
100
-                                    controller.getGlobalIdentity(), plugin),
101
-                                    getIconManager()), });
99
+                            new AddonCell[]{
100
+                                new AddonCell(
101
+                                        new AddonToggle(
102
+                                                controller.getCachingUpdateManager(),
103
+                                                controller.getGlobalIdentity(),
104
+                                                plugin),
105
+                                        getIconManager()),
106
+                            });
102 107
                 }
103 108
                 table.repaint();
104 109
             }

+ 9
- 4
src/com/dmdirc/addons/ui_swing/components/addonpanel/ThemePanel.java View File

@@ -80,10 +80,15 @@ public class ThemePanel extends AddonPanel {
80 80
                 ((DefaultTableModel) addonList.getModel()).setRowCount(0);
81 81
                 for (final Theme theme : list) {
82 82
                     ((DefaultTableModel) addonList.getModel()).addRow(
83
-                    new AddonCell[]{ new AddonCell(new AddonToggle(
84
-                            controller.getGlobalIdentity(),
85
-                            controller.getThemeManager(), theme),
86
-                            getIconManager()), });
83
+                            new AddonCell[]{
84
+                                new AddonCell(
85
+                                        new AddonToggle(
86
+                                                controller.getCachingUpdateManager(),
87
+                                                controller.getGlobalIdentity(),
88
+                                                controller.getThemeManager(),
89
+                                                theme),
90
+                                        getIconManager()),
91
+                            });
87 92
                 }
88 93
 
89 94
                 addonList.repaint();

Loading…
Cancel
Save