Browse Source

Add ColourManagerFactory

Change-Id: I6ef45d10a4fe862854702eee671114ee09f01d4d
Depends-On: If1bc20d15561584c9296ad10f04957efb51c5966
Reviewed-on: http://gerrit.dmdirc.com/3865
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
pull/1/head
Greg Holmes 9 years ago
parent
commit
a4089d5a66

+ 4
- 1
src/com/dmdirc/Channel.java View File

@@ -41,6 +41,7 @@ import com.dmdirc.parser.interfaces.ClientInfo;
41 41
 import com.dmdirc.ui.core.components.WindowComponent;
42 42
 import com.dmdirc.ui.input.TabCompleterFactory;
43 43
 import com.dmdirc.ui.input.TabCompletionType;
44
+import com.dmdirc.ui.messages.ColourManagerFactory;
44 45
 import com.dmdirc.ui.messages.Styliser;
45 46
 import com.dmdirc.util.EventUtils;
46 47
 import com.dmdirc.util.URLBuilder;
@@ -111,10 +112,12 @@ public class Channel extends MessageTarget implements GroupChat {
111 112
             final CommandController commandController,
112 113
             final MessageSinkManager messageSinkManager,
113 114
             final URLBuilder urlBuilder,
114
-            final DMDircMBassador eventBus) {
115
+            final DMDircMBassador eventBus,
116
+            final ColourManagerFactory colourManagerFactory) {
115 117
         super(newServer, "channel-inactive", newChannelInfo.getName(),
116 118
                 Styliser.stipControlCodes(newChannelInfo.getName()),
117 119
                 configMigrator.getConfigProvider(),
120
+                colourManagerFactory,
118 121
                 new ChannelCommandParser(newServer, commandController, eventBus),
119 122
                 tabCompleterFactory.getTabCompleter(newServer.getTabCompleter(),
120 123
                         configMigrator.getConfigProvider(), CommandType.TYPE_CHANNEL,

+ 6
- 2
src/com/dmdirc/ChannelFactory.java View File

@@ -27,6 +27,7 @@ import com.dmdirc.interfaces.config.ConfigProviderMigrator;
27 27
 import com.dmdirc.messages.MessageSinkManager;
28 28
 import com.dmdirc.parser.interfaces.ChannelInfo;
29 29
 import com.dmdirc.ui.input.TabCompleterFactory;
30
+import com.dmdirc.ui.messages.ColourManagerFactory;
30 31
 import com.dmdirc.util.URLBuilder;
31 32
 
32 33
 import javax.inject.Inject;
@@ -43,22 +44,25 @@ public class ChannelFactory {
43 44
     private final MessageSinkManager messageSinkManager;
44 45
     private final URLBuilder urlBuilder;
45 46
     private final DMDircMBassador eventBus;
47
+    private final ColourManagerFactory colourManagerFactory;
46 48
 
47 49
     @Inject
48 50
     public ChannelFactory(final TabCompleterFactory tabCompleterFactory,
49 51
             final CommandController commandController, final MessageSinkManager messageSinkManager,
50
-            final URLBuilder urlBuilder, final DMDircMBassador eventBus) {
52
+            final URLBuilder urlBuilder, final DMDircMBassador eventBus,
53
+            final ColourManagerFactory colourManagerFactory) {
51 54
         this.tabCompleterFactory = tabCompleterFactory;
52 55
         this.commandController = commandController;
53 56
         this.messageSinkManager = messageSinkManager;
54 57
         this.urlBuilder = urlBuilder;
55 58
         this.eventBus = eventBus;
59
+        this.colourManagerFactory = colourManagerFactory;
56 60
     }
57 61
 
58 62
     public Channel getChannel(final Server server,
59 63
             final ChannelInfo channelInfo,
60 64
             final ConfigProviderMigrator configMigrator) {
61 65
         return new Channel(server, channelInfo, configMigrator, tabCompleterFactory,
62
-                commandController, messageSinkManager, urlBuilder, eventBus);
66
+                commandController, messageSinkManager, urlBuilder, eventBus, colourManagerFactory);
63 67
     }
64 68
 }

+ 9
- 6
src/com/dmdirc/CustomWindow.java View File

@@ -25,6 +25,7 @@ package com.dmdirc;
25 25
 import com.dmdirc.interfaces.Connection;
26 26
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
27 27
 import com.dmdirc.ui.core.components.WindowComponent;
28
+import com.dmdirc.ui.messages.ColourManagerFactory;
28 29
 import com.dmdirc.util.URLBuilder;
29 30
 
30 31
 import com.google.common.base.Optional;
@@ -48,9 +49,10 @@ public class CustomWindow extends FrameContainer {
48 49
             final String name,
49 50
             final String title,
50 51
             final FrameContainer parent,
51
-            final URLBuilder urlBuilder) {
52
-        super(parent, "custom", name, title, parent.getConfigManager(), urlBuilder,
53
-                parent.getEventBus(),
52
+            final URLBuilder urlBuilder,
53
+            final ColourManagerFactory colourManagerFactory) {
54
+        super(parent, "custom", name, title, parent.getConfigManager(), colourManagerFactory,
55
+                urlBuilder, parent.getEventBus(),
54 56
                 Arrays.asList(WindowComponent.TEXTAREA.getIdentifier()));
55 57
     }
56 58
 
@@ -68,9 +70,10 @@ public class CustomWindow extends FrameContainer {
68 70
             final String title,
69 71
             final AggregateConfigProvider configProvider,
70 72
             final URLBuilder urlBuilder,
71
-            final DMDircMBassador eventBus) {
72
-        super(null, "custom", name, title, configProvider, urlBuilder, eventBus,
73
-                Arrays.asList(WindowComponent.TEXTAREA.getIdentifier()));
73
+            final DMDircMBassador eventBus,
74
+            final ColourManagerFactory colourManagerFactory) {
75
+        super(null, "custom", name, title, configProvider, colourManagerFactory, urlBuilder,
76
+                eventBus, Arrays.asList(WindowComponent.TEXTAREA.getIdentifier()));
74 77
     }
75 78
 
76 79
     @Override

+ 10
- 1
src/com/dmdirc/FrameContainer.java View File

@@ -37,6 +37,7 @@ import com.dmdirc.interfaces.config.AggregateConfigProvider;
37 37
 import com.dmdirc.interfaces.config.ConfigChangeListener;
38 38
 import com.dmdirc.messages.MessageSinkManager;
39 39
 import com.dmdirc.parser.common.CompositionState;
40
+import com.dmdirc.ui.messages.ColourManagerFactory;
40 41
 import com.dmdirc.util.colours.Colour;
41 42
 import com.dmdirc.ui.IconManager;
42 43
 import com.dmdirc.ui.input.TabCompleter;
@@ -105,6 +106,9 @@ public abstract class FrameContainer {
105 106
     private final IconManager iconManager;
106 107
     /** Whether or not this container is writable. */
107 108
     private final boolean writable;
109
+    /** The colour manager factory. */
110
+    private final ColourManagerFactory colourManagerFactory;
111
+
108 112
     /**
109 113
      * The command parser used for commands in this container.
110 114
      * <p>
@@ -144,6 +148,7 @@ public abstract class FrameContainer {
144 148
             final String name,
145 149
             final String title,
146 150
             final AggregateConfigProvider config,
151
+            final ColourManagerFactory colourManagerFactory,
147 152
             final URLBuilder urlBuilder,
148 153
             final DMDircMBassador eventBus,
149 154
             final Collection<String> components) {
@@ -157,6 +162,7 @@ public abstract class FrameContainer {
157 162
         this.commandParser = Optional.absent();
158 163
         this.tabCompleter = Optional.absent();
159 164
         this.messageSinkManager = Optional.absent();
165
+        this.colourManagerFactory = colourManagerFactory;
160 166
 
161 167
         this.eventBusManager = new ChildEventBusManager(eventBus);
162 168
         this.eventBusManager.connect();
@@ -188,6 +194,7 @@ public abstract class FrameContainer {
188 194
             final String name,
189 195
             final String title,
190 196
             final AggregateConfigProvider config,
197
+            final ColourManagerFactory colourManagerFactory,
191 198
             final URLBuilder urlBuilder,
192 199
             final CommandParser commandParser,
193 200
             final TabCompleter tabCompleter,
@@ -204,6 +211,7 @@ public abstract class FrameContainer {
204 211
         this.commandParser = Optional.of(commandParser);
205 212
         this.tabCompleter = Optional.of(tabCompleter);
206 213
         this.messageSinkManager = Optional.of(messageSinkManager);
214
+        this.colourManagerFactory = colourManagerFactory;
207 215
         commandParser.setOwner(this);
208 216
 
209 217
         this.eventBusManager = new ChildEventBusManager(eventBus);
@@ -404,7 +412,8 @@ public abstract class FrameContainer {
404 412
     public Styliser getStyliser() {
405 413
         synchronized (styliserSync) {
406 414
             if (styliser == null) {
407
-                styliser = new Styliser(getConnection(), getConfigManager());
415
+                styliser = new Styliser(getConnection(), getConfigManager(),
416
+                        colourManagerFactory.getColourManager(getConfigManager()));
408 417
             }
409 418
             return styliser;
410 419
         }

+ 3
- 2
src/com/dmdirc/GlobalWindow.java View File

@@ -32,6 +32,7 @@ import com.dmdirc.messages.MessageSinkManager;
32 32
 import com.dmdirc.ui.WindowManager;
33 33
 import com.dmdirc.ui.core.components.WindowComponent;
34 34
 import com.dmdirc.ui.input.TabCompleterFactory;
35
+import com.dmdirc.ui.messages.ColourManagerFactory;
35 36
 import com.dmdirc.util.URLBuilder;
36 37
 
37 38
 import java.util.Arrays;
@@ -60,8 +61,8 @@ public class GlobalWindow extends FrameContainer {
60 61
     public GlobalWindow(@GlobalConfig final AggregateConfigProvider config,
61 62
             final GlobalCommandParser parser, final TabCompleterFactory tabCompleterFactory,
62 63
             final MessageSinkManager messageSinkManager, final URLBuilder urlBuilder,
63
-            final DMDircMBassador eventBus) {
64
-        super(null, "icon", "Global", "(Global)", config, urlBuilder, parser,
64
+            final DMDircMBassador eventBus, final ColourManagerFactory colourManagerFactory) {
65
+        super(null, "icon", "Global", "(Global)", config, colourManagerFactory, urlBuilder, parser,
65 66
                 tabCompleterFactory.getTabCompleter(config, CommandType.TYPE_GLOBAL),
66 67
                 messageSinkManager, eventBus,
67 68
                 Arrays.asList(WindowComponent.TEXTAREA.getIdentifier(),

+ 4
- 2
src/com/dmdirc/MessageTarget.java View File

@@ -26,6 +26,7 @@ import com.dmdirc.commandparser.parsers.CommandParser;
26 26
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
27 27
 import com.dmdirc.messages.MessageSinkManager;
28 28
 import com.dmdirc.ui.input.TabCompleter;
29
+import com.dmdirc.ui.messages.ColourManagerFactory;
29 30
 import com.dmdirc.util.URLBuilder;
30 31
 
31 32
 import java.util.Collection;
@@ -60,14 +61,15 @@ public abstract class MessageTarget extends FrameContainer {
60 61
             final String name,
61 62
             final String title,
62 63
             final AggregateConfigProvider config,
64
+            final ColourManagerFactory colourManagerFactory,
63 65
             final CommandParser parser,
64 66
             final TabCompleter tabCompleter,
65 67
             final MessageSinkManager messageSinkManager,
66 68
             final URLBuilder urlBuilder,
67 69
             final DMDircMBassador eventBus,
68 70
             final Collection<String> components) {
69
-        super(parent, icon, name, title, config, urlBuilder, parser, tabCompleter,
70
-                messageSinkManager, eventBus, components);
71
+        super(parent, icon, name, title, config,colourManagerFactory, urlBuilder, parser,
72
+                tabCompleter, messageSinkManager, eventBus, components);
71 73
     }
72 74
 
73 75
     /**

+ 4
- 1
src/com/dmdirc/Query.java View File

@@ -49,6 +49,7 @@ import com.dmdirc.parser.interfaces.callbacks.PrivateMessageListener;
49 49
 import com.dmdirc.parser.interfaces.callbacks.QuitListener;
50 50
 import com.dmdirc.ui.core.components.WindowComponent;
51 51
 import com.dmdirc.ui.input.TabCompleterFactory;
52
+import com.dmdirc.ui.messages.ColourManagerFactory;
52 53
 import com.dmdirc.util.EventUtils;
53 54
 import com.dmdirc.util.URLBuilder;
54 55
 
@@ -91,10 +92,12 @@ public class Query extends MessageTarget implements PrivateActionListener,
91 92
             final TabCompleterFactory tabCompleterFactory,
92 93
             final CommandController commandController,
93 94
             final MessageSinkManager messageSinkManager,
94
-            final URLBuilder urlBuilder) {
95
+            final URLBuilder urlBuilder,
96
+            final ColourManagerFactory colourManagerFactory) {
95 97
         super(newServer, "query", newServer.parseHostmask(newHost)[0],
96 98
                 newServer.parseHostmask(newHost)[0],
97 99
                 newServer.getConfigManager(),
100
+                colourManagerFactory,
98 101
                 new QueryCommandParser(newServer, commandController, newServer.getEventBus()),
99 102
                 tabCompleterFactory.getTabCompleter(newServer.getTabCompleter(),
100 103
                         newServer.getConfigManager(),

+ 5
- 2
src/com/dmdirc/QueryFactory.java View File

@@ -25,6 +25,7 @@ package com.dmdirc;
25 25
 import com.dmdirc.interfaces.CommandController;
26 26
 import com.dmdirc.messages.MessageSinkManager;
27 27
 import com.dmdirc.ui.input.TabCompleterFactory;
28
+import com.dmdirc.ui.messages.ColourManagerFactory;
28 29
 import com.dmdirc.util.URLBuilder;
29 30
 
30 31
 import javax.inject.Inject;
@@ -40,20 +41,22 @@ public class QueryFactory {
40 41
     private final CommandController commandController;
41 42
     private final MessageSinkManager messageSinkManager;
42 43
     private final URLBuilder urlBuilder;
44
+    private final ColourManagerFactory colourManagerFactory;
43 45
 
44 46
     @Inject
45 47
     public QueryFactory(final TabCompleterFactory tabCompleterFactory,
46 48
             final CommandController commandController, final MessageSinkManager messageSinkManager,
47
-            final URLBuilder urlBuilder) {
49
+            final URLBuilder urlBuilder, final ColourManagerFactory colourManagerFactory) {
48 50
         this.tabCompleterFactory = tabCompleterFactory;
49 51
         this.commandController = commandController;
50 52
         this.messageSinkManager = messageSinkManager;
51 53
         this.urlBuilder = urlBuilder;
54
+        this.colourManagerFactory = colourManagerFactory;
52 55
     }
53 56
 
54 57
     public Query getQuery(final Server server, final String host) {
55 58
         return new Query(server, host, tabCompleterFactory, commandController,
56
-                messageSinkManager, urlBuilder);
59
+                messageSinkManager, urlBuilder, colourManagerFactory);
57 60
     }
58 61
 
59 62
 }

+ 5
- 2
src/com/dmdirc/Raw.java View File

@@ -33,6 +33,7 @@ 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.messages.ColourManagerFactory;
36 37
 import com.dmdirc.util.URLBuilder;
37 38
 
38 39
 import java.util.Arrays;
@@ -61,8 +62,10 @@ public class Raw extends FrameContainer implements DataInListener, DataOutListen
61 62
             final Server newServer,
62 63
             final CommandController commandController,
63 64
             final MessageSinkManager messageSinkManager,
64
-            final URLBuilder urlBuilder) {
65
-        super(newServer, "raw", "Raw", "(Raw log)", newServer.getConfigManager(), urlBuilder,
65
+            final URLBuilder urlBuilder,
66
+            final ColourManagerFactory colourManagerFactory) {
67
+        super(newServer, "raw", "Raw", "(Raw log)", newServer.getConfigManager(),
68
+                colourManagerFactory, urlBuilder,
66 69
                 new ServerCommandParser(newServer.getConfigManager(), commandController, newServer.
67 70
                         getEventBus()),
68 71
                 newServer.getTabCompleter(),

+ 7
- 2
src/com/dmdirc/RawFactory.java View File

@@ -24,6 +24,7 @@ package com.dmdirc;
24 24
 
25 25
 import com.dmdirc.interfaces.CommandController;
26 26
 import com.dmdirc.messages.MessageSinkManager;
27
+import com.dmdirc.ui.messages.ColourManagerFactory;
27 28
 import com.dmdirc.util.URLBuilder;
28 29
 
29 30
 import javax.inject.Inject;
@@ -38,18 +39,22 @@ public class RawFactory {
38 39
     private final CommandController commandController;
39 40
     private final MessageSinkManager messageSinkManager;
40 41
     private final URLBuilder urlBuilder;
42
+    private final ColourManagerFactory colourManagerFactory;
41 43
 
42 44
     @Inject
43 45
     public RawFactory(final CommandController commandController,
44 46
             final MessageSinkManager messageSinkManager,
45
-            final URLBuilder urlBuilder) {
47
+            final URLBuilder urlBuilder,
48
+            final ColourManagerFactory colourManagerFactory) {
46 49
         this.commandController = commandController;
47 50
         this.messageSinkManager = messageSinkManager;
48 51
         this.urlBuilder = urlBuilder;
52
+        this.colourManagerFactory = colourManagerFactory;
49 53
     }
50 54
 
51 55
     public Raw getRaw(final Server server) {
52
-        return new Raw(server, commandController, messageSinkManager, urlBuilder);
56
+        return new Raw(server, commandController, messageSinkManager, urlBuilder,
57
+                colourManagerFactory);
53 58
     }
54 59
 
55 60
 }

+ 4
- 1
src/com/dmdirc/Server.java View File

@@ -63,6 +63,7 @@ import com.dmdirc.ui.core.components.StatusBarManager;
63 63
 import com.dmdirc.ui.core.components.WindowComponent;
64 64
 import com.dmdirc.ui.input.TabCompleterFactory;
65 65
 import com.dmdirc.ui.input.TabCompletionType;
66
+import com.dmdirc.ui.messages.ColourManagerFactory;
66 67
 import com.dmdirc.ui.messages.Formatter;
67 68
 import com.dmdirc.util.EventUtils;
68 69
 import com.dmdirc.util.URLBuilder;
@@ -231,11 +232,13 @@ public class Server extends FrameContainer implements ConfigChangeListener,
231 232
             final ConfigProvider userSettings,
232 233
             final ScheduledExecutorService executorService,
233 234
             final URI uri,
234
-            final ConfigProvider profile) {
235
+            final ConfigProvider profile,
236
+            final ColourManagerFactory colourManagerFactory) {
235 237
         super(null, "server-disconnected",
236 238
                 getHost(uri),
237 239
                 getHost(uri),
238 240
                 configMigrator.getConfigProvider(),
241
+                colourManagerFactory,
239 242
                 urlBuilder,
240 243
                 commandParser,
241 244
                 tabCompleterFactory.getTabCompleter(configMigrator.getConfigProvider(),

+ 6
- 2
src/com/dmdirc/ServerFactoryImpl.java View File

@@ -30,6 +30,7 @@ import com.dmdirc.messages.MessageSinkManager;
30 30
 import com.dmdirc.ui.WindowManager;
31 31
 import com.dmdirc.ui.core.components.StatusBarManager;
32 32
 import com.dmdirc.ui.input.TabCompleterFactory;
33
+import com.dmdirc.ui.messages.ColourManagerFactory;
33 34
 import com.dmdirc.util.URLBuilder;
34 35
 
35 36
 import java.net.URI;
@@ -59,6 +60,7 @@ public class ServerFactoryImpl {
59 60
     private final DMDircMBassador eventBus;
60 61
     private final MessageEncoderFactory messageEncoderFactory;
61 62
     private final ConfigProvider userSettings;
63
+    private final ColourManagerFactory colourManagerFactory;
62 64
 
63 65
     @Inject
64 66
     public ServerFactoryImpl(
@@ -75,7 +77,8 @@ public class ServerFactoryImpl {
75 77
             final URLBuilder urlBuilder,
76 78
             final DMDircMBassador eventBus,
77 79
             final MessageEncoderFactory messageEncoderFactory,
78
-            @ClientModule.UserConfig final ConfigProvider userSettings) {
80
+            @ClientModule.UserConfig final ConfigProvider userSettings,
81
+            final ColourManagerFactory colourManagerFactory) {
79 82
         this.manager = manager;
80 83
         this.parserFactory = parserFactory;
81 84
         this.tabCompleterFactory = tabCompleterFactory;
@@ -90,6 +93,7 @@ public class ServerFactoryImpl {
90 93
         this.eventBus = eventBus;
91 94
         this.messageEncoderFactory = messageEncoderFactory;
92 95
         this.userSettings = userSettings;
96
+        this.colourManagerFactory = colourManagerFactory;
93 97
     }
94 98
 
95 99
     public Server getServer(
@@ -102,6 +106,6 @@ public class ServerFactoryImpl {
102 106
                 tabCompleterFactory, identityFactory, messageSinkManager, statusBarManager,
103 107
                 windowManager, channelFactory.get(), queryFactory.get(), rawFactory.get(),
104 108
                 urlBuilder, eventBus, messageEncoderFactory, userSettings, executorService, uri,
105
-                profile);
109
+                profile, colourManagerFactory);
106 110
     }
107 111
 }

+ 8
- 3
src/com/dmdirc/commandparser/commands/global/OpenWindow.java View File

@@ -38,6 +38,7 @@ import com.dmdirc.interfaces.CommandController;
38 38
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
39 39
 import com.dmdirc.ui.WindowManager;
40 40
 import com.dmdirc.ui.input.AdditionalTabTargets;
41
+import com.dmdirc.ui.messages.ColourManagerFactory;
41 42
 import com.dmdirc.util.URLBuilder;
42 43
 
43 44
 import javax.annotation.Nonnull;
@@ -61,6 +62,8 @@ public class OpenWindow extends Command implements IntelligentCommand {
61 62
     private final DMDircMBassador eventBus;
62 63
     /** The config provider to retrieve settings from. */
63 64
     private final AggregateConfigProvider configProvider;
65
+    /** Colour manager factory. */
66
+    private final ColourManagerFactory colourManagerFactory;
64 67
 
65 68
     /**
66 69
      * Creates a new instance of this command.
@@ -77,13 +80,15 @@ public class OpenWindow extends Command implements IntelligentCommand {
77 80
             final WindowManager windowManager,
78 81
             final URLBuilder urlBuilder,
79 82
             final DMDircMBassador eventBus,
80
-            @GlobalConfig final AggregateConfigProvider configProvider) {
83
+            @GlobalConfig final AggregateConfigProvider configProvider,
84
+            final ColourManagerFactory colourManagerFactory) {
81 85
         super(controller);
82 86
 
83 87
         this.windowManager = windowManager;
84 88
         this.urlBuilder = urlBuilder;
85 89
         this.eventBus = eventBus;
86 90
         this.configProvider = configProvider;
91
+        this.colourManagerFactory = colourManagerFactory;
87 92
     }
88 93
 
89 94
     @Override
@@ -125,11 +130,11 @@ public class OpenWindow extends Command implements IntelligentCommand {
125 130
                 final CustomWindow newWindow;
126 131
                 if (parent == null) {
127 132
                     newWindow = new CustomWindow(args.getArguments()[start], title,
128
-                            configProvider, urlBuilder, eventBus);
133
+                            configProvider, urlBuilder, eventBus, colourManagerFactory);
129 134
                     windowManager.addWindow(newWindow);
130 135
                 } else {
131 136
                     newWindow = new CustomWindow(args.getArguments()[start], title, parent,
132
-                            urlBuilder);
137
+                            urlBuilder, colourManagerFactory);
133 138
                     windowManager.addWindow(parent, newWindow);
134 139
                 }
135 140
             } else {

+ 7
- 2
src/com/dmdirc/messages/CustomWindowMessageSink.java View File

@@ -26,6 +26,7 @@ import com.dmdirc.CustomWindow;
26 26
 import com.dmdirc.FrameContainer;
27 27
 import com.dmdirc.Server;
28 28
 import com.dmdirc.ui.WindowManager;
29
+import com.dmdirc.ui.messages.ColourManagerFactory;
29 30
 import com.dmdirc.util.URLBuilder;
30 31
 
31 32
 import java.util.Date;
@@ -44,6 +45,8 @@ public class CustomWindowMessageSink implements MessageSink {
44 45
     private final WindowManager windowManager;
45 46
     /** The URL builder to use when finding icons. */
46 47
     private final URLBuilder urlBuilder;
48
+    /** Colour Manager Factory. */
49
+    private final ColourManagerFactory colourManagerFactory;
47 50
 
48 51
     /**
49 52
      * Creates a new custom window message sink.
@@ -54,9 +57,11 @@ public class CustomWindowMessageSink implements MessageSink {
54 57
     @Inject
55 58
     public CustomWindowMessageSink(
56 59
             final WindowManager windowManager,
57
-            final URLBuilder urlBuilder) {
60
+            final URLBuilder urlBuilder,
61
+            final ColourManagerFactory colourManagerFactory) {
58 62
         this.windowManager = windowManager;
59 63
         this.urlBuilder = urlBuilder;
64
+        this.colourManagerFactory = colourManagerFactory;
60 65
     }
61 66
 
62 67
     @Override
@@ -74,7 +79,7 @@ public class CustomWindowMessageSink implements MessageSink {
74 79
 
75 80
         if (targetWindow == null) {
76 81
             targetWindow = new CustomWindow(patternMatches[0], patternMatches[0],
77
-                    (Server) source.getConnection(), urlBuilder);
82
+                    (Server) source.getConnection(), urlBuilder, colourManagerFactory);
78 83
             windowManager.addWindow((Server) source.getConnection(), targetWindow);
79 84
         }
80 85
 

+ 45
- 0
src/com/dmdirc/ui/messages/ColourManagerFactory.java View File

@@ -0,0 +1,45 @@
1
+/*
2
+ * Copyright (c) 2006-2014 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.ui.messages;
24
+
25
+import com.dmdirc.interfaces.config.AggregateConfigProvider;
26
+
27
+import javax.inject.Inject;
28
+import javax.inject.Singleton;
29
+
30
+/**
31
+ * Factory to create {@link ColourManager}s.
32
+ */
33
+@Singleton
34
+public class ColourManagerFactory {
35
+
36
+    @Inject
37
+    public ColourManagerFactory() {
38
+        //Complicated constructor.
39
+    }
40
+
41
+    public ColourManager getColourManager(final AggregateConfigProvider configManager) {
42
+        return new ColourManager(configManager);
43
+    }
44
+
45
+}

+ 4
- 4
src/com/dmdirc/ui/messages/Styliser.java View File

@@ -137,15 +137,15 @@ public class Styliser implements ConfigChangeListener {
137 137
      *
138 138
      * @param connection    The {@link Connection} that this styliser is for. May be {@code null}.
139 139
      * @param configManager the {@link AggregateConfigProvider} to get settings from.
140
+     * @param colourManager The {@link ColourManager} to get colours from.
140 141
      *
141 142
      * @since 0.6.3
142 143
      */
143
-    public Styliser(final Connection connection, final AggregateConfigProvider configManager) {
144
+    public Styliser(final Connection connection, final AggregateConfigProvider configManager,
145
+            final ColourManager colourManager) {
144 146
         this.connection = connection;
145 147
         this.configManager = configManager;
146
-
147
-        // TODO: This should probably be passed in, not created here.
148
-        this.colourManager = new ColourManager(configManager);
148
+        this.colourManager = colourManager;
149 149
 
150 150
         configManager.addChangeListener("ui", "linkcolour", this);
151 151
         configManager.addChangeListener("ui", "channelcolour", this);

+ 4
- 1
test/com/dmdirc/ServerTest.java View File

@@ -33,6 +33,7 @@ import com.dmdirc.ui.WindowManager;
33 33
 import com.dmdirc.ui.core.components.StatusBarManager;
34 34
 import com.dmdirc.ui.input.TabCompleter;
35 35
 import com.dmdirc.ui.input.TabCompleterFactory;
36
+import com.dmdirc.ui.messages.ColourManagerFactory;
36 37
 import com.dmdirc.util.URLBuilder;
37 38
 
38 39
 import java.net.URI;
@@ -71,6 +72,7 @@ public class ServerTest {
71 72
     @Mock private DMDircMBassador eventBus;
72 73
     @Mock private ScheduledExecutorService executorService;
73 74
     @Mock private MessageEncoderFactory messageEncoderFactory;
75
+    @Mock private ColourManagerFactory colourManagerFactory;
74 76
 
75 77
     private Server server;
76 78
 
@@ -101,7 +103,8 @@ public class ServerTest {
101 103
                 userConfig,
102 104
                 executorService,
103 105
                 new URI("irc-test://255.255.255.255"),
104
-                profile);
106
+                profile,
107
+                colourManagerFactory);
105 108
     }
106 109
 
107 110
     @Test

+ 4
- 2
test/com/dmdirc/WritableFrameContainerTest.java View File

@@ -28,6 +28,7 @@ import com.dmdirc.harness.TestWritableFrameContainer;
28 28
 import com.dmdirc.interfaces.ConnectionManager;
29 29
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
30 30
 import com.dmdirc.messages.MessageSinkManager;
31
+import com.dmdirc.ui.messages.ColourManagerFactory;
31 32
 import com.dmdirc.util.URLBuilder;
32 33
 
33 34
 import java.util.Arrays;
@@ -48,6 +49,7 @@ public class WritableFrameContainerTest {
48 49
     @Mock private MessageSinkManager messageSinkManager;
49 50
     @Mock private URLBuilder urlBuilder;
50 51
     @Mock private DMDircMBassador eventBus;
52
+    @Mock private ColourManagerFactory colourManagerFactory;
51 53
     private CommandManager commands;
52 54
 
53 55
     @Before
@@ -64,7 +66,7 @@ public class WritableFrameContainerTest {
64 66
     @Test
65 67
     public void testGetNumLines() {
66 68
         final FrameContainer container10 = new TestWritableFrameContainer(10, acp, commands,
67
-                messageSinkManager, urlBuilder, eventBus);
69
+                messageSinkManager, urlBuilder, eventBus, colourManagerFactory);
68 70
 
69 71
         final int res0a = container10.getNumLines("");
70 72
         final int res0b = container10.getNumLines("\r");
@@ -94,7 +96,7 @@ public class WritableFrameContainerTest {
94 96
     @Test
95 97
     public void testSplitLine() {
96 98
         final FrameContainer container10 = new TestWritableFrameContainer(10, acp, commands,
97
-                messageSinkManager, urlBuilder, eventBus);
99
+                messageSinkManager, urlBuilder, eventBus, colourManagerFactory);
98 100
         final String[][][] tests = new String[][][]{
99 101
             {{""}, {""}},
100 102
             {{"0123456789"}, {"0123456789"}},

+ 4
- 2
test/com/dmdirc/harness/TestWritableFrameContainer.java View File

@@ -30,6 +30,7 @@ import com.dmdirc.interfaces.Connection;
30 30
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
31 31
 import com.dmdirc.messages.MessageSinkManager;
32 32
 import com.dmdirc.ui.input.TabCompleter;
33
+import com.dmdirc.ui.messages.ColourManagerFactory;
33 34
 import com.dmdirc.util.URLBuilder;
34 35
 
35 36
 import com.dmdirc.DMDircMBassador;
@@ -45,8 +46,9 @@ public class TestWritableFrameContainer extends FrameContainer {
45 46
     public TestWritableFrameContainer(final int lineLength,
46 47
             final AggregateConfigProvider cm, final CommandManager commandManager,
47 48
             final MessageSinkManager messageSinkManager,
48
-            final URLBuilder urlBuilder, final DMDircMBassador eventBus) {
49
-        super(null, "raw", "Raw", "(Raw)", cm, urlBuilder,
49
+            final URLBuilder urlBuilder, final DMDircMBassador eventBus,
50
+            final ColourManagerFactory colourManagerFactory) {
51
+        super(null, "raw", "Raw", "(Raw)", cm, colourManagerFactory, urlBuilder,
50 52
                 new GlobalCommandParser(cm, commandManager, eventBus),
51 53
                 new TabCompleter(mock(CommandController.class), cm),
52 54
                 messageSinkManager,

+ 1
- 1
test/com/dmdirc/ui/messages/IntelligentLinkingTest.java View File

@@ -48,7 +48,7 @@ public class IntelligentLinkingTest {
48 48
         final Server server = mock(Server.class);
49 49
         when(server.getChannelPrefixes()).thenReturn("#&+");
50 50
 
51
-        styliser = new Styliser(server, manager);
51
+        styliser = new Styliser(server, manager, new ColourManager(manager));
52 52
     }
53 53
 
54 54
     @Test

+ 1
- 1
test/com/dmdirc/ui/messages/StyliserStylesTest.java View File

@@ -64,7 +64,7 @@ public class StyliserStylesTest {
64 64
 
65 65
         final AggregateConfigProvider manager = mock(AggregateConfigProvider.class);
66 66
 
67
-        final Styliser styliser = new Styliser(null, manager);
67
+        final Styliser styliser = new Styliser(null, manager, new ColourManager(manager));
68 68
         styliser.addStyledString(doc, new String[]{input});
69 69
         final AttributedCharacterIterator aci = Utils.getAttributedString(styliser,
70 70
                 new String[]{input, }, "dialog", 12).

+ 1
- 1
test/com/dmdirc/ui/messages/StyliserTest.java View File

@@ -83,7 +83,7 @@ public class StyliserTest {
83 83
         final String input2 = "abcdefghi";
84 84
 
85 85
         final AggregateConfigProvider manager = mock(AggregateConfigProvider.class);
86
-        final Styliser styliser = new Styliser(null, manager);
86
+        final Styliser styliser = new Styliser(null, manager, new ColourManager(manager));
87 87
 
88 88
         for (int i = 0; i < input2.length(); i++) {
89 89
             final Enumeration<?> res1 = styliser.getStyledString(new String[]{input1})

Loading…
Cancel
Save