Browse Source

Rewrite the entire UI to pass extra deps in.

Conflicts:
        src/com/dmdirc/addons/ui_swing/components/TopicBar.java
        src/com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.java
        src/com/dmdirc/addons/ui_swing/components/frames/TextFrame.java
        src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelSettingsDialog.java
        src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicDisplayPane.java
        src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java
        src/com/dmdirc/addons/ui_swing/injection/DialogModule.java

Change-Id: Iec6278e7aa84c74fa8a6fea1af2d021f3835b241
Depends-On: Ib0cbe91bec51db7e66d860d65840e784f880e53d
Reviewed-on: http://gerrit.dmdirc.com/3391
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
changes/91/3391/4
Chris Smith 10 years ago
parent
commit
25dce6a4d5

+ 5
- 1
src/com/dmdirc/addons/ui_swing/components/TopicBar.java View File

33
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
33
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
34
 import com.dmdirc.addons.ui_swing.components.inputfields.TextPaneInputField;
34
 import com.dmdirc.addons.ui_swing.components.inputfields.TextPaneInputField;
35
 import com.dmdirc.addons.ui_swing.components.text.WrapEditorKit;
35
 import com.dmdirc.addons.ui_swing.components.text.WrapEditorKit;
36
+import com.dmdirc.interfaces.CommandController;
36
 import com.dmdirc.interfaces.TopicChangeListener;
37
 import com.dmdirc.interfaces.TopicChangeListener;
37
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
38
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
38
 import com.dmdirc.interfaces.config.ConfigChangeListener;
39
 import com.dmdirc.interfaces.config.ConfigChangeListener;
118
      * @param colourManager The colour manager to use for colour input.
119
      * @param colourManager The colour manager to use for colour input.
119
      * @param pluginManager The plugin manager to use for plugin information.
120
      * @param pluginManager The plugin manager to use for plugin information.
120
      * @param clipboard     The clipboard to copy and paste from
121
      * @param clipboard     The clipboard to copy and paste from
122
+     * @param commandController The controller to use for command information.
121
      * @param channel       The channel that this topic bar is for.
123
      * @param channel       The channel that this topic bar is for.
122
      * @param window        The window this topic bar is for.
124
      * @param window        The window this topic bar is for.
123
      * @param iconManager   The icon manager to use for this bar's icons.
125
      * @param iconManager   The icon manager to use for this bar's icons.
129
             final ColourManager colourManager,
131
             final ColourManager colourManager,
130
             final PluginManager pluginManager,
132
             final PluginManager pluginManager,
131
             final Clipboard clipboard,
133
             final Clipboard clipboard,
134
+            final CommandController commandController,
132
             @Unbound final Channel channel,
135
             @Unbound final Channel channel,
133
             @Unbound final ChannelFrame window,
136
             @Unbound final ChannelFrame window,
134
             @Unbound final IconManager iconManager) {
137
             @Unbound final IconManager iconManager) {
155
                 iconManager.getIcon("close-active"));
158
                 iconManager.getIcon("close-active"));
156
 
159
 
157
         final SwingInputHandler handler = new SwingInputHandler(
160
         final SwingInputHandler handler = new SwingInputHandler(
158
-                pluginManager, topicText, channel.getCommandParser(), channel);
161
+                pluginManager, topicText, commandController, channel.getCommandParser(),
162
+                channel, channel.getEventBus());
159
         handler.setTypes(true, false, true, false);
163
         handler.setTypes(true, false, true, false);
160
         handler.setTabCompleter(channel.getTabCompleter());
164
         handler.setTabCompleter(channel.getTabCompleter());
161
 
165
 

+ 11
- 2
src/com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.java View File

34
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputField;
34
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputField;
35
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
35
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
36
 import com.dmdirc.addons.ui_swing.dialogs.paste.PasteDialogFactory;
36
 import com.dmdirc.addons.ui_swing.dialogs.paste.PasteDialogFactory;
37
+import com.dmdirc.interfaces.CommandController;
37
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
38
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
38
 import com.dmdirc.interfaces.ui.InputWindow;
39
 import com.dmdirc.interfaces.ui.InputWindow;
39
 import com.dmdirc.logger.ErrorLevel;
40
 import com.dmdirc.logger.ErrorLevel;
42
 import com.dmdirc.ui.input.InputHandler;
43
 import com.dmdirc.ui.input.InputHandler;
43
 import com.dmdirc.ui.messages.ColourManager;
44
 import com.dmdirc.ui.messages.ColourManager;
44
 
45
 
46
+import com.google.common.eventbus.EventBus;
47
+
45
 import java.awt.BorderLayout;
48
 import java.awt.BorderLayout;
46
 import java.awt.Point;
49
 import java.awt.Point;
47
 import java.awt.Toolkit;
