Browse Source

Use ColourManagerFactory

Change-Id: If1bc20d15561584c9296ad10f04957efb51c5966
Depends-On: I6ef45d10a4fe862854702eee671114ee09f01d4d
Reviewed-on: http://gerrit.dmdirc.com/3867
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
changes/67/3867/4
Greg Holmes 9 years ago
parent
commit
5956243fc5
35 changed files with 214 additions and 103 deletions
  1. 3
    1
      dcc/src/com/dmdirc/addons/dcc/ChatContainer.java
  2. 8
    3
      dcc/src/com/dmdirc/addons/dcc/DCCCommand.java
  3. 3
    1
      dcc/src/com/dmdirc/addons/dcc/DCCFrameContainer.java
  4. 12
    4
      dcc/src/com/dmdirc/addons/dcc/DCCManager.java
  5. 3
    1
      dcc/src/com/dmdirc/addons/dcc/PlaceholderContainer.java
  6. 4
    2
      dcc/src/com/dmdirc/addons/dcc/TransferContainer.java
  7. 9
    5
      debug/src/com/dmdirc/addons/debug/commands/EventBusViewer.java
  8. 4
    1
      logging/src/com/dmdirc/addons/logging/HistoryWindow.java
  9. 6
    2
      logging/src/com/dmdirc/addons/logging/LoggingManager.java
  10. 4
    2
      parserdebug/src/com/dmdirc/addons/parserdebug/DebugWindow.java
  11. 6
    2
      parserdebug/src/com/dmdirc/addons/parserdebug/ParserDebugManager.java
  12. 5
    3
      redirect/src/com/dmdirc/addons/redirect/FakeWriteableFrameContainer.java
  13. 7
    2
      redirect/src/com/dmdirc/addons/redirect/RedirectCommand.java
  14. 3
    1
      redirect/test/com/dmdirc/addons/redirect/RedirectCommandTest.java
  15. 4
    2
      serverlistdialog/src/com/dmdirc/addons/serverlistdialog/Perform.java
  16. 5
    2
      serverlistdialog/src/com/dmdirc/addons/serverlistdialog/ServerListDialog.java
  17. 4
    2
      ui_swing/src/com/dmdirc/addons/ui_swing/components/NickList.java
  18. 8
    2
      ui_swing/src/com/dmdirc/addons/ui_swing/components/SwingSearchBar.java
  19. 6
    3
      ui_swing/src/com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.java
  20. 0
    4
      ui_swing/src/com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.java
  21. 12
    5
      ui_swing/src/com/dmdirc/addons/ui_swing/components/frames/TextFrame.java
  22. 9
    2
      ui_swing/src/com/dmdirc/addons/ui_swing/components/inputfields/TextAreaInputField.java
  23. 6
    2
      ui_swing/src/com/dmdirc/addons/ui_swing/components/performpanel/PerformPanel.java
  24. 8
    4
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog.java
  25. 9
    5
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialogFactory.java
  26. 7
    11
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.java
  27. 7
    2
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelSettingsDialog.java
  28. 8
    4
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicDisplayPane.java
  29. 7
    4
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java
  30. 7
    4
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/paste/PasteDialog.java
  31. 6
    2
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/paste/PasteDialogFactory.java
  32. 6
    2
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/serversetting/PerformTab.java
  33. 9
    5
      ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/serversetting/ServerSettingsDialog.java
  34. 1
    1
      ui_swing/src/com/dmdirc/addons/ui_swing/framemanager/tree/TreeViewTreeCellRenderer.java
  35. 8
    5
      ui_swing/src/com/dmdirc/addons/ui_swing/injection/DialogModule.java

+ 3
- 1
dcc/src/com/dmdirc/addons/dcc/ChatContainer.java View File

@@ -29,6 +29,7 @@ import com.dmdirc.addons.dcc.events.DccChatSelfmessageEvent;
29 29
 import com.dmdirc.addons.dcc.events.DccChatSocketclosedEvent;
30 30
 import com.dmdirc.addons.dcc.events.DccChatSocketopenedEvent;
31 31
 import com.dmdirc.addons.dcc.io.DCCChat;
32
+import com.dmdirc.ui.messages.ColourManagerFactory;
32 33
 import com.dmdirc.util.EventUtils;
33 34
 import com.dmdirc.interfaces.CommandController;
