Procházet zdrojové kódy

Pass TabCompleter into base class.

There's no sane reason for this to be an abstract method - instead
just create the tab completer and pass it up to WritableFrameContainer.

Change-Id: Ifa80de021c22d2e302d4b66514923cd08c91cac4
Depends-On: I15ab9677fdbcb510ab87a69a07ce8ecb3a994f7f
Reviewed-on: http://gerrit.dmdirc.com/3422
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
pull/1/head
Chris Smith před 10 roky
rodič
revize
e60ced8489

+ 12
- 17
src/com/dmdirc/Channel.java Zobrazit soubor

@@ -40,7 +40,6 @@ import com.dmdirc.parser.interfaces.ChannelInfo;
40 40
 import com.dmdirc.parser.interfaces.ClientInfo;
41 41
 import com.dmdirc.ui.Colour;
42 42
 import com.dmdirc.ui.core.components.WindowComponent;
43
-import com.dmdirc.ui.input.TabCompleter;
44 43
 import com.dmdirc.ui.input.TabCompleterFactory;
45 44
 import com.dmdirc.ui.input.TabCompletionType;
46 45
 import com.dmdirc.ui.messages.ColourManager;
@@ -78,8 +77,6 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
78 77
     private ChannelInfo channelInfo;
79 78
     /** The server this channel is on. */
80 79
     private final Server server;
81
-    /** The tabcompleter used for this channel. */
82
-    private final TabCompleter tabCompleter;
83 80
     /** A list of previous topics we've seen. */
84 81
     private final RollingList<Topic> topics;
85 82
     /** Our event handler. */
@@ -122,6 +119,9 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
122 119
                 Styliser.stipControlCodes(newChannelInfo.getName()),
123 120
                 configMigrator.getConfigProvider(),
124 121
                 new ChannelCommandParser(newServer, commandController),
122
+                tabCompleterFactory.getTabCompleter(newServer.getTabCompleter(),
123
+                        configMigrator.getConfigProvider(), CommandType.TYPE_CHANNEL,
124
+                        CommandType.TYPE_CHAT),
125 125
                 messageSinkManager,
126 126
                 urlBuilder,
127 127
                 Arrays.asList(WindowComponent.TEXTAREA.getIdentifier(),
@@ -146,9 +146,6 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
146 146
         showModePrefix = getConfigManager().getOptionBool("channel", "showmodeprefix");
147 147
         showColours = getConfigManager().getOptionBool("ui", "shownickcoloursintext");
148 148
 
149
-        tabCompleter = tabCompleterFactory.getTabCompleter(server.getTabCompleter(),
150
-                getConfigManager(), CommandType.TYPE_CHANNEL, CommandType.TYPE_CHAT);
151
-
152 149
         eventHandler = new ChannelEventHandler(this, eventBus);
153 150
 
154 151
         registerCallbacks();
@@ -166,11 +163,6 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
166 163
         return channelInfo;
167 164
     }
168 165
 
169
-    @Override
170
-    public TabCompleter getTabCompleter() {
171
-        return tabCompleter;
172
-    }
173
-
174 166
     @Override
175 167
     public boolean isOnChannel() {
176 168
         return isOnChannel;
@@ -359,7 +351,8 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
359 351
     public void addClient(final ChannelClientInfo client) {
360 352
         listenerList.getCallable(NicklistListener.class).clientAdded(client);
361 353
 
362
-        tabCompleter.addEntry(TabCompletionType.CHANNEL_NICK, client.getClient().getNickname());
354
+        getTabCompleter().addEntry(TabCompletionType.CHANNEL_NICK,
355
+                client.getClient().getNickname());
363 356
     }
364 357
 
365 358
     /**
@@ -370,7 +363,8 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
370 363
     public void removeClient(final ChannelClientInfo client) {
371 364
         listenerList.getCallable(NicklistListener.class).clientRemoved(client);
372 365
 
373
-        tabCompleter.removeEntry(TabCompletionType.CHANNEL_NICK, client.getClient().getNickname());
366
+        getTabCompleter().removeEntry(TabCompletionType.CHANNEL_NICK,
367
+                client.getClient().getNickname());
374 368
 
375 369
         if (client.getClient().equals(server.getParser().getLocalClient())) {
376 370
             resetWindow();
@@ -385,10 +379,11 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
385 379
     public void setClients(final Collection<ChannelClientInfo> clients) {
386 380
         listenerList.getCallable(NicklistListener.class).clientListUpdated(clients);
387 381
 
388
-        tabCompleter.clear(TabCompletionType.CHANNEL_NICK);
382
+        getTabCompleter().clear(TabCompletionType.CHANNEL_NICK);
389 383
 
390 384
         for (ChannelClientInfo client : clients) {
391
-            tabCompleter.addEntry(TabCompletionType.CHANNEL_NICK, client.getClient().getNickname());
385
+            getTabCompleter().addEntry(TabCompletionType.CHANNEL_NICK,
386
+                    client.getClient().getNickname());
392 387
         }
393 388
     }
394 389
 
@@ -399,8 +394,8 @@ public class Channel extends MessageTarget implements ConfigChangeListener, Grou
399 394
      * @param newName The new nickname of the client
400 395
      */
401 396
     public void renameClient(final String oldName, final String newName) {
402
-        tabCompleter.removeEntry(TabCompletionType.CHANNEL_NICK, oldName);
403
-        tabCompleter.addEntry(TabCompletionType.CHANNEL_NICK, newName);
397
+        getTabCompleter().removeEntry(TabCompletionType.CHANNEL_NICK, oldName);
398
+        getTabCompleter().addEntry(TabCompletionType.CHANNEL_NICK, newName);
404 399
         refreshClients();
405 400
     }
406 401
 

+ 1
- 2
src/com/dmdirc/FrameContainer.java Zobrazit soubor

@@ -436,8 +436,7 @@ public abstract class FrameContainer {
436 436
                     timestamp),
437 437
                     myLine,});