50
 import java.awt.Toolkit;
94
     private final PasteDialogFactory pasteDialogFactory;
97
     private final PasteDialogFactory pasteDialogFactory;
95
     /** Clipboard to use for copying and pasting. */
98
     /** Clipboard to use for copying and pasting. */
96
     private final Clipboard clipboard;
99
     private final Clipboard clipboard;
100
+    /** The controller to use to retrieve command information. */
101
+    private final CommandController commandController;
102
+    /** The bus to despatch input events on. */
103
+    private final EventBus eventBus;
97
 
104
 
98
     /**
105
     /**
99
      * Creates a new instance of InputFrame.
106
      * Creates a new instance of InputFrame.
114
         this.pluginManager = deps.pluginManager;
121
         this.pluginManager = deps.pluginManager;
115
         this.pasteDialogFactory = deps.pasteDialog;
122
         this.pasteDialogFactory = deps.pasteDialog;
116
         this.clipboard = deps.clipboard;
123
         this.clipboard = deps.clipboard;
124
+        this.commandController = deps.commandController;
125
+        this.eventBus = deps.eventBus;
117
 
126
 
118
         initComponents(inputFieldProvider);
127
         initComponents(inputFieldProvider);
119
 
128
 
156
      */
165
      */
157
     private void initComponents(final Provider<SwingInputField> inputFieldProvider) {
166
     private void initComponents(final Provider<SwingInputField> inputFieldProvider) {
158
         inputField = inputFieldProvider.get();
167
         inputField = inputFieldProvider.get();
159
-        inputHandler = new SwingInputHandler(pluginManager, inputField,
160
-                getContainer().getCommandParser(), getContainer());
168
+        inputHandler = new SwingInputHandler(pluginManager, inputField, commandController,
169
+                getContainer().getCommandParser(), getContainer(), eventBus);
161
         inputHandler.addValidationListener(inputField);
170
         inputHandler.addValidationListener(inputField);
162
         inputHandler.setTabCompleter(((WritableFrameContainer) frameParent).
171
         inputHandler.setTabCompleter(((WritableFrameContainer) frameParent).
163
                 getTabCompleter());
172
                 getTabCompleter());

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

55
 import com.dmdirc.events.LinkChannelClickedEvent;
55
 import com.dmdirc.events.LinkChannelClickedEvent;
56
 import com.dmdirc.events.LinkNicknameClickedEvent;
56
 import com.dmdirc.events.LinkNicknameClickedEvent;
57
 import com.dmdirc.events.LinkUrlClickedEvent;
57
 import com.dmdirc.events.LinkUrlClickedEvent;
58
+import com.dmdirc.interfaces.CommandController;
58
 import com.dmdirc.interfaces.FrameCloseListener;
59
 import com.dmdirc.interfaces.FrameCloseListener;
59
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
60
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
60
 import com.dmdirc.interfaces.config.ConfigChangeListener;
61
 import com.dmdirc.interfaces.config.ConfigChangeListener;
545
         final IconManager iconManager;
546
         final IconManager iconManager;
546
         final ActiveFrameManager activeFrameManager;
547
         final ActiveFrameManager activeFrameManager;
547
         final Clipboard clipboard;
548
         final Clipboard clipboard;
549
+        final CommandController commandController;
548
 
550
 
549
         @Inject
551
         @Inject
550
         public TextFrameDependencies(
552
         public TextFrameDependencies(
558
                 @GlobalConfig final IconManager iconManager,
560
                 @GlobalConfig final IconManager iconManager,
559
                 @GlobalConfig final AggregateConfigProvider globalConfig,
561
                 @GlobalConfig final AggregateConfigProvider globalConfig,
560
                 final ActiveFrameManager activeFrameManager,
562
                 final ActiveFrameManager activeFrameManager,
561
-                final Clipboard clipboard) {
563
+                final Clipboard clipboard,
564
+                final CommandController commandController) {
562
             this.textPaneFactory = textPaneFactory;
565
             this.textPaneFactory = textPaneFactory;
563
             this.controller = controller;
566
             this.controller = controller;
564
             this.mainFrame = mainFrame;
567
             this.mainFrame = mainFrame;
570
             this.iconManager = iconManager;
573
             this.iconManager = iconManager;
571
             this.activeFrameManager = activeFrameManager;
574
             this.activeFrameManager = activeFrameManager;
572
             this.clipboard = clipboard;
575
             this.clipboard = clipboard;
576
+            this.commandController = commandController;
573
         }
577
         }
574
 
578
 
575
     }
579
     }

+ 13
- 6
src/com/dmdirc/addons/ui_swing/components/inputfields/SwingInputHandler.java View File

27
 import com.dmdirc.addons.ui_swing.UIUtilities;
27
 import com.dmdirc.addons.ui_swing.UIUtilities;
