Quellcode durchsuchen

Continue main removal

Change-Id: I28c660092aabbc8eeebd9ed4dcc80cb9f3940aaf
Depends-On: I28c660092aabbc8eeebd9ed4dcc80cb9f3940aaf
Reviewed-on: http://gerrit.dmdirc.com/2589
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
tags/0.7
Greg Holmes vor 11 Jahren
Ursprung
Commit
e93538e9dc

+ 1
- 1
src/com/dmdirc/Main.java Datei anzeigen

@@ -104,7 +104,6 @@ public class Main {
104 104
         Thread.setDefaultUncaughtExceptionHandler(new DMDircExceptionHandler());
105 105
 
106 106
         IdentityManager.getIdentityManager().loadVersionIdentity();
107
-        serverManager = new ServerManager(this);
108 107
         ActionManager.initActionManager(this, serverManager, IdentityManager.getIdentityManager());
109 108
 
110 109
         final CommandLineParser clp = new CommandLineParser(this, args);
@@ -124,6 +123,7 @@ public class Main {
124 123
                 serverManager, ActionManager.getActionManager(),
125 124
                 IdentityManager.getIdentityManager(), this);
126 125
         checkBundledPlugins(pluginManager, IdentityManager.getIdentityManager().getGlobalConfiguration());
126
+        serverManager = new ServerManager(new ParserFactory(pluginManager));
127 127
 
128 128
         ThemeManager.loadThemes();
129 129
 

+ 5
- 2
src/com/dmdirc/Server.java Datei anzeigen

@@ -194,11 +194,14 @@ public class Server extends WritableFrameContainer
194 194
      * the specified profile.
195 195
      *
196 196
      * @since 0.6.3
197
+     *
198
+     * @param parserFactory Parser factory used to create parsers.
197 199
      * @param manager The servermanager that owns this server.
198 200
      * @param uri The address of the server to connect to
199 201
      * @param profile The profile to use
200 202
      */
201
-    public Server(final ServerManager manager, final URI uri, final Identity profile) {
203
+    public Server(final ParserFactory parserFactory,
204
+            final ServerManager manager, final URI uri, final Identity profile) {
202 205
         super("server-disconnected", getHost(uri), getHost(uri),
203 206
                 new ConfigManager(uri.getScheme(), "", "", uri.getHost()),
204 207
                 new ServerCommandParser(
@@ -208,7 +211,7 @@ public class Server extends WritableFrameContainer
208 211
                 WindowComponent.CERTIFICATE_VIEWER.getIdentifier()));
209 212
 
210 213
         this.manager = manager;
211
-        parserFactory = new ParserFactory(manager.getMain().getPluginManager());
214
+        this.parserFactory = parserFactory;
212 215
         setConnectionDetails(uri, profile);
213 216
 
214 217
         manager.registerServer(this);

+ 8
- 23
src/com/dmdirc/ServerManager.java Datei anzeigen

@@ -36,40 +36,25 @@ import java.util.List;
36 36
 import java.util.Set;
37 37
 import java.util.concurrent.CopyOnWriteArraySet;
38 38
 
39
+import lombok.RequiredArgsConstructor;
40
+
39 41
 /**
40 42
  * The ServerManager maintains a list of all servers, and provides methods to
41 43
  * search or iterate over them.
42 44
  */
45
+@RequiredArgsConstructor
43 46
 public class ServerManager implements ServerFactory {
44 47
 
45
-    /** Main that owns this ServerManager. */
46
-    private final Main main;
48
+    /** Parser factory. */
49
+    private final ParserFactory parserFactory;
47 50
 
48 51
     /** All servers that currently exist. */
49 52
     private final Set<Server> servers = new CopyOnWriteArraySet<Server>();
50 53
 
51
-    /**
52
-     * Creates a new instance of ServerManager.
53
-     */
54
-    public ServerManager(final Main main) {
55
-        this.main = main;
56
-    }
57
-
58
-    /**
59
-     * Get the Main that owns this ServerManager.
60
-     *
61
-     * @return The Main that owns this ServerManager.
62
-     * @Deprecated Global state is bad.
63
-     */
64
-    @Deprecated
65
-    public Main getMain() {
66
-        return main;
67
-    }
68
-
69 54
     /** {@inheritDoc} */
70 55
     @Override
71 56
     public Server createServer(final URI uri, final Identity profile) {
72
-        return new Server(this, uri, profile);
57
+        return new Server(parserFactory, this, uri, profile);
73 58
     }
74 59
 
75 60
     /**
@@ -212,7 +197,7 @@ public class ServerManager implements ServerFactory {
212 197
         }
213 198
 
214 199
         if (server == null) {
215
-            server = new Server(this, uri, profile);
200
+            server = new Server(parserFactory, this, uri, profile);
216 201
             server.connect();
217 202
             return server;
218 203
         }
@@ -248,7 +233,7 @@ public class ServerManager implements ServerFactory {
248 233
 
249 234
         if (connectedServer == null) {
250 235
             try {
251
-                final Server server = new Server(this, new URI("irc://irc.quakenet.org/DMDirc"),
236
+                final Server server = new Server(parserFactory, this, new URI("irc://irc.quakenet.org/DMDirc"),
252 237
                         IdentityManager.getIdentityManager()
253 238
                         .getIdentitiesByType("profile").get(0));
254 239
                 server.connect();

+ 7
- 2
src/com/dmdirc/ui/core/util/URLHandler.java Datei anzeigen

@@ -22,6 +22,7 @@
22 22
 
23 23
 package com.dmdirc.ui.core.util;
24 24
 
25
+import com.dmdirc.ServerManager;
25 26
 import com.dmdirc.config.ConfigManager;
26 27
 import com.dmdirc.config.IdentityManager;
27 28
 import com.dmdirc.interfaces.ui.UIController;
@@ -45,6 +46,8 @@ public class URLHandler {
45 46
     private static Date lastLaunch;
46 47
     /** The UI Controller that owns this handler. */
47 48
     private final UIController controller;
49
+    /** Server manager used to create servers. */
50
+    private final ServerManager serverManager;
48 51
     /** Config manager. */
49 52
     private final ConfigManager config;
50 53
     /** Desktop handler. */
@@ -54,9 +57,11 @@ public class URLHandler {
54 57
      * Instantiates a new URL Handler.
55 58
      *
56 59
      * @param controller The UI controller to show dialogs etc on
60
+     * @param serverManager Server manager used to create servers
57 61
      */
58
-    public URLHandler(final UIController controller) {
62
+    public URLHandler(final UIController controller, final ServerManager serverManager) {
59 63
         this.controller = controller;
64
+        this.serverManager = serverManager;
60 65
         this.config = IdentityManager.getIdentityManager().getGlobalConfiguration();
61 66
         this.desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
62 67
     }
@@ -155,7 +160,7 @@ public class URLHandler {
155 160
             StatusBarManager.getStatusBarManager().setMessage(
156 161
                     new StatusMessage("Connecting to: " + uri.toString(),
157 162
                     config));
158
-            controller.getMain().getServerManager().connectToAddress(uri);
163
+            serverManager.connectToAddress(uri);
159 164
         } else if ("BROWSER".equals(command)) {
160 165
             StatusBarManager.getStatusBarManager().setMessage(
161 166
                     new StatusMessage("Opening: " + uri.toString(),

+ 9
- 7
src/com/dmdirc/ui/input/InputHandler.java Datei anzeigen

@@ -35,8 +35,8 @@ import com.dmdirc.commandparser.parsers.CommandParser;
35 35
 import com.dmdirc.interfaces.ConfigChangeListener;
36 36
 import com.dmdirc.interfaces.ui.InputField;
37 37
 import com.dmdirc.interfaces.ui.InputValidationListener;
38
-import com.dmdirc.interfaces.ui.UIController;
39 38
 import com.dmdirc.parser.common.CompositionState;
39
+import com.dmdirc.plugins.PluginManager;
40 40
 import com.dmdirc.ui.input.tabstyles.TabCompletionResult;
41 41
 import com.dmdirc.ui.input.tabstyles.TabCompletionStyle;
42 42
 import com.dmdirc.ui.messages.Styliser;
@@ -110,8 +110,8 @@ public abstract class InputHandler implements ConfigChangeListener {
110 110
     private CompositionState state = CompositionState.IDLE;
111 111
     /** Timer used to manage timeouts of composition state. */
112 112
     private Timer compositionTimer;
113
-    /** UIController that owns this InputHandler. */
114
-    private final UIController controller;
113
+    /** Plugin managed used to retrieve tab completers. */
114
+    private final PluginManager pluginManager;
115 115
 
116 116
     /**
117 117
      * Creates a new instance of InputHandler. Adds listeners to the target
@@ -120,12 +120,14 @@ public abstract class InputHandler implements ConfigChangeListener {
120 120
      * @param thisTarget The text field this input handler is dealing with.
121 121
      * @param thisCommandParser The command parser to use for this text field.
122 122
      * @param thisParentWindow The window that owns this input handler
123
+     * @param pluginManager pluginManager used to retrieve tab completers
123 124
      */
124
-    public InputHandler(final UIController controller, final InputField thisTarget,
125
+    public InputHandler(final InputField thisTarget,
125 126
             final CommandParser thisCommandParser,
126
-            final WritableFrameContainer thisParentWindow) {
127
+            final WritableFrameContainer thisParentWindow,
128
+            final PluginManager pluginManager) {
127 129
 
128
-        this.controller = controller;
130
+        this.pluginManager = pluginManager;
129 131
         buffer = new RollingList<String>(thisParentWindow.getConfigManager()
130 132
                 .getOptionInt("ui", "inputbuffersize"), "");
131 133
 
@@ -191,7 +193,7 @@ public abstract class InputHandler implements ConfigChangeListener {
191 193
      * Sets this inputhandler's tab completion style.
192 194
      */
193 195
     private void setStyle() {
194
-        style = (TabCompletionStyle) controller.getMain().getPluginManager()
196
+        style = (TabCompletionStyle) pluginManager
195 197
                 .getServiceProvider("tabcompletion", parentWindow
196 198
                 .getConfigManager().getOption("tabcompletion", "style"))
197 199
                 .getExportedService("getCompletionStyle").execute(tabCompleter,

+ 4
- 3
test/com/dmdirc/ServerTest.java Datei anzeigen

@@ -22,16 +22,15 @@
22 22
 
23 23
 package com.dmdirc;
24 24
 
25
-import com.dmdirc.commandparser.CommandManager;
26 25
 import com.dmdirc.config.IdentityManager;
27 26
 
28
-import com.dmdirc.plugins.PluginManager;
29 27
 import java.net.URI;
30 28
 
31 29
 import org.junit.BeforeClass;
32 30
 import org.junit.Test;
33 31
 
34 32
 import static org.junit.Assert.*;
33
+import static org.mockito.Mockito.*;
35 34
 
36 35
 public class ServerTest {
37 36
 
@@ -40,7 +39,9 @@ public class ServerTest {
40 39
     @BeforeClass
41 40
     public static void setUp() throws Exception {
42 41
         TestMain.getTestMain();
43
-        server = new Server(TestMain.getTestMain().getServerManager(), new URI("irc-test://255.255.255.255"),
42
+        server = new Server(mock(ParserFactory.class),
43
+                mock(ServerManager.class),
44
+                new URI("irc-test://255.255.255.255"),
44 45
                 IdentityManager.getIdentityManager()
45 46
                 .getIdentitiesByType("profile").get(0));
46 47
     }

+ 1
- 1
test/com/dmdirc/TestMain.java Datei anzeigen

@@ -28,13 +28,13 @@ public class TestMain extends Main {
28 28
             // DON'T do anything to the user's configuration... (so no calls
29 29
             // to handleInvalidConfigFile(); here)
30 30
         }
31
-        serverManager = new ServerManager(this);
32 31
         ActionManager.initActionManager(this, serverManager, IdentityManager.getIdentityManager());
33 32
         CommandManager.initCommandManager(IdentityManager.getIdentityManager(), this);
34 33
         pluginManager = new PluginManager(CommandManager.getCommandManager(),
35 34
                 serverManager, ActionManager.getActionManager(),
36 35
                 IdentityManager.getIdentityManager(), this);
37 36
         pluginManager.refreshPlugins();
37
+        serverManager = new ServerManager(new ParserFactory(pluginManager));
38 38
         CommandManager.initCommandManager(IdentityManager.getIdentityManager(), this);
39 39
 
40 40
         ActionManager.getActionManager().initialise();

+ 8
- 8
test/com/dmdirc/ui/WindowManagerTest.java Datei anzeigen

@@ -60,7 +60,7 @@ public class WindowManagerTest {
60 60
     public void testAddRoot() {
61 61
         final WindowManager manager = new WindowManager();
62 62
         final FrameListener tfm = mock(FrameListener.class);
63
-        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
63
+        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
64 64
 
65 65
         manager.addListener(tfm);
66 66
 
@@ -77,8 +77,8 @@ public class WindowManagerTest {
77 77
     public void testAddChild() {
78 78
         final WindowManager manager = new WindowManager();
79 79
         final FrameListener tfm = mock(FrameListener.class);
80
-        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
81
-        final Window child = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
80
+        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
81
+        final Window child = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
82 82
         manager.addWindow(parent.getContainer());
83 83
         manager.addListener(tfm);
84 84
 
@@ -92,7 +92,7 @@ public class WindowManagerTest {
92 92
     public void testRemoveRoot() {
93 93
         final WindowManager manager = new WindowManager();
94 94
         final FrameListener tfm = mock(FrameListener.class);
95
-        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
95
+        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
96 96
         manager.addWindow(parent.getContainer());
97 97
         manager.addListener(tfm);
98 98
 
@@ -105,8 +105,8 @@ public class WindowManagerTest {
105 105
     public void testRemoveChild() {
106 106
         final WindowManager manager = new WindowManager();
107 107
         final FrameListener tfm = mock(FrameListener.class);
108
-        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
109
-        final Window child = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
108
+        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
109
+        final Window child = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
110 110
         manager.addWindow(parent.getContainer());
111 111
         manager.addWindow(parent.getContainer(), child.getContainer());
112 112
         manager.addListener(tfm);
@@ -123,8 +123,8 @@ public class WindowManagerTest {
123 123
     public void testRemoveFrameManager() {
124 124
         final WindowManager manager = new WindowManager();
125 125
         final FrameListener tfm = mock(FrameListener.class);
126
-        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
127
-        final Window child = new DummyInputWindow(new DummyController(TestMain.getTestMain()), new TestWritableFrameContainer(512, cm, commands));
126
+        final Window parent = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
127
+        final Window child = new DummyInputWindow(new DummyController(TestMain.getTestMain(), TestMain.getTestMain().getPluginManager()), new TestWritableFrameContainer(512, cm, commands));
128 128
         manager.addWindow(parent.getContainer());
129 129
 
130 130
         manager.addListener(tfm);

Laden…
Abbrechen
Speichern