34 35
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
@@ -74,6 +75,7 @@ public class ChatContainer extends DCCFrameContainer implements DCCChatHandler {
74 75
             @Nullable final FrameContainer parent,
75 76
             final DCCChat dcc,
76 77
             final AggregateConfigProvider configManager,
78
+            final ColourManagerFactory colourManagerFactory,
77 79
             final CommandController commandController,
78 80
             final String title,
79 81
             final String nick,
@@ -82,7 +84,7 @@ public class ChatContainer extends DCCFrameContainer implements DCCChatHandler {
82 84
             final MessageSinkManager messageSinkManager,
83 85
             final URLBuilder urlBuilder,
84 86
             final DMDircMBassador eventBus) {
85
-        super(parent, title, "dcc-chat-inactive", configManager,
87
+        super(parent, title, "dcc-chat-inactive", configManager, colourManagerFactory,
86 88
                 new DCCCommandParser(configManager, commandController, eventBus),
87 89
                 messageSinkManager,
88 90
                 tabCompleterFactory,

+ 8
- 3
dcc/src/com/dmdirc/addons/dcc/DCCCommand.java View File

@@ -48,6 +48,7 @@ import com.dmdirc.ui.WindowManager;
48 48
 import com.dmdirc.ui.input.AdditionalTabTargets;
49 49
 import com.dmdirc.ui.input.TabCompleterFactory;
50 50
 import com.dmdirc.ui.input.TabCompletionType;
51
+import com.dmdirc.ui.messages.ColourManagerFactory;
51 52
 import com.dmdirc.util.URLBuilder;
52 53
 
53 54
 import java.awt.Window;
@@ -82,6 +83,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
82 83
     private final URLBuilder urlBuilder;
83 84
     /** The bus to dispatch events on. */
84 85
     private final DMDircMBassador eventBus;
86
+    private final ColourManagerFactory colourManagerFactory;
85 87
 
86 88
     /**
87 89
      * Creates a new instance of DCCCommand.
@@ -104,7 +106,8 @@ public class DCCCommand extends Command implements IntelligentCommand {
104 106
             final WindowManager windowManager,
105 107
             final TabCompleterFactory tabCompleterFactory,
106 108
             final URLBuilder urlBuilder,
107
-            final DMDircMBassador eventBus) {
109
+            final DMDircMBassador eventBus,
110
+            final ColourManagerFactory colourManagerFactory) {
108 111
         super(controller);
109 112
         this.mainWindow = mainWindow;
110 113
         myPlugin = plugin;
@@ -113,6 +116,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
113 116
         this.tabCompleterFactory = tabCompleterFactory;
114 117
         this.urlBuilder = urlBuilder;
115 118
         this.eventBus = eventBus;
119
+        this.colourManagerFactory = colourManagerFactory;
116 120
     }
117 121
 
118 122
     @Override
@@ -179,6 +183,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
179 183
                     myPlugin.getContainer(),
180 184
                     chat,
181 185
                     origin.getConfigManager(),
186
+                    colourManagerFactory,
182 187
                     getController(),
183 188
                     "*Chat: " + target,
184 189
                     myNickname,
@@ -259,7 +264,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
259 264
                         myPlugin.getDomain(), "send.reverse")) {
260 265
                     final Parser parser = connection.getParser();
261 266
                     final TransferContainer container = new TransferContainer(myPlugin, send,
262
-                            origin.getConfigManager(), "Send: " + target,
267
+                            origin.getConfigManager(), colourManagerFactory, "Send: " + target,
263 268
                             target, connection, urlBuilder, eventBus);
264 269
                     windowManager.addWindow(myPlugin.getContainer(), container);
265 270
                     parser.sendCTCP(target, "DCC", "SEND \""
@@ -272,7 +277,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
272 277
                     final Parser parser = connection.getParser();
273 278
                     if (myPlugin.listen(send)) {
274 279
                         final TransferContainer container = new TransferContainer(myPlugin, send,
275
-                                origin.getConfigManager(), "*Send: "
280
+                                origin.getConfigManager(), colourManagerFactory, "*Send: "
276 281
                                 + target, target, connection, urlBuilder, eventBus);
277 282
                         windowManager.addWindow(myPlugin.getContainer(), container);
278 283
                         parser.sendCTCP(target, "DCC", "SEND \""

+ 3
- 1
dcc/src/com/dmdirc/addons/dcc/DCCFrameContainer.java View File

@@ -29,6 +29,7 @@ import com.dmdirc.interfaces.Connection;
29 29
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
30 30
 import com.dmdirc.messages.MessageSinkManager;
31 31
 import com.dmdirc.ui.input.TabCompleterFactory;
32
+import com.dmdirc.ui.messages.ColourManagerFactory;
32 33
 import com.dmdirc.util.URLBuilder;
33 34
 
34 35
 import java.util.Collection;
@@ -62,13 +63,14 @@ public abstract class DCCFrameContainer extends FrameContainer {
62 63
             final String title,
63 64
             final String icon,
64 65
             final AggregateConfigProvider configManager,
66
+            final ColourManagerFactory colourManagerFactory,
65 67
             final CommandParser parser,
66 68
             final MessageSinkManager messageSinkManager,
67 69
             final TabCompleterFactory tabCompleterFactory,
68 70
             final URLBuilder urlBuilder,
69 71
             final DMDircMBassador eventBus,
70 72
             final Collection<String> components) {
71
-        super(parent, icon, title, title, configManager, urlBuilder, parser,
73
+        super(parent, icon, title, title, configManager, colourManagerFactory, urlBuilder, parser,
72 74
                 tabCompleterFactory.getTabCompleter(configManager),
73 75
                 messageSinkManager,
74 76
                 eventBus,

+ 12
- 4
dcc/src/com/dmdirc/addons/dcc/DCCManager.java View File

@@ -52,6 +52,7 @@ import com.dmdirc.parser.interfaces.Parser;
52 52
 import com.dmdirc.plugins.PluginInfo;
53 53
 import com.dmdirc.ui.WindowManager;
54 54
 import com.dmdirc.ui.input.TabCompleterFactory;
55
+import com.dmdirc.ui.messages.ColourManagerFactory;
55 56
 import com.dmdirc.util.URLBuilder;
56 57
 
57 58
 import java.awt.Window;
@@ -76,6 +77,7 @@ import net.engio.mbassy.listener.Handler;
76 77
 @Singleton
77 78
 public class DCCManager {
78 79
 
80
+    private final ColourManagerFactory colourManagerFactory;
79 81
     /** Our DCC Container window. */
80 82
     private PlaceholderContainer container;
81 83
     /** Config manager to read settings from. */
@@ -130,7 +132,8 @@ public class DCCManager {
130 132
             final URLBuilder urlBuilder,
131 133
             final DMDircMBassador eventBus,
132 134
             final GlobalCommandParser commandParser,
133
-            @Directory(DirectoryType.BASE) final String baseDirectory) {
135
+            @Directory(DirectoryType.BASE) final String baseDirectory,
136
+            final ColourManagerFactory colourManagerFactory) {
134 137
         this.mainWindow = mainWindow;
135 138
         this.messageSinkManager = messageSinkManager;
136 139
         this.windowManager = windowManager;
@@ -140,6 +143,7 @@ public class DCCManager {
140 143
         this.config = globalConfig;
141 144
         this.urlBuilder = urlBuilder;
142 145
         this.eventBus = eventBus;
146
+        this.colourManagerFactory = colourManagerFactory;
143 147
 
144 148
         windowFactory.registerImplementation(
145 149
                 new SwingWindowFactory.WindowProvider() {
@@ -212,7 +216,8 @@ public class DCCManager {
212 216
                 final boolean resume = handleResume(jc);
213 217
                 if (reverse && !token.isEmpty()) {
214 218
                     final TransferContainer container = new TransferContainer(DCCManager.this, send,
215
-                            config, "*Receive: " + nickname, nickname, null, urlBuilder, eventBus);
219
+                            config, colourManagerFactory, "*Receive: " + nickname, nickname, null,
220
+                            urlBuilder, eventBus);
216 221
                     windowManager.addWindow(getContainer(), container);
217 222
                     send.setToken(token);
218 223
                     if (resume) {
@@ -238,7 +243,8 @@ public class DCCManager {
238 243
                     }
239 244
                 } else {
240 245
                     final TransferContainer container = new TransferContainer(DCCManager.this, send,
241
-                            config, "Receive: " + nickname, nickname, null, urlBuilder, eventBus);
246
+                            config, colourManagerFactory, "Receive: " + nickname, nickname, null,
247
+                            urlBuilder, eventBus);
242 248
                     windowManager.addWindow(getContainer(), container);
243 249
                     if (resume) {
244 250
                         parser.sendCTCP(nickname, "DCC", "RESUME "
@@ -420,6 +426,7 @@ public class DCCManager {
420 426
                 getContainer(),
421 427
                 chat,
422 428
                 config,
429
+                colourManagerFactory,
423 430
                 commandController,
424 431
                 "Chat: " + nickname,
425 432
                 myNickname,
@@ -649,7 +656,8 @@ public class DCCManager {
649 656
      * Create the container window.
650 657
      */
651 658
     protected void createContainer() {
652
-        container = new PlaceholderContainer(this, config, mainWindow, urlBuilder, eventBus);
659
+        container = new PlaceholderContainer(this, config, colourManagerFactory, mainWindow,
660
+                urlBuilder, eventBus);
653 661
         windowManager.addWindow(container);
654 662
     }
655 663
 

+ 3
- 1
dcc/src/com/dmdirc/addons/dcc/PlaceholderContainer.java View File

@@ -27,6 +27,7 @@ import com.dmdirc.FrameContainer;
27 27
 import com.dmdirc.addons.ui_swing.dialogs.StandardQuestionDialog;
28 28
 import com.dmdirc.interfaces.Connection;
29 29
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
30
+import com.dmdirc.ui.messages.ColourManagerFactory;
30 31
 import com.dmdirc.util.URLBuilder;
31 32
 
32 33
 import java.awt.Dialog.ModalityType;
@@ -55,10 +56,11 @@ public class PlaceholderContainer extends FrameContainer {
55 56
     public PlaceholderContainer(
56 57
             final DCCManager plugin,
57 58
             final AggregateConfigProvider config,
59
+            final ColourManagerFactory colourManagerFactory,
58 60
             final Window parentWindow,
59 61
             final URLBuilder urlBuilder,
60 62
             final DMDircMBassador eventBus) {
61
-        super(null, "dcc", "DCCs", "DCCs", config, urlBuilder, eventBus,
63
+        super(null, "dcc", "DCCs", "DCCs", config, colourManagerFactory, urlBuilder, eventBus,
62 64
                 Arrays.asList("com.dmdirc.addons.dcc.ui.PlaceholderPanel"));
63 65
         this.plugin = plugin;
64 66
         this.parentWindow = parentWindow;

+ 4
- 2
dcc/src/com/dmdirc/addons/dcc/TransferContainer.java View File

@@ -34,6 +34,7 @@ import com.dmdirc.interfaces.Connection;
34 34
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
35 35
 import com.dmdirc.parser.interfaces.Parser;
36 36
 import com.dmdirc.parser.interfaces.callbacks.SocketCloseListener;
37
+import com.dmdirc.ui.messages.ColourManagerFactory;
37 38
 import com.dmdirc.util.URLBuilder;
38 39
 
39 40
 import java.awt.Desktop;
@@ -88,12 +89,13 @@ public class TransferContainer extends FrameContainer implements
88 89
      * @param eventBus   The bus to dispatch events on.
89 90
      */
90 91
     public TransferContainer(final DCCManager plugin, final DCCTransfer dcc,
91
-            final AggregateConfigProvider config, final String title,
92
+            final AggregateConfigProvider config,
93
+            final ColourManagerFactory colourManagerFactory, final String title,
92 94
             final String targetNick, final Connection connection,
93 95
             final URLBuilder urlBuilder, final DMDircMBassador eventBus) {
94 96
         super(plugin.getContainer(), dcc.getType() == DCCTransfer.TransferType.SEND
95 97
                 ? "dcc-send-inactive" : "dcc-receive-inactive",
96
-                title, title, config, urlBuilder, eventBus,
98
+                title, title, config, colourManagerFactory, urlBuilder, eventBus,
97 99
                 Arrays.asList("com.dmdirc.addons.dcc.ui.TransferPanel"));
98 100
         this.plugin = plugin;
99 101
         this.dcc = dcc;

+ 9
- 5
debug/src/com/dmdirc/addons/debug/commands/EventBusViewer.java View File

@@ -35,6 +35,7 @@ import com.dmdirc.events.DMDircEvent;
35 35
 import com.dmdirc.events.FrameClosingEvent;
36 36
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
37 37
 import com.dmdirc.ui.WindowManager;
38
+import com.dmdirc.ui.messages.ColourManagerFactory;
38 39
 import com.dmdirc.ui.messages.Styliser;
39 40
 import com.dmdirc.util.URLBuilder;
40 41
 
@@ -56,6 +57,7 @@ public class EventBusViewer extends DebugCommand {
56 57
     private final AggregateConfigProvider globalConfig;
57 58
     private final WindowManager windowManager;
58 59
     private final DMDircMBassador globalEventBus;
60
+    private final ColourManagerFactory colourManagerFactory;
59 61
 
60 62
     /**
61 63
      * Creates a new instance of the command.
@@ -72,12 +74,14 @@ public class EventBusViewer extends DebugCommand {
72 74
             @GlobalConfig final AggregateConfigProvider globalConfig,
73 75
             final URLBuilder urlBuilder,
74 76
             final WindowManager windowManager,
75
-            final DMDircMBassador globalEventBus) {
77
+            final DMDircMBassador globalEventBus,
78
+            final ColourManagerFactory colourManagerFactory) {
76 79
         super(commandProvider);
77 80
         this.globalConfig = globalConfig;
78 81
         this.urlBuilder = urlBuilder;
79 82
         this.windowManager = windowManager;
80 83
         this.globalEventBus = globalEventBus;
84
+        this.colourManagerFactory = colourManagerFactory;
81 85
     }
82 86
 
83 87
     @Override
@@ -98,12 +102,12 @@ public class EventBusViewer extends DebugCommand {
98 102
 
99 103
         final CustomWindow window;
100 104
         if (isGlobal) {
101
-            window = new CustomWindow("Event bus", "Event bus", globalConfig,
102
-                    urlBuilder, globalEventBus);
105
+            window = new CustomWindow("Event bus", "Event bus", globalConfig, urlBuilder,
106
+                    globalEventBus, colourManagerFactory);
103 107
             windowManager.addWindow(window);
104 108
         } else {
105
-            window = new CustomWindow("Event bus", "Event bus", origin,
106
-                    urlBuilder);
109
+            window = new CustomWindow("Event bus", "Event bus", origin, urlBuilder,
110
+                    colourManagerFactory);
107 111
             windowManager.addWindow(origin, window);
108 112
         }
109 113
 

+ 4
- 1
logging/src/com/dmdirc/addons/logging/HistoryWindow.java View File

@@ -26,6 +26,7 @@ import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.FrameContainer;
27 27
 import com.dmdirc.interfaces.Connection;
28 28
 import com.dmdirc.ui.core.components.WindowComponent;
29
+import com.dmdirc.ui.messages.ColourManagerFactory;
29 30
 import com.dmdirc.util.URLBuilder;
30 31
 import com.dmdirc.util.io.ReverseFileReader;
31 32
 
@@ -54,8 +55,10 @@ public class HistoryWindow extends FrameContainer {
54 55
             final FrameContainer parent,
55 56
             final URLBuilder urlBuilder,
56 57
             final DMDircMBassador eventBus,
58
+            final ColourManagerFactory colourManagerFactory,
57 59
             final int numLines) {
58
-        super(parent, "raw", title, title, parent.getConfigManager(), urlBuilder, eventBus,
60
+        super(parent, "raw", title, title, parent.getConfigManager(), colourManagerFactory,
61
+                urlBuilder, eventBus,
59 62
                 Collections.singletonList(WindowComponent.TEXTAREA.getIdentifier()));
60 63
 
61 64
         final int frameBufferSize = parent.getConfigManager().getOptionInt(

+ 6
- 2
logging/src/com/dmdirc/addons/logging/LoggingManager.java View File

@@ -56,6 +56,7 @@ import com.dmdirc.parser.interfaces.ClientInfo;
56 56
 import com.dmdirc.parser.interfaces.Parser;
57 57
 import com.dmdirc.plugins.PluginDomain;
58 58
 import com.dmdirc.ui.WindowManager;
59
+import com.dmdirc.ui.messages.ColourManagerFactory;
59 60
 import com.dmdirc.ui.messages.Styliser;
60 61
 import com.dmdirc.util.URLBuilder;
61 62
 import com.dmdirc.util.io.ReverseFileReader;
@@ -108,6 +109,7 @@ public class LoggingManager implements ConfigChangeListener {
108 109
     private final URLBuilder urlBuilder;
109 110
     private final DMDircMBassador eventBus;
110 111
     private final Provider<String> directoryProvider;
112
+    private final ColourManagerFactory colourManagerFactory;
111 113
     /** Timer used to close idle files. */
112 114
     private Timer idleFileTimer;
113 115
     /** Cached boolean settings. */
@@ -131,13 +133,15 @@ public class LoggingManager implements ConfigChangeListener {
131 133
     public LoggingManager(@PluginDomain(LoggingPlugin.class) final String domain,
132 134
             @GlobalConfig final AggregateConfigProvider globalConfig,
133 135
             final WindowManager windowManager, final URLBuilder urlBuilder, final DMDircMBassador eventBus,
134
-            @Directory(LoggingModule.LOGS_DIRECTORY) final Provider<String> directoryProvider) {
136
+            @Directory(LoggingModule.LOGS_DIRECTORY) final Provider<String> directoryProvider,
137
+            final ColourManagerFactory colourManagerFactory) {
135 138
         this.domain = domain;
136 139
         this.config = globalConfig;
137 140
         this.windowManager = windowManager;
138 141
         this.urlBuilder = urlBuilder;
139 142
         this.eventBus = eventBus;
140 143
         this.directoryProvider = directoryProvider;
144
+        this.colourManagerFactory = colourManagerFactory;
141 145
     }
142 146
 
143 147
     public void load() {
@@ -769,7 +773,7 @@ public class LoggingManager implements ConfigChangeListener {
769 773
         }
770 774
 
771 775
         final HistoryWindow window = new HistoryWindow("History", reader, target, urlBuilder,
772
-                eventBus, historyLines);
776
+                eventBus, colourManagerFactory, historyLines);
773 777
         windowManager.addWindow(target, window);
774 778
 
775 779
         return true;

+ 4
- 2
parserdebug/src/com/dmdirc/addons/parserdebug/DebugWindow.java View File

@@ -28,6 +28,7 @@ import com.dmdirc.interfaces.Connection;
28 28
 import com.dmdirc.parser.interfaces.Parser;
29 29
 import com.dmdirc.parser.interfaces.callbacks.DebugInfoListener;
30 30
 import com.dmdirc.ui.core.components.WindowComponent;
31
+import com.dmdirc.ui.messages.ColourManagerFactory;
31 32
 import com.dmdirc.util.URLBuilder;
32 33
 
33 34
 import java.util.Arrays;
@@ -60,9 +61,10 @@ public class DebugWindow extends FrameContainer {
60 61
             final Parser parser,
61 62
             final Connection connection,
62 63
             final URLBuilder urlBuilder,
63
-            final DMDircMBassador eventBus) {
64
+            final DMDircMBassador eventBus,
65
+            final ColourManagerFactory colourManagerFactory) {
64 66
         super(connection.getWindowModel(), "raw", "Parser Debug", title,
65
-                connection.getWindowModel().getConfigManager(),
67
+                connection.getWindowModel().getConfigManager(), colourManagerFactory,
66 68
                 urlBuilder, eventBus, Arrays.asList(WindowComponent.TEXTAREA.getIdentifier()));
67 69
         this.listener = listener;
68 70
         this.parser = parser;

+ 6
- 2
parserdebug/src/com/dmdirc/addons/parserdebug/ParserDebugManager.java View File

@@ -29,6 +29,7 @@ import com.dmdirc.parser.common.CallbackNotFoundException;
29 29
 import com.dmdirc.parser.interfaces.Parser;
30 30
 import com.dmdirc.parser.interfaces.callbacks.DebugInfoListener;
31 31
 import com.dmdirc.ui.WindowManager;
32
+import com.dmdirc.ui.messages.ColourManagerFactory;
32 33
 import com.dmdirc.util.URLBuilder;
33 34
 
34 35
 import java.util.Date;
@@ -49,15 +50,18 @@ public class ParserDebugManager implements DebugInfoListener {
49 50
     private final URLBuilder urlBuilder;
50 51
     /** Window manager. */
51 52
     private final WindowManager windowManager;
53
+    private final ColourManagerFactory colourManagerFactory;
52 54
 
53 55
     @Inject
54 56
     public ParserDebugManager(
55 57
             final URLBuilder urlBuilder,
56 58
             final WindowManager windowManager,
57
-            final DMDircMBassador eventBus) {
59
+            final DMDircMBassador eventBus,
60
+            final ColourManagerFactory colourManagerFactory) {
58 61
         this.urlBuilder = urlBuilder;
59 62
         this.windowManager = windowManager;
60 63
         this.eventBus = eventBus;
64
+        this.colourManagerFactory = colourManagerFactory;
61 65
         registeredParsers = new HashMap<>();
62 66
     }
63 67
 
@@ -98,7 +102,7 @@ public class ParserDebugManager implements DebugInfoListener {
98 102
         try {
99 103
             parser.getCallbackManager().addCallback(DebugInfoListener.class, this);
100 104
             final DebugWindow window = new DebugWindow(this, "Parser Debug", parser,
101
-                    connection, urlBuilder, eventBus);
105
+                    connection, urlBuilder, eventBus, colourManagerFactory);
102 106
             windowManager.addWindow(connection.getWindowModel(), window);
103 107
             registeredParsers.put(parser, window);
104 108
             window.addLine("======================", true);

+ 5
- 3
redirect/src/com/dmdirc/addons/redirect/FakeWriteableFrameContainer.java View File

@@ -26,6 +26,7 @@ import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.FrameContainer;
27 27
 import com.dmdirc.interfaces.Connection;
28 28
 import com.dmdirc.messages.MessageSinkManager;
29
+import com.dmdirc.ui.messages.ColourManagerFactory;
29 30
 import com.dmdirc.ui.messages.Formatter;
30 31
 import com.dmdirc.util.URLBuilder;
31 32
 
@@ -52,10 +53,11 @@ public class FakeWriteableFrameContainer extends FrameContainer {
52 53
             final FrameContainer target,
53 54
             final MessageSinkManager messageSinkManager,
54 55
             final DMDircMBassador eventBus,
55
-            final URLBuilder urlBuilder) {
56
+            final URLBuilder urlBuilder,
57
+            final ColourManagerFactory colourManagerFactory) {
56 58
         super(target, target.getIcon(), target.getName(), target.getTitle(),
57
-                target.getConfigManager(), urlBuilder, target.getCommandParser(),
58
-                target.getTabCompleter(), messageSinkManager, eventBus,
59
+                target.getConfigManager(), colourManagerFactory, urlBuilder,
60
+                target.getCommandParser(), target.getTabCompleter(), messageSinkManager, eventBus,
59 61
                 Collections.<String>emptyList());
60 62
         this.target = target;
61 63
     }

+ 7
- 2
redirect/src/com/dmdirc/addons/redirect/RedirectCommand.java View File

@@ -35,6 +35,7 @@ import com.dmdirc.interfaces.CommandController;
35 35
 import com.dmdirc.messages.MessageSinkManager;
36 36
 import com.dmdirc.ui.input.AdditionalTabTargets;
37 37
 import com.dmdirc.ui.input.TabCompleterUtils;
38
+import com.dmdirc.ui.messages.ColourManagerFactory;
38 39
 import com.dmdirc.util.URLBuilder;
39 40
 
40 41
 import javax.annotation.Nonnull;
@@ -57,6 +58,7 @@ public class RedirectCommand extends Command implements IntelligentCommand {
57 58
     private final URLBuilder urlBuilder;
58 59
     /** The bus to dispatch events on. */
59 60
     private final DMDircMBassador eventBus;
61
+    private final ColourManagerFactory colourManagerFactory;
60 62
 
61 63
     /**
62 64
      * Creates a new instance of this command.
@@ -71,11 +73,13 @@ public class RedirectCommand extends Command implements IntelligentCommand {
71 73
             final CommandController controller,
72 74
             final MessageSinkManager messageSinkManager,
73 75
             final URLBuilder urlBuilder,
74
-            final DMDircMBassador eventBus) {
76
+            final DMDircMBassador eventBus,
77
+            final ColourManagerFactory colourManagerFactory) {
75 78
         super(controller);
76 79
         this.messageSinkManager = messageSinkManager;
77 80
         this.urlBuilder = urlBuilder;
78 81
         this.eventBus = eventBus;
82
+        this.colourManagerFactory = colourManagerFactory;
79 83
     }
80 84
 
81 85
     @Override
@@ -83,7 +87,8 @@ public class RedirectCommand extends Command implements IntelligentCommand {
83 87
             final CommandArguments args, final CommandContext context) {
84 88
         final FrameContainer target = ((ChatCommandContext) context).getChat();
85 89
         target.getCommandParser().parseCommand(new FakeWriteableFrameContainer(
86
-                target, messageSinkManager, eventBus, urlBuilder), args.getArgumentsAsString());
90
+                target, messageSinkManager, eventBus, urlBuilder, colourManagerFactory),
91
+                args.getArgumentsAsString());
87 92
     }
88 93
 
89 94
     @Override

+ 3
- 1
redirect/test/com/dmdirc/addons/redirect/RedirectCommandTest.java View File

@@ -34,6 +34,7 @@ import com.dmdirc.interfaces.ui.InputWindow;
34 34
 import com.dmdirc.messages.MessageSinkManager;
35 35
 import com.dmdirc.ui.WindowManager;
36 36
 import com.dmdirc.ui.input.TabCompleter;
37
+import com.dmdirc.ui.messages.ColourManagerFactory;
37 38
 import com.dmdirc.util.URLBuilder;
38 39
 
39 40
 import com.dmdirc.DMDircMBassador;
@@ -66,6 +67,7 @@ public class RedirectCommandTest {
66 67
     @Mock private WindowManager windowManager;
67 68
     @Mock private URLBuilder urlBuilder;
68 69
     @Mock private DMDircMBassador eventBus;
70
+    @Mock private ColourManagerFactory colourManagerFactory;
69 71
 
70 72
     @Before
71 73
     public void setup() {
@@ -92,7 +94,7 @@ public class RedirectCommandTest {
92 94
     @Test
93 95
     public void testExecute() {
94 96
         final RedirectCommand command = new RedirectCommand(commandController, messageSinkManager,
95
-                urlBuilder, eventBus);
97
+                urlBuilder, eventBus, colourManagerFactory);
96 98
 
97 99
         command.execute(target, new CommandArguments(commandController, "/redirect /echo test"),
98 100
                 new ChatCommandContext(frameContainer, RedirectCommand.INFO, target));

+ 4
- 2
serverlistdialog/src/com/dmdirc/addons/serverlistdialog/Perform.java View File

@@ -27,6 +27,7 @@ import com.dmdirc.addons.serverlists.ServerGroupItem;
27 27
 import com.dmdirc.addons.ui_swing.components.performpanel.PerformPanel;
28 28
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
29 29
 import com.dmdirc.ui.IconManager;
30
+import com.dmdirc.ui.messages.ColourManagerFactory;
30 31
 
31 32
 import javax.swing.BorderFactory;
32 33
 import javax.swing.JPanel;
@@ -61,10 +62,11 @@ public class Perform extends JPanel implements ServerListListener {
61 62
             final IconManager iconManager,
62 63
             final AggregateConfigProvider globalConfig,
63 64
             final PerformWrapper wrapper,
64
-            final ServerListModel model) {
65
+            final ServerListModel model,
66
+            final ColourManagerFactory colourManagerFactory) {
65 67
 
66 68
         this.model = model;
67
-        performPanel = new PerformPanel(iconManager, globalConfig, wrapper);
69
+        performPanel = new PerformPanel(iconManager, colourManagerFactory, globalConfig, wrapper);
68 70
 
69 71
         addListeners();
70 72
         if (model.getSelectedItemPerformDescription() != null) {

+ 5
- 2
serverlistdialog/src/com/dmdirc/addons/serverlistdialog/ServerListDialog.java View File

@@ -32,6 +32,7 @@ import com.dmdirc.interfaces.config.AggregateConfigProvider;
32 32
 import com.dmdirc.interfaces.config.IdentityController;
33 33
 import com.dmdirc.ui.IconManager;
34 34
 import com.dmdirc.ui.core.util.URLHandler;
35
+import com.dmdirc.ui.messages.ColourManagerFactory;
35 36
 
36 37
 import java.awt.Window;
37 38
 import java.awt.color.ColorSpace;
@@ -99,7 +100,8 @@ public class ServerListDialog extends StandardDialog implements
99 100
             final ServerListModel serverListModel,
100 101
             @MainWindow final Window parentWindow,
101 102
             final Settings settingsPanel,
102
-            final IdentityController identityController) {
103
+            final IdentityController identityController,
104
+            final ColourManagerFactory colourManagerFactory) {
103 105
         super(parentWindow, ModalityType.MODELESS);
104 106
 
105 107
         setTitle("Server List");
@@ -121,7 +123,8 @@ public class ServerListDialog extends StandardDialog implements
121 123
                 new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY),
122 124
                         null)));
123 125
         profileLayer = new JXLayer<>(new Profiles(model, identityController), profileLock);
124
-        performLayer = new JXLayer<>(new Perform(iconManager, globalConfig, performWrapper, model),
126
+        performLayer = new JXLayer<>(new Perform(iconManager, globalConfig, performWrapper, model,
127
+                colourManagerFactory),
125 128
                 performLock);
126 129
         settingsLayer = new JXLayer<>(settingsPanel, settingsLock);
127 130
         infoLayer = new JXLayer<>(new Info(model, urlHandler), infoLock);

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

@@ -33,6 +33,7 @@ import com.dmdirc.interfaces.config.AggregateConfigProvider;
33 33
 import com.dmdirc.interfaces.config.ConfigChangeListener;
34 34
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
35 35
 import com.dmdirc.ui.messages.ColourManager;
36
+import com.dmdirc.ui.messages.ColourManagerFactory;
36 37
 
37 38
 import java.awt.Dimension;
38 39
 import java.awt.Font;
@@ -72,10 +73,11 @@ public class NickList extends JScrollPane implements ConfigChangeListener,
72 73
      * @param frame  Frame
73 74
      * @param config Config
74 75
      */
75
-    public NickList(final ChannelFrame frame, final AggregateConfigProvider config) {
76
+    public NickList(final ChannelFrame frame, final AggregateConfigProvider config,
77
+            final ColourManagerFactory colourManagerFactory) {
76 78
         this.frame = frame;
77 79
         this.config = config;
78
-        this.colourManager = new ColourManager(config);
80
+        this.colourManager = colourManagerFactory.getColourManager(config);
79 81
 
80 82
         nickList = new JList<>();
81 83
 

+ 8
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/components/SwingSearchBar.java View File

@@ -66,6 +66,10 @@ public final class SwingSearchBar extends JPanel implements ActionListener,
66 66
     private static final long serialVersionUID = 6;
67 67
     /** Frame parent. */
68 68
     private final TextFrame parent;
69
+    /** Colour Manager. */
70
+    private final ColourManager colourManager;
71
+    /** Config to read from. */
72
+    private final AggregateConfigProvider config;
69 73
     /** Close button. */
70 74
     private ImageButton<Object> closeButton;
71 75
     /** Next match button. */
@@ -92,10 +96,13 @@ public final class SwingSearchBar extends JPanel implements ActionListener,
92 96
      * @param iconManager Icon manager to retrieve icons from
93 97
      */
94 98
     public SwingSearchBar(final TextFrame newParent,
95
-            final IconManager iconManager) {
99
+            final IconManager iconManager,
100
+            final ColourManager colourManager) {
96 101
         listeners = new ListenerList();
97 102
 
98 103
         this.parent = newParent;
104
+        this.config = parent.getContainer().getConfigManager();
105
+        this.colourManager = colourManager;
99 106
 
100 107
         getInputMap(JComponent.WHEN_FOCUSED).
101 108
                 put(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), "searchAction");
@@ -394,7 +401,6 @@ public final class SwingSearchBar extends JPanel implements ActionListener,
394 401
     /** Sets the colours used in this document. */
395 402
     private void setColours() {
396 403
         final AggregateConfigProvider config = parent.getContainer().getConfigManager();
397
-        final ColourManager colourManager = new ColourManager(config);
398 404
 
399 405
         searchBox.setForeground(UIUtilities.convertColour(
400 406
                 colourManager.getColourFromString(

+ 6
- 3
ui_swing/src/com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.java View File

@@ -40,6 +40,7 @@ import com.dmdirc.events.FrameClosingEvent;
40 40
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
41 41
 import com.dmdirc.interfaces.config.ConfigProvider;
42 42
 import com.dmdirc.interfaces.config.IdentityFactory;
43
+import com.dmdirc.ui.messages.ColourManagerFactory;
43 44
 
44 45
 import java.awt.Dimension;
45 46
 import java.awt.event.ActionEvent;
@@ -109,7 +110,7 @@ public final class ChannelFrame extends InputTextFrame implements ActionListener
109 110
         this.dialogProvider = dialogProvider;
110 111
         this.channel = owner;
111 112
 
112
-        initComponents(topicBarFactory);
113
+        initComponents(topicBarFactory, deps.colourManagerFactory);
113 114
 
114 115
         globalConfig.addChangeListener("ui", "channelSplitPanePosition", this);
115 116
         globalConfig.addChangeListener(domain, "shownicklist", this);
@@ -123,12 +124,14 @@ public final class ChannelFrame extends InputTextFrame implements ActionListener
123 124
      * Initialises the components in this frame.
124 125
      *
125 126
      * @param topicBarFactory The factory to use to produce topic bars.
127
+     * @param colourManagerFactory The colour manager factory
126 128
      */
127
-    private void initComponents(final TopicBarFactory topicBarFactory) {
129
+    private void initComponents(final TopicBarFactory topicBarFactory,
130
+            final ColourManagerFactory colourManagerFactory) {
128 131
         topicBar = topicBarFactory.getTopicBar((Channel) getContainer(), this,
129 132
                 getContainer().getIconManager());
130 133
 
131
-        nicklist = new NickList(this, getContainer().getConfigManager());
134
+        nicklist = new NickList(this, getContainer().getConfigManager(), colourManagerFactory);
132 135
         settingsMI = new JMenuItem("Settings");
133 136
         settingsMI.addActionListener(this);
134 137
 

+ 0
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.java View File

@@ -40,7 +40,6 @@ import com.dmdirc.interfaces.ui.InputWindow;
40 40
 import com.dmdirc.logger.ErrorLevel;
41 41
 import com.dmdirc.plugins.PluginManager;
42 42
 import com.dmdirc.ui.input.InputHandler;
43
-import com.dmdirc.ui.messages.ColourManager;
44 43
 
45 44
 import java.awt.BorderLayout;
46 45
 import java.awt.Point;
@@ -71,8 +70,6 @@ public abstract class InputTextFrame extends TextFrame implements InputWindow,
71 70
     private static final long serialVersionUID = 3;
72 71
     /** Config provider for this frame. */
73 72
     private final AggregateConfigProvider config;
74
-    /** Colour manager for this frame. */
75
-    private final ColourManager colourManager;
76 73
     /** Input field panel. */
77 74
     protected JPanel inputPanel;
78 75
     /** The InputHandler for our input field. */
@@ -114,7 +111,6 @@ public abstract class InputTextFrame extends TextFrame implements InputWindow,
114 111
         super(owner, owner.getCommandParser(), deps);
115 112
 
116 113
         config = owner.getConfigManager();
117
-        colourManager = new ColourManager(config);
118 114
         parentWindow = deps.mainWindow;
119 115
         pluginManager = deps.pluginManager;
120 116
         pasteDialogFactory = deps.pasteDialog;

+ 12
- 5
ui_swing/src/com/dmdirc/addons/ui_swing/components/frames/TextFrame.java View File

@@ -60,6 +60,7 @@ import com.dmdirc.interfaces.config.ConfigChangeListener;
60 60
 import com.dmdirc.plugins.PluginManager;
61 61
 import com.dmdirc.ui.IconManager;
62 62
 import com.dmdirc.ui.messages.ColourManager;
63
+import com.dmdirc.ui.messages.ColourManagerFactory;
63 64
 
64 65
 import java.awt.Point;
65 66
 import java.awt.Window;
@@ -94,6 +95,8 @@ public abstract class TextFrame extends JPanel implements com.dmdirc.interfaces.
94 95
     private static final long serialVersionUID = 5;
95 96
     /** The channel object that owns this frame. */
96 97
     protected final FrameContainer frameParent;
98
+    /** Colour manager. */
99
+    protected final ColourManager colourManager;
97 100
     /** Frame output pane. */
98 101
     private TextPane textPane;
99 102
     /** search bar. */
@@ -135,10 +138,11 @@ public abstract class TextFrame extends JPanel implements com.dmdirc.interfaces.
135 138
         this.eventBus = deps.eventBus;
136 139
         this.commandParser = commandParser;
137 140
         this.clipboard = deps.clipboard;
141
+        this.colourManager = deps.colourManagerFactory.getColourManager(owner.getConfigManager());
138 142
 
139 143
         final AggregateConfigProvider config = owner.getConfigManager();
140 144
 
141
-        initComponents(deps.textPaneFactory);
145
+        initComponents(deps.textPaneFactory, colourManager);
142 146
         setFocusable(true);
143 147
 
144 148
         getTextPane().addTextPaneListener(this);
@@ -225,10 +229,11 @@ public abstract class TextFrame extends JPanel implements com.dmdirc.interfaces.
225 229
     /**
226 230
      * Initialises the components for this frame.
227 231
      */
228
-    private void initComponents(final TextPaneFactory textPaneFactory) {
232
+    private void initComponents(final TextPaneFactory textPaneFactory,
233
+            final ColourManager colourManager) {
229 234
         setTextPane(textPaneFactory.getTextPane(this));
230 235
 
231
-        searchBar = new SwingSearchBar(this, iconManager);
236
+        searchBar = new SwingSearchBar(this, iconManager, colourManager);
232 237
         searchBar.setVisible(false);
233 238
 
234 239
         getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
@@ -523,7 +528,6 @@ public abstract class TextFrame extends JPanel implements com.dmdirc.interfaces.
523 528
      * Updates colour settings from their config values.
524 529
      */
525 530
     private void updateColours() {
526
-        final ColourManager colourManager = new ColourManager(getContainer().getConfigManager());
527 531
         getTextPane().setForeground(UIUtilities.convertColour(
528 532
                 colourManager.getColourFromString(
529 533
                         getContainer().getConfigManager().getOptionString(
@@ -560,6 +564,7 @@ public abstract class TextFrame extends JPanel implements com.dmdirc.interfaces.
560 564
         final ActiveFrameManager activeFrameManager;
561 565
         final Clipboard clipboard;
562 566
         final CommandController commandController;
567
+        final ColourManagerFactory colourManagerFactory;
563 568
 
564 569
         @Inject
565 570
         public TextFrameDependencies(
@@ -574,7 +579,8 @@ public abstract class TextFrame extends JPanel implements com.dmdirc.interfaces.
574 579
                 @GlobalConfig final AggregateConfigProvider globalConfig,
575 580
                 final ActiveFrameManager activeFrameManager,
576 581
                 final Clipboard clipboard,
577
-                final CommandController commandController) {
582
+                final CommandController commandController,
583
+                final ColourManagerFactory colourManagerFactory) {
578 584
             this.textPaneFactory = textPaneFactory;
579 585
             this.controller = controller;
580 586
             this.mainWindow = mainWindow;
@@ -587,6 +593,7 @@ public abstract class TextFrame extends JPanel implements com.dmdirc.interfaces.
587 593
             this.activeFrameManager = activeFrameManager;
588 594
             this.clipboard = clipboard;
589 595
             this.commandController = commandController;
596
+            this.colourManagerFactory = colourManagerFactory;
590 597
         }
591 598
 
592 599
     }

+ 9
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/components/inputfields/TextAreaInputField.java View File

@@ -27,6 +27,7 @@ import com.dmdirc.interfaces.config.AggregateConfigProvider;
27 27
 import com.dmdirc.interfaces.ui.InputField;
28 28
 import com.dmdirc.ui.IconManager;
29 29
 import com.dmdirc.ui.messages.ColourManager;
30
+import com.dmdirc.ui.messages.ColourManagerFactory;
30 31
 
31 32
 import java.awt.KeyboardFocusManager;
32 33
 import java.awt.event.ActionEvent;
@@ -49,6 +50,8 @@ public class TextAreaInputField extends JTextArea implements InputField,
49 50
     protected ColourPickerDialog colourPicker;
50 51
     /** Icon manager. */
51 52
     private final IconManager iconManager;
53
+    /** Colour manager. */
54
+    private final ColourManager colourManager;
52 55
     /** Global config. */
53 56
     private final AggregateConfigProvider config;
54 57
 
@@ -61,10 +64,12 @@ public class TextAreaInputField extends JTextArea implements InputField,
61 64
      * @param columns     The number of columns to use
62 65
      */
63 66
     public TextAreaInputField(final IconManager iconManager,
64
-            final AggregateConfigProvider config, final int rows, final int columns) {
67
+            final ColourManagerFactory colourManagerFactory, final AggregateConfigProvider config,
68
+            final int rows, final int columns) {
65 69
         super(rows, columns);
66 70
         this.iconManager = iconManager;
67 71
         this.config = config;
72
+        colourManager = colourManagerFactory.getColourManager(config);
68 73
         KeyboardFocusManager.getCurrentKeyboardFocusManager()
69 74
                 .addPropertyChangeListener(this);
70 75
     }
@@ -77,10 +82,12 @@ public class TextAreaInputField extends JTextArea implements InputField,
77 82
      * @param text        The text to contain initially
78 83
      */
79 84
     public TextAreaInputField(final IconManager iconManager,
85
+            final ColourManagerFactory colourManagerFactory,
80 86
             final AggregateConfigProvider config, final String text) {
81 87
         super(text);
82 88
         this.iconManager = iconManager;
83 89
         this.config = config;
90
+        colourManager = colourManagerFactory.getColourManager(config);
84 91
         KeyboardFocusManager.getCurrentKeyboardFocusManager()
85 92
                 .addPropertyChangeListener(this);
86 93
     }
@@ -99,7 +106,7 @@ public class TextAreaInputField extends JTextArea implements InputField,
99 106
     public void showColourPicker(final boolean irc, final boolean hex) {
100 107
         if (config.getOptionBool("general", "showcolourdialog")) {
101 108
             colourPicker = new ColourPickerDialog(TextAreaInputField.this,
102
-                    new ColourManager(config), iconManager, irc, hex);
109
+                    colourManager, iconManager, irc, hex);
103 110
             colourPicker.addActionListener(new ActionListener() {
104 111
                 @Override
105 112
                 public void actionPerformed(final ActionEvent actionEvent) {

+ 6
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/components/performpanel/PerformPanel.java View File

@@ -27,6 +27,7 @@ import com.dmdirc.actions.wrappers.PerformWrapper.PerformDescription;
27 27
 import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
28 28
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
29 29
 import com.dmdirc.ui.IconManager;
30
+import com.dmdirc.ui.messages.ColourManagerFactory;
30 31
 
31 32
 import java.util.Collection;
32 33
 import java.util.Collections;
@@ -71,9 +72,11 @@ public class PerformPanel extends JPanel {
71 72
      */
72 73
     public PerformPanel(
73 74
             final IconManager iconManager,
75
+            final ColourManagerFactory colourManagerFactory,
74 76
             final AggregateConfigProvider config,
75 77
             final PerformWrapper performWrapper) {
76
-        this(iconManager, config, performWrapper, Collections.<PerformDescription>emptyList());
78
+        this(iconManager, colourManagerFactory, config, performWrapper,
79
+                Collections.<PerformDescription>emptyList());
77 80
     }
78 81
 
79 82
     /**
@@ -89,6 +92,7 @@ public class PerformPanel extends JPanel {
89 92
      */
90 93
     public PerformPanel(
91 94
             final IconManager iconManager,
95
+            final ColourManagerFactory colourManagerFactory,
92 96
             final AggregateConfigProvider config,
93 97
             final PerformWrapper performWrapper,
94 98
             final Collection<PerformDescription> performs) {
@@ -99,7 +103,7 @@ public class PerformPanel extends JPanel {
99 103
             addPerform(perform);
100 104
         }
101 105
         setLayout(new MigLayout("ins 0, fill"));
102
-        performSpace = new TextAreaInputField(iconManager, config, "");
106
+        performSpace = new TextAreaInputField(iconManager, colourManagerFactory, config, "");
103 107
         add(new JScrollPane(performSpace), "grow, push");
104 108
     }
105 109
 

+ 8
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog.java View File

@@ -30,6 +30,7 @@ import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
30 30
 import com.dmdirc.addons.ui_swing.dialogs.actionsmanager.ActionsManagerDialog;
31 31
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
32 32
 import com.dmdirc.ui.IconManager;
33
+import com.dmdirc.ui.messages.ColourManagerFactory;
33 34
 
34 35
 import java.awt.Dimension;
35 36
 import java.awt.event.ActionEvent;
@@ -94,6 +95,7 @@ public class ActionEditorDialog extends StandardDialog implements ActionListener
94 95
      */
95 96
     public ActionEditorDialog(
96 97
             final IconManager iconManager,
98
+            final ColourManagerFactory colourManagerFactory,
97 99
             final AggregateConfigProvider config,
98 100
             final ActionSubstitutorFactory subsFactory,
99 101
             final ActionFactory actionFactory,
@@ -108,7 +110,7 @@ public class ActionEditorDialog extends StandardDialog implements ActionListener
108 110
         this.action = null;
109 111
         this.actionFactory = actionFactory;
110 112
 
111
-        initComponents(iconManager, config, subsFactory);
113
+        initComponents(iconManager, config, subsFactory, colourManagerFactory);
112 114
         addListeners();
113 115
         doComponents();
114 116
         layoutComponents();
@@ -128,6 +130,7 @@ public class ActionEditorDialog extends StandardDialog implements ActionListener
128 130
      */
129 131
     public ActionEditorDialog(
130 132
             final IconManager iconManager,
133
+            final ColourManagerFactory colourManagerFactory,
131 134
             final AggregateConfigProvider config,
132 135
             final ActionSubstitutorFactory subsFactory,
133 136
             final ActionFactory actionFactory,
@@ -142,7 +145,7 @@ public class ActionEditorDialog extends StandardDialog implements ActionListener
142 145
         this.action = action;
143 146
         this.actionFactory = actionFactory;
144 147
 
145
-        initComponents(iconManager, config, subsFactory);
148
+        initComponents(iconManager, config, subsFactory, colourManagerFactory);
146 149
         addListeners();
147 150
         doComponents();
148 151
         layoutComponents();
@@ -179,11 +182,12 @@ public class ActionEditorDialog extends StandardDialog implements ActionListener
179 182
 
180 183
     /** Initialises the components. */
181 184
     private void initComponents(final IconManager iconManager,
182
-            final AggregateConfigProvider config, final ActionSubstitutorFactory subsFactory) {
185
+            final AggregateConfigProvider config, final ActionSubstitutorFactory subsFactory,
186
+            final ColourManagerFactory colourManagerFactory) {
183 187
         orderButtons(new JButton(), new JButton());
184 188
         name = new ActionNamePanel(iconManager, "", group);
185 189
         triggers = new ActionTriggersPanel(iconManager);
186
-        response = new ActionResponsePanel(iconManager, config);
190
+        response = new ActionResponsePanel(iconManager, colourManagerFactory, config);
187 191
         conditions = new ActionConditionsPanel(iconManager);
188 192
         substitutions = new ActionSubstitutionsPanel(subsFactory);
189 193
         advanced = new ActionAdvancedPanel();

+ 9
- 5
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialogFactory.java View File

@@ -29,6 +29,7 @@ import com.dmdirc.actions.ActionSubstitutorFactory;
29 29
 import com.dmdirc.addons.ui_swing.dialogs.actionsmanager.ActionsManagerDialog;
30 30
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
31 31
 import com.dmdirc.ui.IconManager;
32
+import com.dmdirc.ui.messages.ColourManagerFactory;
32 33
 
33 34
 import javax.inject.Inject;
34 35
 import javax.inject.Singleton;
@@ -43,31 +44,34 @@ public class ActionEditorDialogFactory {
43 44
     private final AggregateConfigProvider config;
44 45
     private final ActionSubstitutorFactory subsFactory;
45 46
     private final ActionFactory actionFactory;
47
+    private final ColourManagerFactory colourManagerFactory;
46 48
 
47 49
     @Inject
48 50
     public ActionEditorDialogFactory(
49 51
             @ClientModule.GlobalConfig final IconManager iconManager,
50 52
             @ClientModule.GlobalConfig final AggregateConfigProvider config,
51 53
             final ActionSubstitutorFactory subsFactory,
52
-            final ActionFactory actionFactory) {
54
+            final ActionFactory actionFactory,
55
+            final ColourManagerFactory colourManagerFactory) {
53 56
         this.iconManager = iconManager;
54 57
         this.config = config;
55 58
         this.subsFactory = subsFactory;
56 59
         this.actionFactory = actionFactory;
60
+        this.colourManagerFactory = colourManagerFactory;
57 61
     }
58 62
 
59 63
     public ActionEditorDialog getActionEditorDialog(
60 64
             final ActionsManagerDialog parentWindow,
61 65
             final String group) {
62
-        return new ActionEditorDialog(iconManager, config, subsFactory, actionFactory,
63
-                parentWindow, group);
66
+        return new ActionEditorDialog(iconManager, colourManagerFactory, config, subsFactory,
67
+                actionFactory, parentWindow, group);
64 68
     }
65 69
 
66 70
     public ActionEditorDialog getActionEditorDialog(
67 71
             final ActionsManagerDialog parentWindow,
68 72
             final Action action) {
69
-        return new ActionEditorDialog(iconManager, config, subsFactory, actionFactory,
70
-                parentWindow, action);
73
+        return new ActionEditorDialog(iconManager, colourManagerFactory, config, subsFactory,
74
+                actionFactory, parentWindow, action);
71 75
     }
72 76
 
73 77
 }

+ 7
- 11
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.java View File

@@ -26,6 +26,7 @@ import com.dmdirc.addons.ui_swing.UIUtilities;
26 26
 import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
27 27
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
28 28
 import com.dmdirc.ui.IconManager;
29
+import com.dmdirc.ui.messages.ColourManagerFactory;
29 30
 
30 31
 import java.util.TreeSet;
31 32
 
@@ -60,21 +61,16 @@ public class ActionResponsePanel extends JPanel {
60 61
      * @param iconManager Icon manager
61 62
      * @param config      Config
62 63
      */
63
-    public ActionResponsePanel(final IconManager iconManager, final AggregateConfigProvider config) {
64
-
65
-
66
-        initComponents(iconManager, config);
64
+    public ActionResponsePanel(final IconManager iconManager,
65
+            final ColourManagerFactory colourManagerFactory, final AggregateConfigProvider config) {
66
+        initComponents(iconManager, colourManagerFactory, config);
67 67
         addListeners();
68 68
         layoutComponents();
69 69
     }
70 70
 
71
-    /**
72
-     * Initialises the components.
73
-     *
74
-     * @param controller Swing controller
75
-     */
76
-    private void initComponents(final IconManager iconManager, final AggregateConfigProvider config) {
77
-        response = new TextAreaInputField(iconManager, config, "");
71
+    private void initComponents(final IconManager iconManager,
72
+            final ColourManagerFactory colourManagerFactory, final AggregateConfigProvider config) {
73
+        response = new TextAreaInputField(iconManager, colourManagerFactory, config, "");
78 74
         scrollPane = new JScrollPane(response);
79 75
         response.setRows(4);
80 76
         formatter = new JComboBox<>(new DefaultComboBoxModel<String>());

+ 7
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelSettingsDialog.java View File

@@ -36,6 +36,7 @@ import com.dmdirc.interfaces.config.ConfigProvider;
36 36
 import com.dmdirc.interfaces.config.IdentityFactory;
37 37
 import com.dmdirc.interfaces.ui.InputWindow;
38 38
 import com.dmdirc.plugins.ServiceManager;
39
+import com.dmdirc.ui.messages.ColourManagerFactory;
39 40
 
40 41
 import java.awt.Window;
41 42
 import java.awt.datatransfer.Clipboard;
@@ -88,6 +89,8 @@ public class ChannelSettingsDialog extends StandardDialog implements ActionListe
88 89
     private final CommandController commandController;
89 90
     /** The event bus to post errors to. */
90 91
     private final DMDircMBassador eventBus;
92
+    /** Colour manager factory. */
93
+    private final ColourManagerFactory colourManagerFactory;
91 94
 
92 95
     /**
93 96
      * Creates a new instance of ChannelSettingsDialog.
@@ -115,7 +118,8 @@ public class ChannelSettingsDialog extends StandardDialog implements ActionListe
115 118
             final Window parentWindow,
116 119
             final Clipboard clipboard,
117 120
             final CommandController commandController,
118
-            final DMDircMBassador eventBus) {
121
+            final DMDircMBassador eventBus,
122
+            final ColourManagerFactory colourManagerFactory) {
119 123
         super(parentWindow, ModalityType.MODELESS);
120 124
 
121 125
         this.userConfig = checkNotNull(userConfig);
@@ -126,6 +130,7 @@ public class ChannelSettingsDialog extends StandardDialog implements ActionListe
126 130
         this.clipboard = clipboard;
127 131
         this.commandController = checkNotNull(commandController);
128 132
         this.eventBus = eventBus;
133
+        this.colourManagerFactory = colourManagerFactory;
129 134
 
130 135
         identity = identityFactory.createChannelConfig(channel.getConnection().getNetwork(),
131 136
                 channel.getChannelInfo().getName());
@@ -167,7 +172,7 @@ public class ChannelSettingsDialog extends StandardDialog implements ActionListe
167 172
     private void initTopicTab() {
168 173
         topicModesPane = new TopicPane(channel, channel.getIconManager(),
169 174
                 commandController, serviceManager,
170
-                this, channelWindow, clipboard, eventBus);
175
+                this, channelWindow, clipboard, eventBus, colourManagerFactory);
171 176
         tabbedPane.addTab("Topic", topicModesPane);
172 177
     }
173 178
 

+ 8
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicDisplayPane.java View File

@@ -35,6 +35,7 @@ import com.dmdirc.interfaces.config.AggregateConfigProvider;
35 35
 import com.dmdirc.interfaces.ui.InputWindow;
36 36
 import com.dmdirc.plugins.ServiceManager;
37 37
 import com.dmdirc.ui.IconManager;
38
+import com.dmdirc.ui.messages.ColourManagerFactory;
38 39
 
39 40
 import com.google.common.base.Optional;
40 41
 
@@ -94,7 +95,8 @@ public class TopicDisplayPane extends JPanel implements DocumentListener {
94 95
     public TopicDisplayPane(final Channel channel, final IconManager iconManager,
95 96
             final ServiceManager serviceManager, final ChannelSettingsDialog parent,
96 97
             final InputWindow channelWindow, final Clipboard clipboard,
97
-            final CommandController commandController, final DMDircMBassador eventBus) {
98
+            final CommandController commandController, final DMDircMBassador eventBus,
99
+            final ColourManagerFactory colourManagerFactory) {
98 100
         this.clipboard = clipboard;
99 101
         this.channel = channel;
100 102
         this.parent = parent;
@@ -102,7 +104,8 @@ public class TopicDisplayPane extends JPanel implements DocumentListener {
102 104
         this.channelWindow = channelWindow;
103 105
         this.eventBus = eventBus;
104 106
 
105
-        initComponents(iconManager, channel.getConfigManager(), serviceManager, commandController);
107
+        initComponents(iconManager, channel.getConfigManager(), serviceManager, commandController,
108
+                colourManagerFactory);
106 109
         addListeners();
107 110
         layoutComponents();
108 111
 
@@ -113,9 +116,10 @@ public class TopicDisplayPane extends JPanel implements DocumentListener {
113 116
             final IconManager iconManager,
114 117
             final AggregateConfigProvider config,
115 118
             final ServiceManager serviceManager,
116
-            final CommandController commandController) {
119
+            final CommandController commandController,
120
+            final ColourManagerFactory colourManagerFactory) {
117 121
         topicLengthLabel = new JLabel();
118
-        topicText = new TextAreaInputField(iconManager, config, 100, 4);
122
+        topicText = new TextAreaInputField(iconManager, colourManagerFactory, config, 100, 4);
119 123
         topicWho = new TextLabel();
120 124
         topicWho.setOpaque(false);
121 125
 

+ 7
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java View File

@@ -29,6 +29,7 @@ import com.dmdirc.interfaces.CommandController;
29 29
 import com.dmdirc.interfaces.ui.InputWindow;
30 30
 import com.dmdirc.plugins.ServiceManager;
31 31
 import com.dmdirc.ui.IconManager;
32
+import com.dmdirc.ui.messages.ColourManagerFactory;
32 33
 
33 34
 import com.google.common.base.Optional;
34 35
 
@@ -74,7 +75,8 @@ public class TopicPane extends JPanel implements ActionListener {
74 75
             final CommandController commandController,
75 76
             final ServiceManager serviceManager, final ChannelSettingsDialog parent,
76 77
             final InputWindow channelWindow, final Clipboard clipboard,
77
-            final DMDircMBassador eventBus) {
78
+            final DMDircMBassador eventBus,
79
+            final ColourManagerFactory colourManagerFactory) {
78 80
         setOpaque(UIUtilities.getTabbedPaneOpaque());
79 81
         this.channel = channel;
80 82
         this.parent = parent;
@@ -84,7 +86,7 @@ public class TopicPane extends JPanel implements ActionListener {
84 86
         setVisible(false);
85 87
 
86 88
         removeAll();
87
-        initTopicsPanel(iconManager, serviceManager, commandController, eventBus);
89
+        initTopicsPanel(iconManager, serviceManager, commandController, eventBus, colourManagerFactory);
88 90
         layoutComponents();
89 91
 
90 92
         topicHistoryPane.addActionListener(this);
@@ -96,9 +98,10 @@ public class TopicPane extends JPanel implements ActionListener {
96 98
             final IconManager iconManager,
97 99
             final ServiceManager serviceManager,
98 100
             final CommandController commandController,
99
-            final DMDircMBassador eventBus) {
101
+            final DMDircMBassador eventBus,
102
+            final ColourManagerFactory colourManagerFactory) {
100 103
         topicDisplayPane = new TopicDisplayPane(channel, iconManager, serviceManager, parent,
101
-                channelWindow, clipboard, commandController, eventBus);
104
+                channelWindow, clipboard, commandController, eventBus, colourManagerFactory);
102 105
         topicHistoryPane = new TopicHistoryPane(channel);
103 106
     }
104 107
 

+ 7
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/paste/PasteDialog.java View File

@@ -33,6 +33,7 @@ import com.dmdirc.interfaces.CommandController;
33 33
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
34 34
 import com.dmdirc.plugins.PluginManager;
35 35
 import com.dmdirc.ui.IconManager;
36
+import com.dmdirc.ui.messages.ColourManagerFactory;
36 37
 
37 38
 import java.awt.Window;
38 39
 import java.awt.event.ActionEvent;
@@ -99,7 +100,8 @@ public final class PasteDialog extends StandardDialog implements ActionListener,
99 100
             final DMDircMBassador eventBus,
100 101
             final InputTextFrame newParent,
101 102
             final String text,
102
-            final Window parentWindow) {
103
+            final Window parentWindow,
104
+            final ColourManagerFactory colourManagerFactory) {
103 105
         super(parentWindow, ModalityType.MODELESS);
104 106
 
105 107
         parent = newParent;
@@ -109,7 +111,7 @@ public final class PasteDialog extends StandardDialog implements ActionListener,
109 111
         this.pluginManager = pluginManager;
110 112
         this.commandController = commandController;
111 113
 
112
-        initComponents(eventBus, text);
114
+        initComponents(eventBus, text, colourManagerFactory);
113 115
         initListeners();
114 116
 
115 117
         setFocusTraversalPolicy(new PasteDialogFocusTraversalPolicy(
@@ -125,9 +127,10 @@ public final class PasteDialog extends StandardDialog implements ActionListener,
125 127
      *
126 128
      * @param text text to show in the dialog
127 129
      */
128
-    private void initComponents(final DMDircMBassador eventBus, final String text) {
130
+    private void initComponents(final DMDircMBassador eventBus, final String text,
131
+            final ColourManagerFactory colourManagerFactory) {
129 132
         scrollPane = new JScrollPane();
130
-        textField = new TextAreaInputField(iconManager, config, text);
133
+        textField = new TextAreaInputField(iconManager, colourManagerFactory, config, text);
131 134
         editButton = new JButton("Edit");
132 135
         infoLabel = new TextLabel();
133 136
 

+ 6
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/paste/PasteDialogFactory.java View File

@@ -29,6 +29,7 @@ import com.dmdirc.interfaces.CommandController;
29 29
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
30 30
 import com.dmdirc.plugins.PluginManager;
31 31
 import com.dmdirc.ui.IconManager;
32
+import com.dmdirc.ui.messages.ColourManagerFactory;
32 33
 
33 34
 import java.awt.Window;
34 35
 
@@ -46,6 +47,7 @@ public class PasteDialogFactory {
46 47
     private final PluginManager pluginManager;
47 48
     private final CommandController commandController;
48 49
     private final DMDircMBassador eventBus;
50
+    private final ColourManagerFactory colourManagerFactory;
49 51
 
50 52
     @Inject
51 53
     public PasteDialogFactory(
@@ -53,18 +55,20 @@ public class PasteDialogFactory {
53 55
             @ClientModule.GlobalConfig final AggregateConfigProvider config,
54 56
             final PluginManager pluginManager,
55 57
             final CommandController commandController,
56
-            final DMDircMBassador eventBus) {
58
+            final DMDircMBassador eventBus,
59
+            final ColourManagerFactory colourManagerFactory) {
57 60
         this.iconManager = iconManager;
58 61
         this.config = config;
59 62
         this.pluginManager = pluginManager;
60 63
         this.commandController = commandController;
61 64
         this.eventBus = eventBus;
65
+        this.colourManagerFactory = colourManagerFactory;
62 66
     }
63 67
 
64 68
     public PasteDialog getPasteDialog(final InputTextFrame newParent, final String text,
65 69
             final Window parentWindow) {
66 70
         return new PasteDialog(iconManager, config, pluginManager, commandController, eventBus,
67
-                newParent, text, parentWindow);
71
+                newParent, text, parentWindow, colourManagerFactory);
68 72
     }
69 73
 
70 74
 }

+ 6
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/serversetting/PerformTab.java View File

@@ -31,6 +31,7 @@ import com.dmdirc.addons.ui_swing.components.renderers.PerformRenderer;
31 31
 import com.dmdirc.interfaces.Connection;
32 32
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
33 33
 import com.dmdirc.ui.IconManager;
34
+import com.dmdirc.ui.messages.ColourManagerFactory;
34 35
 
35 36
 import java.awt.event.ActionEvent;
36 37
 import java.awt.event.ActionListener;
@@ -69,6 +70,7 @@ public class PerformTab extends JPanel implements ActionListener {
69 70
      */
70 71
     public PerformTab(
71 72
             final IconManager iconManager,
73
+            final ColourManagerFactory colourManagerFactory,
72 74
             final AggregateConfigProvider config,
73 75
             final PerformWrapper wrapper,
74 76
             final Connection connection) {
@@ -77,7 +79,7 @@ public class PerformTab extends JPanel implements ActionListener {
77 79
         this.connection = connection;
78 80
 
79 81
         setOpaque(UIUtilities.getTabbedPaneOpaque());
80
-        initComponents(iconManager, config);
82
+        initComponents(iconManager, colourManagerFactory, config);
81 83
         addListeners();
82 84
     }
83 85
 
@@ -88,6 +90,7 @@ public class PerformTab extends JPanel implements ActionListener {
88 90
      * @param config      Config to read settings from
89 91
      */
90 92
     private void initComponents(final IconManager iconManager,
93
+            final ColourManagerFactory colourManagerFactory,
91 94
             final AggregateConfigProvider config) {
92 95
         setLayout(new MigLayout("fill"));
93 96
 
@@ -119,7 +122,8 @@ public class PerformTab extends JPanel implements ActionListener {
119 122
         performList.add(serverPerform);
120 123
         performList.add(serverProfilePerform);
121 124
 
122
-        performPanel = new PerformPanel(iconManager, config, wrapper, performList);
125
+        performPanel = new PerformPanel(iconManager, colourManagerFactory, config, wrapper,
126
+                performList);
123 127
         performPanel.switchPerform(networkPerform);
124 128
         add(performPanel, "grow, push");
125 129
 

+ 9
- 5
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/serversetting/ServerSettingsDialog.java View File

@@ -34,6 +34,7 @@ import com.dmdirc.config.prefs.PreferencesManager;
34 34
 import com.dmdirc.interfaces.Connection;
35 35
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
36 36
 import com.dmdirc.interfaces.config.ConfigProvider;
37
+import com.dmdirc.ui.messages.ColourManagerFactory;
37 38
 
38 39
 import java.awt.Window;
39 40
 import java.awt.event.ActionEvent;
@@ -83,7 +84,8 @@ public class ServerSettingsDialog extends StandardDialog implements ActionListen
83 84
             final PrefsComponentFactory compFactory,
84 85
             final PerformWrapper performWrapper,
85 86
             final Connection connection,
86
-            final Window parentWindow) {
87
+            final Window parentWindow,
88
+            final ColourManagerFactory colourManagerFactory) {
87 89
         super(parentWindow, ModalityType.MODELESS);
88 90
         this.connection = connection;
89 91
         this.performWrapper = performWrapper;
@@ -92,7 +94,8 @@ public class ServerSettingsDialog extends StandardDialog implements ActionListen
92 94
         setTitle("Server settings");
93 95
         setResizable(false);
94 96
 
95
-        initComponents(parentWindow, connection.getWindowModel().getConfigManager(), compFactory);
97
+        initComponents(parentWindow, connection.getWindowModel().getConfigManager(), compFactory,
98
+                colourManagerFactory);
96 99
         initListeners();
97 100
     }
98 101
 
@@ -106,7 +109,8 @@ public class ServerSettingsDialog extends StandardDialog implements ActionListen
106 109
     private void initComponents(
107 110
             final Window parentWindow,
108 111
             final AggregateConfigProvider config,
109
-            final PrefsComponentFactory compFactory) {
112
+            final PrefsComponentFactory compFactory,
113
+            final ColourManagerFactory colourManagerFactory) {
110 114
         orderButtons(new JButton(), new JButton());
111 115
 
112 116
         tabbedPane = new JTabbedPane();
@@ -116,8 +120,8 @@ public class ServerSettingsDialog extends StandardDialog implements ActionListen
116 120
         ignoreList = new IgnoreListPanel(connection.getWindowModel().getIconManager(),
117 121
                 connection, parentWindow);
118 122
 
119
-        performPanel = new PerformTab(connection.getWindowModel().getIconManager(), config,
120
-                performWrapper, connection);
123
+        performPanel = new PerformTab(connection.getWindowModel().getIconManager(),
124
+                colourManagerFactory, config, performWrapper, connection);
121 125
 
122 126
         settingsPanel = new SettingsPanel(connection.getWindowModel().getIconManager(), compFactory,
123 127
                 "These settings are specific to this network, any settings specified here will "

+ 1
- 1
ui_swing/src/com/dmdirc/addons/ui_swing/framemanager/tree/TreeViewTreeCellRenderer.java View File

@@ -77,7 +77,7 @@ public class TreeViewTreeCellRenderer implements TreeCellRenderer,
77 77
         this.config = config;
78 78
         this.colourManager = colourManager;
79 79
 
80
-        styliser = new Styliser(null, config);
80
+        styliser = new Styliser(null, config, colourManager);
81 81
 
82 82
         setColours();
83 83
 

+ 8
- 5
ui_swing/src/com/dmdirc/addons/ui_swing/injection/DialogModule.java View File

@@ -55,6 +55,7 @@ import com.dmdirc.plugins.ServiceManager;
55 55
 import com.dmdirc.ui.core.aliases.CoreAliasDialogModel;
56 56
 import com.dmdirc.ui.core.feedback.CoreFeedbackDialogModel;
57 57
 import com.dmdirc.ui.core.newserver.CoreNewServerDialogModel;
58
+import com.dmdirc.ui.messages.ColourManagerFactory;
58 59
 
59 60
 import java.awt.Window;
60 61
 import java.awt.datatransfer.Clipboard;
@@ -156,12 +157,13 @@ public class DialogModule {
156 157
             final PreferencesManager preferencesManager,
157 158
             final PrefsComponentFactory compFactory,
158 159
             final PerformWrapper performWrapper,
159
-            @MainWindow final Window parentWindow) {
160
+            @MainWindow final Window parentWindow,
161
+            final ColourManagerFactory colourManagerFactory) {
160 162
         return new KeyedDialogProvider<Connection, ServerSettingsDialog>() {
161 163
             @Override
162 164
             protected ServerSettingsDialog getInstance(final Connection key) {
163 165
                 return new ServerSettingsDialog(preferencesManager, compFactory, performWrapper,
164
-                        key, parentWindow);
166
+                        key, parentWindow, colourManagerFactory);
165 167
             }
166 168
         };
167 169
     }
@@ -178,13 +180,14 @@ public class DialogModule {
178 180
             @MainWindow final Window parentWindow,
179 181
             final Clipboard clipboard,
180 182
             final CommandController commandController,
181
-            final DMDircMBassador eventBus) {
183
+            final DMDircMBassador eventBus,
184
+            final ColourManagerFactory colourManagerFactory) {
182 185
         return new KeyedDialogProvider<Channel, ChannelSettingsDialog>() {
183 186
             @Override
184 187
             protected ChannelSettingsDialog getInstance(final Channel key) {
185 188
                 return new ChannelSettingsDialog(identityFactory, windowFactory,
186
-                        userConfig, serviceManager, preferencesManager,
187
-                        compFactory, key, parentWindow, clipboard, commandController, eventBus);
189
+                        userConfig, serviceManager, preferencesManager, compFactory, key,
190
+                        parentWindow, clipboard, commandController, eventBus, colourManagerFactory);
188 191
             }
189 192
         };
190 193
     }

Loading…
Cancel
Save