28
 import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
28
 import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
29
 import com.dmdirc.commandparser.parsers.CommandParser;
29
 import com.dmdirc.commandparser.parsers.CommandParser;
30
+import com.dmdirc.interfaces.CommandController;
30
 import com.dmdirc.interfaces.ui.InputField;
31
 import com.dmdirc.interfaces.ui.InputField;
31
 import com.dmdirc.logger.ErrorLevel;
32
 import com.dmdirc.logger.ErrorLevel;
32
 import com.dmdirc.logger.Logger;
33
 import com.dmdirc.logger.Logger;
33
 import com.dmdirc.plugins.ServiceManager;
34
 import com.dmdirc.plugins.ServiceManager;
34
 import com.dmdirc.ui.input.InputHandler;
35
 import com.dmdirc.ui.input.InputHandler;
35
 
36
 
37
+import com.google.common.eventbus.EventBus;
38
+
36
 import java.awt.event.ActionEvent;
39
 import java.awt.event.ActionEvent;
37
 import java.awt.event.KeyEvent;
40
 import java.awt.event.KeyEvent;
38
 import java.awt.event.KeyListener;
41
 import java.awt.event.KeyListener;
51
     /**
54
     /**
52
      * Creates a new instance of InputHandler. Adds listeners to the target that we need to operate.
55
      * Creates a new instance of InputHandler. Adds listeners to the target that we need to operate.
53
      *
56
      *
54
-     * @param serviceManager Manager to use to look up tab completion services.
55
-     * @param target         The text field this input handler is dealing with.
56
-     * @param commandParser  The command parser to use for this text field.
57
-     * @param parentWindow   The window that owns this input handler
57
+     * @param serviceManager    Manager to use to look up tab completion services.
58
+     * @param target            The text field this input handler is dealing with.
59
+     * @param commandController The controller to use to retrieve command information.
60
+     * @param commandParser     The command parser to use for this text field.
61
+     * @param parentWindow      The window that owns this input handler
62
+     * @param eventBus          The event bus to use to despatch input events.
58
      */
63
      */
59
     public SwingInputHandler(
64
     public SwingInputHandler(
60
             final ServiceManager serviceManager,
65
             final ServiceManager serviceManager,
61
             final InputField target,
66
             final InputField target,
67
+            final CommandController commandController,
62
             final CommandParser commandParser,
68
             final CommandParser commandParser,
63
-            final WritableFrameContainer parentWindow) {
64
-        super(serviceManager, target, commandParser, parentWindow);
69
+            final WritableFrameContainer parentWindow,
70
+            final EventBus eventBus) {
71
+        super(serviceManager, target, commandController, commandParser, parentWindow, eventBus);
65
     }
72
     }
66
 
73
 
67
     @Override
74
     @Override

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

31
 import com.dmdirc.addons.ui_swing.components.modes.ChannelModesPane;
31
 import com.dmdirc.addons.ui_swing.components.modes.ChannelModesPane;
32
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
32
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
33
 import com.dmdirc.config.prefs.PreferencesManager;
33
 import com.dmdirc.config.prefs.PreferencesManager;
34
+import com.dmdirc.interfaces.CommandController;
34
 import com.dmdirc.interfaces.config.ConfigProvider;
35
 import com.dmdirc.interfaces.config.ConfigProvider;
35
 import com.dmdirc.interfaces.config.IdentityFactory;
36
 import com.dmdirc.interfaces.config.IdentityFactory;
36
 import com.dmdirc.interfaces.ui.InputWindow;
37
 import com.dmdirc.interfaces.ui.InputWindow;
82
     private final PrefsComponentFactory compFactory;
83
     private final PrefsComponentFactory compFactory;
83
     /** Clipboard to copy and paste from. */
84
     /** Clipboard to copy and paste from. */
84
     private final Clipboard clipboard;
85
     private final Clipboard clipboard;
86
+    /** The controller to use to retrieve command information. */
87
+    private final CommandController commandController;
85
 
88
 
86
     /**
89
     /**
87
      * Creates a new instance of ChannelSettingsDialog.
90
      * Creates a new instance of ChannelSettingsDialog.
95
      * @param channel            The channel object that we're editing settings for
98
      * @param channel            The channel object that we're editing settings for
96
      * @param parentWindow       Parent window
99
      * @param parentWindow       Parent window
97
      * @param clipboard          Clipboard to copy and paste from
100
      * @param clipboard          Clipboard to copy and paste from
101
+     * @param commandController  The controller to use to retrieve command information.
98
      */
102
      */