438 438
             } else {
439
-                lines.add(new String[]{
440
-                    myLine,});
439
+                lines.add(new String[]{myLine});
441 440
             }
442 441
 
443 442
             ActionManager.getActionManager().triggerEvent(

+ 4
- 11
src/com/dmdirc/GlobalWindow.java Zobrazit soubor

@@ -33,7 +33,6 @@ import com.dmdirc.interfaces.config.ConfigChangeListener;
33 33
 import com.dmdirc.messages.MessageSinkManager;
34 34
 import com.dmdirc.ui.WindowManager;
35 35
 import com.dmdirc.ui.core.components.WindowComponent;
36
-import com.dmdirc.ui.input.TabCompleter;
37 36
 import com.dmdirc.ui.input.TabCompleterFactory;
38 37
 import com.dmdirc.util.URLBuilder;
39 38
 
@@ -48,9 +47,6 @@ import javax.inject.Singleton;
48 47
  */
49 48
 public class GlobalWindow extends WritableFrameContainer {
50 49
 
51
-    /** The tab completer we use. */
52
-    private final TabCompleter tabCompleter;
53
-
54 50
     /**
55 51
      * Creates a new instance of GlobalWindow.
56 52
      *
@@ -66,16 +62,13 @@ public class GlobalWindow extends WritableFrameContainer {
66 62
             final TabCompleterFactory tabCompleterFactory,
67 63
             final MessageSinkManager messageSinkManager,
68 64
             final URLBuilder urlBuilder) {
69
-        super("icon", "Global", "(Global)", config, parser, messageSinkManager, urlBuilder,
65
+        super("icon", "Global", "(Global)", config, parser,
66
+                tabCompleterFactory.getTabCompleter(config, CommandType.TYPE_GLOBAL),
67
+                messageSinkManager,
68
+                urlBuilder,
70 69
                 Arrays.asList(
71 70
                         WindowComponent.TEXTAREA.getIdentifier(),
72 71
                         WindowComponent.INPUTFIELD.getIdentifier()));
73
-
74
-        tabCompleter = tabCompleterFactory.getTabCompleter(config, CommandType.TYPE_GLOBAL);
75
-    }
76
-
77
-    public TabCompleter getTabCompleter() {
78
-        return tabCompleter;
79 72
     }
80 73
 
81 74
     @Override

+ 5
- 1
src/com/dmdirc/MessageTarget.java Zobrazit soubor

@@ -25,6 +25,7 @@ package com.dmdirc;
25 25
 import com.dmdirc.commandparser.parsers.CommandParser;
26 26
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
27 27
 import com.dmdirc.messages.MessageSinkManager;
28
+import com.dmdirc.ui.input.TabCompleter;
28 29
 import com.dmdirc.util.URLBuilder;
29 30
 
30 31
 import java.util.Collection;
@@ -42,6 +43,7 @@ public abstract class MessageTarget extends WritableFrameContainer {
42 43
      * @param title              The title of this target
43 44
      * @param config             The config manager to use for this target
44 45
      * @param parser             The command parser for this container
46
+     * @param tabCompleter       The tab completer to use
45 47
      * @param messageSinkManager The sink manager to use to despatch messages.
46 48
      * @param urlBuilder         The URL builder to use when finding icons.
47 49
      * @param components         The UI components that this frame requires
@@ -54,10 +56,12 @@ public abstract class MessageTarget extends WritableFrameContainer {
54 56
             final String title,
55 57
             final AggregateConfigProvider config,
56 58
             final CommandParser parser,
59
+            final TabCompleter tabCompleter,
57 60
             final MessageSinkManager messageSinkManager,
58 61
             final URLBuilder urlBuilder,
59 62
             final Collection<String> components) {
60
-        super(icon, name, title, config, parser, messageSinkManager, urlBuilder, components);
63
+        super(icon, name, title, config, parser, tabCompleter, messageSinkManager, urlBuilder,
64
+                components);
61 65
     }
62 66
 
63 67
     /**

+ 5
- 12
src/com/dmdirc/Query.java Zobrazit soubor

@@ -43,7 +43,6 @@ import com.dmdirc.parser.interfaces.callbacks.PrivateActionListener;
43 43
 import com.dmdirc.parser.interfaces.callbacks.PrivateMessageListener;
44 44
 import com.dmdirc.parser.interfaces.callbacks.QuitListener;
45 45
 import com.dmdirc.ui.core.components.WindowComponent;
46
-import com.dmdirc.ui.input.TabCompleter;
47 46
 import com.dmdirc.ui.input.TabCompleterFactory;
48 47
 import com.dmdirc.util.URLBuilder;
49 48
 import com.dmdirc.util.annotations.factory.Factory;
@@ -71,8 +70,6 @@ public class Query extends MessageTarget implements PrivateActionListener,
71 70
     private String host;
72 71
     /** The nickname of the client associated with this query. */
73 72
     private String nickname;
74
-    /** The tab completer for the query window. */
75
-    private final TabCompleter tabCompleter;
76 73
 
77 74
     /**
78 75
      * Creates a new instance of Query.
@@ -93,7 +90,11 @@ public class Query extends MessageTarget implements PrivateActionListener,
93 90
             final URLBuilder urlBuilder) {
94 91
         super("query", newServer.parseHostmask(newHost)[0],
95 92
                 newServer.parseHostmask(newHost)[0],
96
-                newServer.getConfigManager(), new QueryCommandParser(newServer, commandController),
93
+                newServer.getConfigManager(),
94
+                new QueryCommandParser(newServer, commandController),
95
+                tabCompleterFactory.getTabCompleter(newServer.getTabCompleter(),
96
+                        newServer.getConfigManager(),
97
+                        CommandType.TYPE_QUERY, CommandType.TYPE_CHAT),
97 98
                 messageSinkManager,
98 99
                 urlBuilder,
99 100
                 Arrays.asList(
@@ -104,9 +105,6 @@ public class Query extends MessageTarget implements PrivateActionListener,
104 105
         this.host = newHost;
105 106
         this.nickname = server.parseHostmask(host)[0];
106 107
 
107
-        tabCompleter = tabCompleterFactory.getTabCompleter(server.getTabCompleter(),
108
-                getConfigManager(), CommandType.TYPE_QUERY, CommandType.TYPE_CHAT);
109
-
110 108
         if (!server.getState().isDisconnected()) {
111 109
             reregister();
112 110
         }
@@ -114,11 +112,6 @@ public class Query extends MessageTarget implements PrivateActionListener,
114 112
         updateTitle();
115 113
     }
116 114
 
117
-    @Override
118
-    public TabCompleter getTabCompleter() {
119
-        return tabCompleter;
120
-    }
121
-
122 115
     @Override
123 116
     public void sendLine(final String line) {
124 117
         sendLine(line, getNickname());

+ 1
- 6
src/com/dmdirc/Raw.java Zobrazit soubor

@@ -33,7 +33,6 @@ import com.dmdirc.parser.interfaces.Parser;
33 33
 import com.dmdirc.parser.interfaces.callbacks.DataInListener;
34 34
 import com.dmdirc.parser.interfaces.callbacks.DataOutListener;
35 35
 import com.dmdirc.ui.core.components.WindowComponent;
36
-import com.dmdirc.ui.input.TabCompleter;
37 36
 import com.dmdirc.util.URLBuilder;
38 37
 import com.dmdirc.util.annotations.factory.Factory;
39 38
 import com.dmdirc.util.annotations.factory.Unbound;
@@ -67,6 +66,7 @@ public class Raw extends WritableFrameContainer
67 66
             final URLBuilder urlBuilder) {
68 67
         super("raw", "Raw", "(Raw log)", newServer.getConfigManager(),
69 68
                 new ServerCommandParser(newServer.getConfigManager(), commandController),
69
+                newServer.getTabCompleter(),
70 70
                 messageSinkManager,
71 71
                 urlBuilder,
72 72
                 Arrays.asList(
@@ -129,9 +129,4 @@ public class Raw extends WritableFrameContainer
129 129
         return server.getMaxLineLength();
130 130
     }
131 131
 
132
-    @Override
133
-    public TabCompleter getTabCompleter() {
134
-        return server.getTabCompleter();
135
-    }
136
-
137 132
 }

+ 8
- 17
src/com/dmdirc/Server.java Zobrazit soubor

@@ -57,7 +57,6 @@ import com.dmdirc.ui.StatusMessage;
57 57
 import com.dmdirc.ui.WindowManager;
58 58
 import com.dmdirc.ui.core.components.StatusBarManager;
59 59
 import com.dmdirc.ui.core.components.WindowComponent;
60
-import com.dmdirc.ui.input.TabCompleter;
61 60
 import com.dmdirc.ui.input.TabCompleterFactory;
62 61
 import com.dmdirc.ui.input.TabCompletionType;
63 62
 import com.dmdirc.ui.messages.Formatter;
@@ -139,8 +138,6 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
139 138
     private final Object myStateLock = new Object();
140 139
     /** The current state of this server. */
141 140
     private final ServerStatus myState = new ServerStatus(this, myStateLock);
142
-    /** The tabcompleter used for this server. */
143
-    private final TabCompleter tabCompleter;
144 141
     /** Our reason for being away, if any. */
145 142
     private String awayMessage;
146 143
     /** Our event handler. */
@@ -232,6 +229,8 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
232 229
                 getHost(uri),
233 230
                 configMigrator.getConfigProvider(),
234 231
                 commandParser,
232
+                tabCompleterFactory.getTabCompleter(configMigrator.getConfigProvider(),
233
+                        CommandType.TYPE_SERVER, CommandType.TYPE_GLOBAL),
235 234
                 messageSinkManager,
236 235
                 urlBuilder,
237 236
                 Arrays.asList(
@@ -254,9 +253,6 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
254 253
 
255 254
         setConnectionDetails(uri, profile);
256 255
 
257
-        tabCompleter = tabCompleterFactory.getTabCompleter(getConfigManager(),
258
-                CommandType.TYPE_SERVER, CommandType.TYPE_GLOBAL);
259
-
260 256
         updateIcon();
261 257
 
262 258
         getConfigManager().addChangeListener("formatter", "serverName", this);
@@ -537,7 +533,7 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
537 533
             ActionManager.getActionManager().triggerEvent(
538 534
                     CoreActionType.QUERY_OPENED, null, newQuery);
539 535
 
540
-            tabCompleter.addEntry(TabCompletionType.QUERY_NICK, nick);
536
+            getTabCompleter().addEntry(TabCompletionType.QUERY_NICK, nick);
541 537
             queries.put(lnick, newQuery);
542 538
         }
543 539
 
@@ -546,8 +542,8 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
546 542
 
547 543
     @Override
548 544
     public void updateQuery(final Query query, final String oldNick, final String newNick) {
549
-        tabCompleter.removeEntry(TabCompletionType.QUERY_NICK, oldNick);
550
-        tabCompleter.addEntry(TabCompletionType.QUERY_NICK, newNick);
545
+        getTabCompleter().removeEntry(TabCompletionType.QUERY_NICK, oldNick);
546
+        getTabCompleter().addEntry(TabCompletionType.QUERY_NICK, newNick);
551 547
 
552 548
         queries.put(converter.toLowerCase(newNick), query);
553 549
         queries.remove(converter.toLowerCase(oldNick));
@@ -560,7 +556,7 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
560 556
 
561 557
     @Override
562 558
     public void delQuery(final Query query) {
563
-        tabCompleter.removeEntry(TabCompletionType.QUERY_NICK, query.getNickname());
559
+        getTabCompleter().removeEntry(TabCompletionType.QUERY_NICK, query.getNickname());
564 560
         queries.remove(converter.toLowerCase(query.getNickname()));
565 561
     }
566 562
 
@@ -588,7 +584,7 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
588 584
 
589 585
     @Override
590 586
     public void delChannel(final String chan) {
591
-        tabCompleter.removeEntry(TabCompletionType.CHANNEL, chan);
587
+        getTabCompleter().removeEntry(TabCompletionType.CHANNEL, chan);
592 588
         channels.remove(converter.toLowerCase(chan));
593 589
     }
594 590
 
@@ -621,7 +617,7 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
621 617
             windowManager.addWindow(this, newChan, focus);
622 618
             eventBus.post(new ChannelOpenedEvent(newChan));
623 619
 
624
-            tabCompleter.addEntry(TabCompletionType.CHANNEL, chan.getName());
620
+            getTabCompleter().addEntry(TabCompletionType.CHANNEL, chan.getName());
625 621
             channels.put(converter.toLowerCase(chan.getName()), newChan);
626 622
         }
627 623
 
@@ -1009,11 +1005,6 @@ public class Server extends WritableFrameContainer implements ConfigChangeListen
1009 1005
         return awayMessage;
1010 1006
     }
1011 1007
 
1012
-    @Override
1013
-    public TabCompleter getTabCompleter() {
1014
-        return tabCompleter;
1015
-    }
1016
-
1017 1008
     @Override
1018 1009
     public ServerState getState() {
1019 1010
         return myState.getState();

+ 8
- 1
src/com/dmdirc/WritableFrameContainer.java Zobrazit soubor

@@ -48,6 +48,8 @@ public abstract class WritableFrameContainer extends FrameContainer {
48 48
     protected final CommandParser commandParser;
49 49
     /** The manager to use to despatch messages to sinks. */
50 50
     private final MessageSinkManager messageSinkManager;
51
+    /** The tab completer to use. */
52
+    private final TabCompleter tabCompleter;
51 53
 
52 54
     /**
53 55
      * Creates a new WritableFrameContainer.
@@ -57,6 +59,7 @@ public abstract class WritableFrameContainer extends FrameContainer {
57 59
      * @param title              The title of this container
58 60
      * @param config             The config manager for this container
59 61
      * @param parser             The command parser for this container
62
+     * @param tabCompleter       The tab completer to use.
60 63
      * @param messageSinkManager The sink manager to use to despatch messages
61 64
      * @param urlBuilder         The URL builder to use when finding icons.
62 65
      * @param components         The UI components that this frame requires
@@ -69,12 +72,14 @@ public abstract class WritableFrameContainer extends FrameContainer {
69 72
             final String title,
70 73
             final AggregateConfigProvider config,
71 74
             final CommandParser parser,
75
+            final TabCompleter tabCompleter,
72 76
             final MessageSinkManager messageSinkManager,
73 77
             final URLBuilder urlBuilder,
74 78
             final Collection<String> components) {
75 79
         super(icon, name, title, config, urlBuilder, components);
76 80
 
77 81
         this.commandParser = parser;
82
+        this.tabCompleter = tabCompleter;
78 83
         this.messageSinkManager = messageSinkManager;
79 84
         parser.setOwner(this);
80 85
     }
@@ -100,7 +105,9 @@ public abstract class WritableFrameContainer extends FrameContainer {
100 105
      *
101 106
      * @return This container's tab completer
102 107
      */
103
-    public abstract TabCompleter getTabCompleter();
108
+    public TabCompleter getTabCompleter() {
109
+        return tabCompleter;
110
+    }
104 111
 
105 112
     /**
106 113
      * Returns the maximum length that a line passed to sendLine() should be, in order to prevent it

+ 4
- 6
test/com/dmdirc/harness/TestWritableFrameContainer.java Zobrazit soubor

@@ -34,7 +34,7 @@ import com.dmdirc.util.URLBuilder;
34 34
 
35 35
 import java.util.Collections;
36 36
 
37
-import static org.mockito.Mockito.*;
37
+import static org.mockito.Mockito.mock;
38 38
 
39 39
 public class TestWritableFrameContainer extends WritableFrameContainer {
40 40
 
@@ -44,7 +44,9 @@ public class TestWritableFrameContainer extends WritableFrameContainer {
44 44
             final AggregateConfigProvider cm, final CommandManager commandManager,
45 45
             final MessageSinkManager messageSinkManager, final URLBuilder urlBuilder) {
46 46
         super("raw", "Raw", "(Raw)", cm,
47
-                new GlobalCommandParser(cm, commandManager), messageSinkManager, urlBuilder,
47
+                new GlobalCommandParser(cm, commandManager),
48
+                new TabCompleter(mock(CommandController.class), cm),
49
+                messageSinkManager, urlBuilder,
48 50
                 Collections.<String>emptySet());
49 51
 
50 52
         this.lineLength = lineLength;
@@ -65,8 +67,4 @@ public class TestWritableFrameContainer extends WritableFrameContainer {
65 67
         return null;
66 68
     }
67 69
 
68
-    @Override
69
-    public TabCompleter getTabCompleter() {
70
-        return new TabCompleter(mock(CommandController.class), getConfigManager());
71
-    }
72 70
 }

Načítá se…
Zrušit
Uložit