Browse Source

Inject some prefs panel dependencies.

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

+ 4
- 2
src/com/dmdirc/addons/ui_swing/components/addonpanel/PluginPanel.java View File

@@ -24,6 +24,7 @@ package com.dmdirc.addons.ui_swing.components.addonpanel;
24 24
 
25 25
 import com.dmdirc.actions.ActionManager;
26 26
 import com.dmdirc.actions.CoreActionType;
27
+import com.dmdirc.addons.ui_swing.MainFrame;
27 28
 import com.dmdirc.addons.ui_swing.SwingController;
28 29
 import com.dmdirc.addons.ui_swing.UIUtilities;
29 30
 import com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog;
@@ -31,11 +32,11 @@ import com.dmdirc.interfaces.ActionListener;
31 32
 import com.dmdirc.interfaces.actions.ActionType;
32 33
 import com.dmdirc.plugins.PluginInfo;
33 34
 
34
-import java.awt.Window;
35 35
 import java.util.ArrayList;
36 36
 import java.util.Collections;
37 37
 import java.util.List;
38 38
 
39
+import javax.inject.Inject;
39 40
 import javax.swing.JTable;
40 41
 import javax.swing.table.DefaultTableModel;
41 42
 
@@ -59,8 +60,9 @@ public class PluginPanel extends AddonPanel implements ActionListener {
59 60
      * @param controller Swing Controller
60 61
      * @param prefsDialog The prefs dialog that contains this panel
61 62
      */
63
+    @Inject
62 64
     public PluginPanel(
63
-            final Window parentWindow,
65
+            final MainFrame parentWindow,
64 66
             final SwingController controller,
65 67
             final SwingPreferencesDialog prefsDialog) {
66 68
         super(parentWindow, controller, prefsDialog);

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

@@ -22,17 +22,18 @@
22 22
 
23 23
 package com.dmdirc.addons.ui_swing.components.addonpanel;
24 24
 
25
+import com.dmdirc.addons.ui_swing.MainFrame;
25 26
 import com.dmdirc.addons.ui_swing.SwingController;
26 27
 import com.dmdirc.addons.ui_swing.UIUtilities;
27 28
 import com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog;
28 29
 import com.dmdirc.ui.themes.Theme;
29 30
 import com.dmdirc.ui.themes.ThemeManager;
30 31
 
31
-import java.awt.Window;
32 32
 import java.util.ArrayList;
33 33
 import java.util.Collections;
34 34
 import java.util.List;
35 35
 
36
+import javax.inject.Inject;
36 37
 import javax.swing.JTable;
37 38
 import javax.swing.table.DefaultTableModel;
38 39
 
@@ -60,8 +61,9 @@ public class ThemePanel extends AddonPanel {
60 61
      * @param themeManager Manager to retrieve themes from.
61 62
      * @param prefsDialog The prefs dialog that contains this panel
62 63
      */
64
+    @Inject
63 65
     public ThemePanel(
64
-            final Window parentWindow,
66
+            final MainFrame parentWindow,
65 67
             final SwingController controller,
66 68
             final ThemeManager themeManager,
67 69
             final SwingPreferencesDialog prefsDialog) {

+ 4
- 15
src/com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog.java View File

@@ -22,13 +22,10 @@
22 22
 
23 23
 package com.dmdirc.addons.ui_swing.dialogs.prefs;
24 24
 
25
-import com.dmdirc.actions.ActionManager;
26 25
 import com.dmdirc.addons.ui_swing.SwingController;
27 26
 import com.dmdirc.addons.ui_swing.UIUtilities;
28 27
 import com.dmdirc.addons.ui_swing.components.ListScroller;
29 28
 import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
30
-import com.dmdirc.addons.ui_swing.components.addonpanel.PluginPanel;
31
-import com.dmdirc.addons.ui_swing.components.addonpanel.ThemePanel;
32 29
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
33 30
 import com.dmdirc.addons.ui_swing.dialogs.updater.SwingRestartDialog;
34 31
 import com.dmdirc.addons.ui_swing.injection.DialogModule.ForSettings;
@@ -45,6 +42,7 @@ import java.util.List;
45 42
 import java.util.concurrent.ExecutionException;
46 43
 
47 44
 import javax.inject.Inject;
45
+import javax.inject.Provider;
48 46
 import javax.swing.BorderFactory;
49 47
 import javax.swing.DefaultListModel;
50 48
 import javax.swing.JButton;
@@ -89,12 +87,13 @@ public final class SwingPreferencesDialog extends StandardDialog implements
89 87
      * @param controller The controller which owns this preferences window.
90 88
      * @param restartDialogProvider The provider to use for restart dialogs.
91 89
      * @param actionsManager Actions manager to use.
90
+     * @param dialogModelProvider The provider to use to get a dialog model.
92 91
      */
93 92
     @Inject
94 93
     public SwingPreferencesDialog(
95 94
             final SwingController controller,
96 95
             @ForSettings final DialogProvider<SwingRestartDialog> restartDialogProvider,
97
-            final ActionManager actionsManager) {
96
+            final Provider<PreferencesDialogModel> dialogModelProvider) {
98 97
         super(controller.getMainFrame(), ModalityType.MODELESS);
99 98
 
100 99
         this.controller = controller;
@@ -110,17 +109,7 @@ public final class SwingPreferencesDialog extends StandardDialog implements
110 109
                 mainPanel.setWaiting(true);
111 110
                 PreferencesDialogModel prefsManager = null;
112 111
                 try {
113
-                    prefsManager = new PreferencesDialogModel(
114
-                            new PluginPanel(controller.getMainFrame(), controller,
115
-                                    SwingPreferencesDialog.this),
116
-                            new ThemePanel(controller.getMainFrame(), controller,
117
-                                    controller.getThemeManager(), SwingPreferencesDialog.this),
118
-                            new UpdateConfigPanel(controller),
119
-                            new URLConfigPanel(controller, controller.getMainFrame()),
120
-                            controller.getGlobalConfig(),
121
-                            controller.getGlobalIdentity(),
122
-                            actionsManager,
123
-                            controller.getPluginManager());
112
+                    prefsManager = dialogModelProvider.get();
124 113
                 } catch (IllegalArgumentException ex) {
125 114
                     mainPanel.setError(ex.getMessage());
126 115
                     Logger.appError(ErrorLevel.HIGH, "Unable to load the" +

+ 6
- 2
src/com/dmdirc/addons/ui_swing/dialogs/prefs/URLConfigPanel.java View File

@@ -22,6 +22,7 @@
22 22
 
23 23
 package com.dmdirc.addons.ui_swing.dialogs.prefs;
24 24
 
25
+import com.dmdirc.addons.ui_swing.MainFrame;
25 26
 import com.dmdirc.addons.ui_swing.SwingController;
26 27
 import com.dmdirc.addons.ui_swing.components.PackingTable;
27 28
 import com.dmdirc.addons.ui_swing.components.URLProtocolPanel;
@@ -42,6 +43,7 @@ import java.util.Map;
42 43
 import java.util.Map.Entry;
43 44
 import java.util.Set;
44 45
 
46
+import javax.inject.Inject;
45 47
 import javax.swing.JButton;
46 48
 import javax.swing.JPanel;
47 49
 import javax.swing.JScrollPane;
@@ -90,8 +92,10 @@ public class URLConfigPanel extends JPanel implements
90 92
      * @param controller Swing controller
91 93
      * @param parentWindow Parent window
92 94
      */
93
-    public URLConfigPanel(final SwingController controller,
94
-            final Window parentWindow) {
95
+    @Inject
96
+    public URLConfigPanel(
97
+            final SwingController controller,
98
+            final MainFrame parentWindow) {
95 99
         super();
96 100
 
97 101
         this.controller = controller;

+ 10
- 3
src/com/dmdirc/addons/ui_swing/dialogs/prefs/UpdateConfigPanel.java View File

@@ -36,6 +36,7 @@ import com.dmdirc.updater.UpdateChecker;
36 36
 import java.awt.event.ActionEvent;
37 37
 import java.awt.event.ActionListener;
38 38
 
39
+import javax.inject.Inject;
39 40
 import javax.swing.DefaultComboBoxModel;
40 41
 import javax.swing.JButton;
41 42
 import javax.swing.JCheckBox;
@@ -72,14 +73,21 @@ public class UpdateConfigPanel extends JPanel implements ActionListener,
72 73
     private JComboBox updateChannel;
73 74
     /** Swing controller. */
74 75
     private final SwingController controller;
76
+    /** The prefs dialog that will be hosting the panel. */
77
+    private final SwingPreferencesDialog prefsDialog;
75 78
 
76 79
     /**
77 80
      * Instantiates a new update config panel.
78 81
      *
79 82
      * @param controller Swing controller
83
+     * @param prefsDialog The prefs dialog that will be hosting the panel.
80 84
      */
81
-    public UpdateConfigPanel(final SwingController controller) {
85
+    @Inject
86
+    public UpdateConfigPanel(
87
+            final SwingController controller,
88
+            final SwingPreferencesDialog prefsDialog) {
82 89
         this.controller = controller;
90
+        this.prefsDialog = prefsDialog;
83 91
 
84 92
         initComponents();
85 93
         addListeners();
@@ -148,8 +156,7 @@ public class UpdateConfigPanel extends JPanel implements ActionListener,
148 156
      * Lays out the components.
149 157
      */
150 158
     private void layoutComponents() {
151
-        setLayout(new MigLayout("fill, ins 0, hmax " + controller.getPrefsDialog().
152
-                getPanelHeight()));
159
+        setLayout(new MigLayout("fill, ins 0, hmax " + prefsDialog.getPanelHeight()));
153 160
 
154 161
         add(new JLabel("Update checking:"), "split");
155 162
         add(enable, "growx");

+ 23
- 0
src/com/dmdirc/addons/ui_swing/injection/SwingModule.java View File

@@ -24,7 +24,9 @@ package com.dmdirc.addons.ui_swing.injection;
24 24
 
25 25
 import com.dmdirc.ClientModule;
26 26
 import com.dmdirc.ClientModule.GlobalConfig;
27
+import com.dmdirc.ClientModule.UserConfig;
27 28
 import com.dmdirc.ServerManager;
29
+import com.dmdirc.actions.ActionManager;
28 30
 import com.dmdirc.addons.ui_swing.MainFrame;
29 31
 import com.dmdirc.addons.ui_swing.QuitWorker;
30 32
 import com.dmdirc.addons.ui_swing.SwingController;
@@ -36,8 +38,15 @@ import com.dmdirc.addons.ui_swing.commands.Input;
36 38
 import com.dmdirc.addons.ui_swing.commands.PopInCommand;
37 39
 import com.dmdirc.addons.ui_swing.commands.PopOutCommand;
38 40
 import com.dmdirc.addons.ui_swing.commands.ServerSettings;
41
+import com.dmdirc.addons.ui_swing.components.addonpanel.PluginPanel;
42
+import com.dmdirc.addons.ui_swing.components.addonpanel.ThemePanel;
43
+import com.dmdirc.addons.ui_swing.dialogs.prefs.URLConfigPanel;
44
+import com.dmdirc.addons.ui_swing.dialogs.prefs.UpdateConfigPanel;
45
+import com.dmdirc.config.prefs.PreferencesDialogModel;
39 46
 import com.dmdirc.interfaces.LifecycleController;
40 47
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
48
+import com.dmdirc.interfaces.config.ConfigProvider;
49
+import com.dmdirc.plugins.PluginManager;
41 50
 import com.dmdirc.ui.IconManager;
42 51
 import com.dmdirc.ui.WindowManager;
43 52
 import com.dmdirc.ui.core.components.StatusBarManager;
@@ -169,4 +178,18 @@ public class SwingModule {
169 178
         return new URLHandler(swingController, globalConfig, serverManager, statusBarManager);
170 179
     }
171 180
 
181
+    @Provides
182
+    public PreferencesDialogModel getPrefsDialogModel(
183
+            final PluginPanel pluginPanel,
184
+            final ThemePanel themePanel,
185
+            final UpdateConfigPanel updatePanel,
186
+            final URLConfigPanel urlPanel,
187
+            @GlobalConfig final AggregateConfigProvider configManager,
188
+            @UserConfig final ConfigProvider identity,
189
+            final ActionManager actionManager,
190
+            final PluginManager pluginManager) {
191
+        return new PreferencesDialogModel(pluginPanel, themePanel, updatePanel, urlPanel,
192
+                configManager, identity, actionManager, pluginManager);
193
+    }
194
+
172 195
 }

Loading…
Cancel
Save