99
     public ChannelSettingsDialog(
103
     public ChannelSettingsDialog(
100
             final IdentityFactory identityFactory,
104
             final IdentityFactory identityFactory,
105
             final PrefsComponentFactory compFactory,
109
             final PrefsComponentFactory compFactory,
106
             final Channel channel,
110
             final Channel channel,
107
             final MainFrame parentWindow,
111
             final MainFrame parentWindow,
108
-            final Clipboard clipboard) {
112
+            final Clipboard clipboard,
113
+            final CommandController commandController) {
109
         super(parentWindow, ModalityType.MODELESS);
114
         super(parentWindow, ModalityType.MODELESS);
110
 
115
 
111
         this.userConfig = checkNotNull(userConfig);
116
         this.userConfig = checkNotNull(userConfig);
114
         this.compFactory = checkNotNull(compFactory);
119
         this.compFactory = checkNotNull(compFactory);
115
         this.channel = checkNotNull(channel);
120
         this.channel = checkNotNull(channel);
116
         this.clipboard = clipboard;
121
         this.clipboard = clipboard;
122
+        this.commandController = checkNotNull(commandController);
117
 
123
 
118
         this.identity = identityFactory.createChannelConfig(channel.getConnection().getNetwork(),
124
         this.identity = identityFactory.createChannelConfig(channel.getConnection().getNetwork(),
119
                 channel.getChannelInfo().getName());
125
                 channel.getChannelInfo().getName());
153
 
159
 
154
     /** Initialises the Topic tab. */
160
     /** Initialises the Topic tab. */
155
     private void initTopicTab() {
161
     private void initTopicTab() {
156
-        topicModesPane = new TopicPane(channel, channel.getIconManager(), serviceManager,
162
+        topicModesPane = new TopicPane(channel, channel.getIconManager(),
163
+                commandController, serviceManager,
157
                 this, channelWindow, clipboard);
164
                 this, channelWindow, clipboard);
158
         tabbedPane.addTab("Topic", topicModesPane);
165
         tabbedPane.addTab("Topic", topicModesPane);
159
     }
166
     }

+ 12
- 6
src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicDisplayPane.java View File

30
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
30
 import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
31
 import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
31
 import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
32
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
32
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
33
+import com.dmdirc.interfaces.CommandController;
33
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
34
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
34
 import com.dmdirc.interfaces.ui.InputWindow;
35
 import com.dmdirc.interfaces.ui.InputWindow;
35
 import com.dmdirc.plugins.ServiceManager;
36
 import com.dmdirc.plugins.ServiceManager;
83
      * @param parent         Parent channel settings dialog
84
      * @param parent         Parent channel settings dialog
84
      * @param channelWindow  Channel window
85
      * @param channelWindow  Channel window
85
      * @param clipboard      Clipboard to copy and paste
86
      * @param clipboard      Clipboard to copy and paste
87
+     * @param commandController The controller to use to retrieve command information.
86
      */
88
      */
87
     public TopicDisplayPane(final Channel channel, final IconManager iconManager,
89
     public TopicDisplayPane(final Channel channel, final IconManager iconManager,
88
             final ServiceManager serviceManager, final ChannelSettingsDialog parent,
90
             final ServiceManager serviceManager, final ChannelSettingsDialog parent,
89
-            final InputWindow channelWindow, final Clipboard clipboard) {
91
+            final InputWindow channelWindow, final Clipboard clipboard,
92
+            final CommandController commandController) {
90
         this.clipboard = clipboard;
93
         this.clipboard = clipboard;
91
         this.channel = channel;
94
         this.channel = channel;
92
         this.parent = parent;
95
         this.parent = parent;
93
         topicLengthMax = channel.getConnection().getParser().getMaxTopicLength();
96
         topicLengthMax = channel.getConnection().getParser().getMaxTopicLength();
94
         this.channelWindow = channelWindow;
97
         this.channelWindow = channelWindow;
95
 
98
 
96
-        initComponents(iconManager, channel.getConfigManager(), serviceManager);
99
+        initComponents(iconManager, channel.getConfigManager(), serviceManager, commandController);
97
         addListeners();
100
         addListeners();
98
         layoutComponents();
101
         layoutComponents();
99
 
102
 
100
         setTopic(channel.getCurrentTopic());
103
         setTopic(channel.getCurrentTopic());
101
     }
104
     }
102
 
105
 
103
-    /** Initialises the components. */
104
-    private void initComponents(final IconManager iconManager,
105
-            final AggregateConfigProvider config, final ServiceManager serviceManager) {
106
+    private void initComponents(
107
+            final IconManager iconManager,
108
+            final AggregateConfigProvider config,
109
+            final ServiceManager serviceManager,
110
+            final CommandController commandController) {
106
         topicLengthLabel = new JLabel();
111
         topicLengthLabel = new JLabel();
107
         topicText = new TextAreaInputField(iconManager, config, 100, 4);
112
         topicText = new TextAreaInputField(iconManager, config, 100, 4);
108
         topicWho = new TextLabel();
113
         topicWho = new TextLabel();
113
         topicText.setRows(5);
118
         topicText.setRows(5);
114
         topicText.setColumns(30);
119
         topicText.setColumns(30);
115
         final SwingInputHandler handler = new SwingInputHandler(serviceManager, topicText,
120
         final SwingInputHandler handler = new SwingInputHandler(serviceManager, topicText,
116
-                channel.getCommandParser(), channelWindow.getContainer());
121
+                commandController, channel.getCommandParser(), channelWindow.getContainer(),
122
+                channel.getEventBus());
117
         handler.setTypes(true, false, true, false);
123
         handler.setTypes(true, false, true, false);
118
         handler.setTabCompleter(channel.getTabCompleter());
124
         handler.setTabCompleter(channel.getTabCompleter());
119
 
125
 

+ 9
- 10
src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java View File

24
 
24
 
25
 import com.dmdirc.Channel;
25
 import com.dmdirc.Channel;
26
 import com.dmdirc.addons.ui_swing.UIUtilities;
26
 import com.dmdirc.addons.ui_swing.UIUtilities;
27
+import com.dmdirc.interfaces.CommandController;
27
 import com.dmdirc.interfaces.ui.InputWindow;
28
 import com.dmdirc.interfaces.ui.InputWindow;
28
 import com.dmdirc.plugins.ServiceManager;
29
 import com.dmdirc.plugins.ServiceManager;
29
 import com.dmdirc.ui.IconManager;
30
 import com.dmdirc.ui.IconManager;
59
      *
60
      *
60
      * @param channel        Parent channel
61
      * @param channel        Parent channel
61
      * @param iconManager    Icon manager
62
      * @param iconManager    Icon manager
63
+     * @param commandController The controller to use to retrieve command information.
62
      * @param serviceManager Service manager
64
      * @param serviceManager Service manager
63
      * @param parent         Parent dialog
65
      * @param parent         Parent dialog
64
      * @param channelWindow  Channel window
66
      * @param channelWindow  Channel window
65
      * @param clipboard      Clipboard to copy and paste with
67
      * @param clipboard      Clipboard to copy and paste with
66
      */
68
      */
67
     public TopicPane(final Channel channel, final IconManager iconManager,
69
     public TopicPane(final Channel channel, final IconManager iconManager,
70
+            final CommandController commandController,
68
             final ServiceManager serviceManager, final ChannelSettingsDialog parent,
71
             final ServiceManager serviceManager, final ChannelSettingsDialog parent,
69
             final InputWindow channelWindow, final Clipboard clipboard) {
72
             final InputWindow channelWindow, final Clipboard clipboard) {
70
         super();
73
         super();
75
         this.channelWindow = channelWindow;
78
         this.channelWindow = channelWindow;
76
         this.clipboard = clipboard;
79
         this.clipboard = clipboard;
77
 
80
 
78
-        update(iconManager, serviceManager);
79
-    }
80
-
81
-    /** Updates the panel. */
82
-    private void update(final IconManager iconManager, final ServiceManager serviceManager) {
83
         setVisible(false);
81
         setVisible(false);
84
 
82
 
85
         removeAll();
83
         removeAll();
86
-        initTopicsPanel(iconManager, serviceManager);
84
+        initTopicsPanel(iconManager, serviceManager, commandController);
87
         layoutComponents();
85
         layoutComponents();
88
 
86
 
89
         topicHistoryPane.addActionListener(this);
87
         topicHistoryPane.addActionListener(this);
91
         setVisible(true);
89
         setVisible(true);
92
     }
90
     }
93
 
91
 
94
-    /** Initialises the topic panel. */
95
-    private void initTopicsPanel(final IconManager iconManager,
96
-            final ServiceManager serviceManager) {
92
+    private void initTopicsPanel(
93
+            final IconManager iconManager,
94
+            final ServiceManager serviceManager,
95
+            final CommandController commandController) {
97
         topicDisplayPane = new TopicDisplayPane(channel, iconManager, serviceManager, parent,
96
         topicDisplayPane = new TopicDisplayPane(channel, iconManager, serviceManager, parent,
98
-                channelWindow, clipboard);
97
+                channelWindow, clipboard, commandController);
99
         topicHistoryPane = new TopicHistoryPane(channel);
98
         topicHistoryPane = new TopicHistoryPane(channel);
100
     }
99
     }
101
 
100
 

+ 22
- 8
src/com/dmdirc/addons/ui_swing/dialogs/paste/PasteDialog.java View File

29
 import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
29
 import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
30
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
30
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
31
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
31
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
32
+import com.dmdirc.interfaces.CommandController;
32
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
33
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
33
 import com.dmdirc.plugins.PluginManager;
34
 import com.dmdirc.plugins.PluginManager;
34
 import com.dmdirc.ui.IconManager;
35
 import com.dmdirc.ui.IconManager;
35
 import com.dmdirc.util.annotations.factory.Factory;
36
 import com.dmdirc.util.annotations.factory.Factory;
36
 import com.dmdirc.util.annotations.factory.Unbound;
37
 import com.dmdirc.util.annotations.factory.Unbound;
37
 
38
 
39
+import com.google.common.eventbus.EventBus;
40
+
38
 import java.awt.Window;
41
 import java.awt.Window;
39
 import java.awt.event.ActionEvent;
42
 import java.awt.event.ActionEvent;
40
 import java.awt.event.ActionListener;
43
 import java.awt.event.ActionListener;
78
     private final PluginManager pluginManager;
81
     private final PluginManager pluginManager;
79
     /** Config to read settings from. */
82
     /** Config to read settings from. */
80
     private final AggregateConfigProvider config;
83
     private final AggregateConfigProvider config;
84
+    /** The controller to use to retrieve command information. */
85
+    private final CommandController commandController;
86
+    /** The bus to despatch events on. */
87
+    private final EventBus eventBus;
81
 
88
 
82
     /**
89
     /**
83
      * Creates a new instance of PreferencesDialog.
90
      * Creates a new instance of PreferencesDialog.
84
      *
91
      *
85
-     * @param iconManager   Icon manager to retrieve icons with
86
-     * @param config        Config to read settings from
87
-     * @param pluginManager to retrieve tab completers with
88
-     * @param newParent     The frame that owns this dialog
89
-     * @param text          text to show in the paste dialog
90
-     * @param parentWindow  Parent window
92
+     * @param iconManager       Icon manager to retrieve icons with
93
+     * @param config            Config to read settings from
94
+     * @param pluginManager     to retrieve tab completers with
95
+     * @param commandController The controller to use to retrieve command information.
96
+     * @param eventBus          The bus to despatch events on.
97
+     * @param newParent         The frame that owns this dialog
98
+     * @param text              text to show in the paste dialog
99
+     * @param parentWindow      Parent window
91
      */
100
      */
92
     public PasteDialog(
101
     public PasteDialog(
93
             @SuppressWarnings("qualifiers") @GlobalConfig final IconManager iconManager,
102
             @SuppressWarnings("qualifiers") @GlobalConfig final IconManager iconManager,
94
             @SuppressWarnings("qualifiers") @GlobalConfig final AggregateConfigProvider config,
103
             @SuppressWarnings("qualifiers") @GlobalConfig final AggregateConfigProvider config,
95
             final PluginManager pluginManager,
104
             final PluginManager pluginManager,
105
+            final CommandController commandController,
106
+            final EventBus eventBus,
96
             @Unbound final InputTextFrame newParent,
107
             @Unbound final InputTextFrame newParent,
97
             @Unbound final String text,
108
             @Unbound final String text,
98
             @Unbound final Window parentWindow) {
109
             @Unbound final Window parentWindow) {
103
         this.iconManager = iconManager;
114
         this.iconManager = iconManager;
104
         this.config = config;
115
         this.config = config;
105
         this.pluginManager = pluginManager;
116
         this.pluginManager = pluginManager;
117
+        this.commandController = commandController;
118
+        this.eventBus = eventBus;
106
 
119
 
107
         initComponents(text);
120
         initComponents(text);
108
         initListeners();
121
         initListeners();
142
         textField.setColumns(50);
155
         textField.setColumns(50);
143
         textField.setRows(10);
156
         textField.setRows(10);
144
 
157
 
145
-        new SwingInputHandler(pluginManager, textField, parent.getContainer().getCommandParser(),
146
-                parent.getContainer()).setTypes(false, false, true, false);
158
+        new SwingInputHandler(pluginManager, textField, commandController,
159
+                parent.getContainer().getCommandParser(),
160
+                parent.getContainer(), eventBus).setTypes(false, false, true, false);
147
 
161
 
148
         scrollPane.setViewportView(textField);
162
         scrollPane.setViewportView(textField);
149
         scrollPane.setVisible(false);
163
         scrollPane.setVisible(false);

+ 4
- 2
src/com/dmdirc/addons/ui_swing/injection/DialogModule.java View File

43
 import com.dmdirc.addons.ui_swing.dialogs.updater.SwingRestartDialog;
43
 import com.dmdirc.addons.ui_swing.dialogs.updater.SwingRestartDialog;
44
 import com.dmdirc.addons.ui_swing.dialogs.updater.SwingUpdaterDialog;
44
 import com.dmdirc.addons.ui_swing.dialogs.updater.SwingUpdaterDialog;
45
 import com.dmdirc.config.prefs.PreferencesManager;
45
 import com.dmdirc.config.prefs.PreferencesManager;
46
+import com.dmdirc.interfaces.CommandController;
46
 import com.dmdirc.interfaces.LifecycleController;
47
 import com.dmdirc.interfaces.LifecycleController;
47
 import com.dmdirc.interfaces.config.ConfigProvider;
48
 import com.dmdirc.interfaces.config.ConfigProvider;
48
 import com.dmdirc.interfaces.config.IdentityFactory;
49
 import com.dmdirc.interfaces.config.IdentityFactory;
150
             final PreferencesManager preferencesManager,
151
             final PreferencesManager preferencesManager,
151
             final PrefsComponentFactory compFactory,
152
             final PrefsComponentFactory compFactory,
152
             final MainFrame parentWindow,
153
             final MainFrame parentWindow,
153
-            final Clipboard clipboard) {
154
+            final Clipboard clipboard,
155
+            final CommandController commandController) {
154
         return new KeyedDialogProvider<Channel, ChannelSettingsDialog>() {
156
         return new KeyedDialogProvider<Channel, ChannelSettingsDialog>() {
155
             @Override
157
             @Override
156
             protected ChannelSettingsDialog getInstance(final Channel key) {
158
             protected ChannelSettingsDialog getInstance(final Channel key) {
157
                 return new ChannelSettingsDialog(identityFactory, windowFactory,
159
                 return new ChannelSettingsDialog(identityFactory, windowFactory,
158
                         userConfig, serviceManager, preferencesManager,
160
                         userConfig, serviceManager, preferencesManager,
159
-                        compFactory, key, parentWindow, clipboard);
161
+                        compFactory, key, parentWindow, clipboard, commandController);
160
             }
162
             }
161
         };
163
         };
162
     }
164
     }

+ 21
- 0
src/com/dmdirc/addons/ui_web/WebInterfaceUI.java View File

24
 
24
 
25
 import com.dmdirc.ServerManager;
25
 import com.dmdirc.ServerManager;
26
 import com.dmdirc.addons.ui_web.uicomponents.WebStatusBar;
26
 import com.dmdirc.addons.ui_web.uicomponents.WebStatusBar;
27
+import com.dmdirc.interfaces.CommandController;
27
 import com.dmdirc.interfaces.config.IdentityController;
28
 import com.dmdirc.interfaces.config.IdentityController;
28
 import com.dmdirc.interfaces.ui.UIController;
29
 import com.dmdirc.interfaces.ui.UIController;
29
 import com.dmdirc.plugins.PluginDomain;
30
 import com.dmdirc.plugins.PluginDomain;
31
 import com.dmdirc.ui.WindowManager;
32
 import com.dmdirc.ui.WindowManager;
32
 import com.dmdirc.ui.core.components.StatusBarManager;
33
 import com.dmdirc.ui.core.components.StatusBarManager;
33
 
34
 
35
+import com.google.common.eventbus.EventBus;
36
+
34
 import javax.inject.Inject;
37
 import javax.inject.Inject;
35
 
38
 
36
 import org.mortbay.jetty.Handler;
39
 import org.mortbay.jetty.Handler;
52
     private final DynamicRequestHandler handler;
55
     private final DynamicRequestHandler handler;
53
     /** The plugin manager used to find other plugins. */
56
     /** The plugin manager used to find other plugins. */
54
     private final PluginManager pluginManager;
57
     private final PluginManager pluginManager;
58
+    /** The controller to use to retrieve command information. */
59
+    private final CommandController commandController;
60
+    /** The bus to despatch events on. */
61
+    private final EventBus eventBus;
55
 
62
 
56
     /**
63
     /**
57
      * Creates a new WebInterfaceUI belonging to the specified plugin.
64
      * Creates a new WebInterfaceUI belonging to the specified plugin.
58
      *
65
      *
59
      * @param domain               The domain to retrieve config settings from
66
      * @param domain               The domain to retrieve config settings from
60
      * @param identityController   The controller to read/write settings with.
67
      * @param identityController   The controller to read/write settings with.
68
+     * @param commandController    The controller to use to retrieve command information.
69
+     * @param eventBus             The bus to despatch events on.
61
      * @param serverManager        The manager to use to find and create servers
70
      * @param serverManager        The manager to use to find and create servers
62
      * @param pluginManager        The manager to use to find other plugins
71
      * @param pluginManager        The manager to use to find other plugins
63
      * @param coreWindowManager    Window management
72
      * @param coreWindowManager    Window management
68
     public WebInterfaceUI(
77
     public WebInterfaceUI(
69
             @PluginDomain(WebInterfacePlugin.class) final String domain,
78
             @PluginDomain(WebInterfacePlugin.class) final String domain,
70
             final IdentityController identityController,
79
             final IdentityController identityController,
80
+            final CommandController commandController,
81
+            final EventBus eventBus,
71
             final ServerManager serverManager,
82
             final ServerManager serverManager,
72
             final PluginManager pluginManager,
83
             final PluginManager pluginManager,
73
             final WindowManager coreWindowManager,
84
             final WindowManager coreWindowManager,
76
         super();
87
         super();
77
 
88
 
78
         this.pluginManager = pluginManager;
89
         this.pluginManager = pluginManager;
90
+        this.commandController = commandController;
91
+        this.eventBus = eventBus;
79
 
92
 
80
         final SecurityHandler sh = new SecurityHandler();
93
         final SecurityHandler sh = new SecurityHandler();
81
         final Constraint constraint = new Constraint();
94
         final Constraint constraint = new Constraint();
124
         return pluginManager;
137
         return pluginManager;
125
     }
138
     }
126
 
139
 
140
+    public CommandController getCommandController() {
141
+        return commandController;
142
+    }
143
+
144
+    public EventBus getEventBus() {
145
+        return eventBus;
146
+    }
147
+
127
     /**
148
     /**
128
      * Adds the specified handler to the webserver.
149
      * Adds the specified handler to the webserver.
129
      *
150
      *

+ 9
- 4
src/com/dmdirc/addons/ui_web/uicomponents/WebInputHandler.java View File

24
 
24
 
25
 import com.dmdirc.WritableFrameContainer;
25
 import com.dmdirc.WritableFrameContainer;
26
 import com.dmdirc.commandparser.parsers.CommandParser;
26
 import com.dmdirc.commandparser.parsers.CommandParser;
27
+import com.dmdirc.interfaces.CommandController;
27
 import com.dmdirc.interfaces.ui.InputField;
28
 import com.dmdirc.interfaces.ui.InputField;
28
 import com.dmdirc.plugins.ServiceManager;
29
 import com.dmdirc.plugins.ServiceManager;
29
 import com.dmdirc.ui.input.InputHandler;
30
 import com.dmdirc.ui.input.InputHandler;
30
 import com.dmdirc.ui.input.TabCompleter;
31
 import com.dmdirc.ui.input.TabCompleter;
31
 
32
 
33
+import com.google.common.eventbus.EventBus;
34
+
32
 /**
35
 /**
33
  * An input handler for the web ui.
36
  * An input handler for the web ui.
34
  */
37
  */
36
 
39
 
37
     public WebInputHandler(
40
     public WebInputHandler(
38
             final ServiceManager serviceManager,
41
             final ServiceManager serviceManager,
39
-            final InputField thisTarget,
40
-            final CommandParser thisCommandParser,
41
-            final WritableFrameContainer thisParentWindow) {
42
-        super(serviceManager, thisTarget, thisCommandParser, thisParentWindow);
42
+            final InputField target,
43
+            final CommandController commandController,
44
+            final CommandParser commandParser,
45
+            final WritableFrameContainer parentWindow,
46
+            final EventBus eventBus) {
47
+        super(serviceManager, target, commandController, commandParser, parentWindow, eventBus);
43
     }
48
     }
44
 
49
 
45
     public InputField getTarget() {
50
     public InputField getTarget() {

+ 5
- 2
src/com/dmdirc/addons/ui_web/uicomponents/WebInputWindow.java View File

50
         this.commandparser = parent.getCommandParser();
50
         this.commandparser = parent.getCommandParser();
51
         this.controller = controller;
51
         this.controller = controller;
52
         this.inputHandler = new WebInputHandler(controller.getPluginManager(),
52
         this.inputHandler = new WebInputHandler(controller.getPluginManager(),
53
-                new WebInputField(), commandparser, getContainer());
53
+                new WebInputField(), controller.getCommandController(),
54
+                commandparser, getContainer(), controller.getEventBus());
54
     }
55
     }
55
 
56
 
57
+    @Override
56
     public WritableFrameContainer getContainer() {
58
     public WritableFrameContainer getContainer() {
57
         return container;
59
         return container;
58
     }
60
     }
66
         if (!inputHandlers.containsKey(client)) {
68
         if (!inputHandlers.containsKey(client)) {
67
             final WebInputHandler ih = new WebInputHandler(
69
             final WebInputHandler ih = new WebInputHandler(
68
                     controller.getPluginManager(), new WebInputField(client),
70
                     controller.getPluginManager(), new WebInputField(client),
69
-                    commandparser, getContainer());
71
+                    controller.getCommandController(),
72
+                    commandparser, getContainer(), controller.getEventBus());
70
             ih.setTabCompleter(inputHandler.getTabCompleter());
73
             ih.setTabCompleter(inputHandler.getTabCompleter());
71
             inputHandlers.put(client, ih);
74
             inputHandlers.put(client, ih);
72
         }
75
         }

Loading…
Cancel
Save