Ver código fonte

Make getActiveFrame optional.

pull/116/head
Greg Holmes 9 anos atrás
pai
commit
a73ee92f48

+ 2
- 5
activewindow/src/com/dmdirc/addons/activewindow/ActiveCommand.java Ver arquivo

@@ -73,11 +73,8 @@ public class ActiveCommand extends Command implements IntelligentCommand {
73 73
     @Override
74 74
     public void execute(@Nonnull final FrameContainer origin,
75 75
             final CommandArguments args, final CommandContext context) {
76
-        final TextFrame frame = activeFrameManager.getActiveFrame();
77
-        if (frame.getContainer().isWritable()) {
78
-            frame.getContainer().getCommandParser().parseCommand(frame.getContainer(),
79
-                    args.getArgumentsAsString());
80
-        }
76
+        activeFrameManager.getActiveFrame().ifPresent(f -> f.getContainer().getCommandParser()
77
+                .parseCommand(f.getContainer(), args.getArgumentsAsString()));
81 78
     }
82 79
 
83 80
     @Override

+ 2
- 4
activewindow/src/com/dmdirc/addons/activewindow/ActiveWindowMessageSink.java Ver arquivo

@@ -62,10 +62,8 @@ public class ActiveWindowMessageSink implements MessageSink {
62 62
     public void handleMessage(final MessageSinkManager dispatcher,
63 63
             final FrameContainer source, final String[] patternMatches,
64 64
             final Date date, final String messageType, final Object... args) {
65
-        final TextFrame frame = activeFrameManager.getActiveFrame();
66
-        if (frame.getContainer().isWritable()) {
67
-            frame.getContainer().addLine(messageType, date, args);
68
-        }
65
+        activeFrameManager.getActiveFrame()
66
+                .ifPresent(f -> f.getContainer().addLine(messageType, date, args));
69 67
     }
70 68
 
71 69
 }

+ 16
- 16
lagdisplay/src/com/dmdirc/addons/lagdisplay/LagDisplayManager.java Ver arquivo

@@ -181,10 +181,10 @@ public class LagDisplayManager implements ConfigChangeListener {
181 181
         }
182 182
         final boolean useAlternate = ((FrameContainer) event.getConnection()).getConfigManager()
183 183
                 .getOptionBool(domain, "usealternate");
184
-        final TextFrame activeFrame = activeFrameManager.getActiveFrame();
185
-        final FrameContainer active = activeFrame == null ? null : activeFrame.getContainer();
186
-        final boolean isActive = active != null && event.getConnection().equals(active.
187
-                getConnection());
184
+        final boolean isActive = activeFrameManager.getActiveFrame().isPresent()
185
+                && activeFrameManager.getActiveFrame().get().getContainer().getOptionalConnection()
186
+                .isPresent() && activeFrameManager.getActiveFrame().get().getContainer()
187
+                .getOptionalConnection().get().equals(event.getConnection());
188 188
         final String[] args = event.getArgs();
189 189
         if (useAlternate && args[3].startsWith("LAGCHECK_")) {
190 190
             try {
@@ -207,10 +207,10 @@ public class LagDisplayManager implements ConfigChangeListener {
207 207
 
208 208
     @Handler
209 209
     public void handleServerDisconnected(final ServerDisconnectedEvent event) {
210
-        final TextFrame activeFrame = activeFrameManager.getActiveFrame();
211
-        final FrameContainer active = activeFrame == null ? null : activeFrame.getContainer();
212
-        final boolean isActive = active != null && event.getConnection().equals(active.
213
-                getConnection());
210
+        final boolean isActive = activeFrameManager.getActiveFrame().isPresent()
211
+                && activeFrameManager.getActiveFrame().get().getContainer().getOptionalConnection()
212
+                .isPresent() && activeFrameManager.getActiveFrame().get().getContainer()
213
+                .getOptionalConnection().get().equals(event.getConnection());
214 214
         if (isActive) {
215 215
                 panel.getComponent().setText("Not connected");
216 216
                 pings.remove(event.getConnection());
@@ -225,10 +225,10 @@ public class LagDisplayManager implements ConfigChangeListener {
225 225
                 getOptionBool(domain, "usealternate")) {
226 226
             return;
227 227
         }
228
-        final TextFrame activeFrame = activeFrameManager.getActiveFrame();
229
-        final FrameContainer active = activeFrame == null ? null : activeFrame.getContainer();
230
-        final boolean isActive = active != null && event.getConnection().equals(active.
231
-                getConnection());
228
+        final boolean isActive = activeFrameManager.getActiveFrame().isPresent()
229
+                && activeFrameManager.getActiveFrame().get().getContainer().getOptionalConnection()
230
+                .isPresent() && activeFrameManager.getActiveFrame().get().getContainer()
231
+                .getOptionalConnection().get().equals(event.getConnection());
232 232
         final String value = formatTime(event.getPing());
233 233
 
234 234
         getHistory(event.getConnection()).add(event.getPing());
@@ -247,10 +247,10 @@ public class LagDisplayManager implements ConfigChangeListener {
247 247
                 getOptionBool(domain, "usealternate")) {
248 248
             return;
249 249
         }
250
-        final TextFrame activeFrame = activeFrameManager.getActiveFrame();
251
-        final FrameContainer active = activeFrame == null ? null : activeFrame.getContainer();
252
-        final boolean isActive = active != null && event.getConnection().equals(active.
253
-                getConnection());
250
+        final boolean isActive = activeFrameManager.getActiveFrame().isPresent()
251
+                && activeFrameManager.getActiveFrame().get().getContainer().getOptionalConnection()
252
+                .isPresent() && activeFrameManager.getActiveFrame().get().getContainer()
253
+                .getOptionalConnection().get().equals(event.getConnection());
254 254
         final String value = formatTime(event.getPing()) + '+';
255 255
 
256 256
         pings.put(event.getConnection(), value);

+ 6
- 2
lagdisplay/src/com/dmdirc/addons/lagdisplay/PingHistoryPanel.java Ver arquivo

@@ -64,8 +64,12 @@ public class PingHistoryPanel extends JPanel {
64 64
         setOpaque(false);
65 65
 
66 66
         this.manager = manager;
67
-        history = manager.getHistory(activeFrameManager.getActiveFrame().getContainer().
68
-                getConnection());
67
+        if (activeFrameManager.getActiveFrame().isPresent()) {
68
+            history = manager.getHistory(activeFrameManager.getActiveFrame().get().getContainer()
69
+                    .getOptionalConnection().orElse(null));
70
+        } else {
71
+            history = manager.getHistory(null);
72
+        }
69 73
 
70 74
         for (Long value : history.getList()) {
71 75
             maximum = Math.max(value, maximum);

+ 2
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/SimpleActiveFrameManager.java Ver arquivo

@@ -50,7 +50,7 @@ public class SimpleActiveFrameManager implements ActiveFrameManager {
50 50
     }
51 51
 
52 52
     @Override
53
-    public TextFrame getActiveFrame() {
54
-        return window.orElse(null);
53
+    public Optional<TextFrame> getActiveFrame() {
54
+        return window;
55 55
     }
56 56
 }

+ 4
- 13
ui_swing/src/com/dmdirc/addons/ui_swing/components/MDIBar.java Ver arquivo

@@ -51,7 +51,7 @@ import net.engio.mbassy.listener.Handler;
51 51
  * Provides an MDI style bar for closing frames.
52 52
  */
53 53
 @Singleton
54
-public class MDIBar extends JPanel implements ActionListener, ConfigChangeListener {
54
+public class MDIBar extends JPanel implements ConfigChangeListener {
55 55
 
56 56
     /** A version number for this class. */
57 57
     private static final long serialVersionUID = -8028057596226636245L;
@@ -97,7 +97,8 @@ public class MDIBar extends JPanel implements ActionListener, ConfigChangeListen
97 97
 
98 98
         eventBus.subscribe(this);
99 99
 
100
-        closeButton.addActionListener(this);
100
+        closeButton.addActionListener(e -> activeFrameManager.getActiveFrame()
101
+                .ifPresent(f -> f.getContainer().close()));
101 102
         config.addChangeListener(configDomain, "mdiBarVisibility", this);
102 103
 
103 104
         check();
@@ -114,7 +115,7 @@ public class MDIBar extends JPanel implements ActionListener, ConfigChangeListen
114 115
     private void check() {
115 116
         SwingUtilities.invokeLater(() -> {
116 117
             setVisible(visibility);
117
-            setEnabled(activeFrameManager.getActiveFrame() != null);
118
+            setEnabled(activeFrameManager.getActiveFrame().isPresent());
118 119
         });
119 120
     }
120 121
 
@@ -128,16 +129,6 @@ public class MDIBar extends JPanel implements ActionListener, ConfigChangeListen
128 129
         check();
129 130
     }
130 131
 
131
-    @Override
132
-    public void actionPerformed(final ActionEvent e) {
133
-        if (activeFrameManager.getActiveFrame() == null) {
134
-            return;
135
-        }
136
-        if (closeButton.equals(e.getSource())) {
137
-            activeFrameManager.getActiveFrame().getContainer().close();
138
-        }
139
-    }
140
-
141 132
     @Override
142 133
     public void configChanged(final String domain, final String key) {
143 134
         visibility = config.getOptionBool(configDomain, "mdiBarVisibility");

+ 24
- 46
ui_swing/src/com/dmdirc/addons/ui_swing/components/menubar/ChannelMenu.java Ver arquivo

@@ -24,23 +24,18 @@ package com.dmdirc.addons.ui_swing.components.menubar;
24 24
 
25 25
 import com.dmdirc.Channel;
26 26
 import com.dmdirc.ClientModule;
27
-import com.dmdirc.FrameContainer;
28 27
 import com.dmdirc.ServerState;
29 28
 import com.dmdirc.addons.ui_swing.MainFrame;
30
-import com.dmdirc.addons.ui_swing.components.frames.TextFrame;
31 29
 import com.dmdirc.addons.ui_swing.dialogs.StandardInputDialog;
32 30
 import com.dmdirc.addons.ui_swing.dialogs.channellist.ChannelListDialog;
33 31
 import com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog;
34 32
 import com.dmdirc.addons.ui_swing.injection.DialogProvider;
35 33
 import com.dmdirc.addons.ui_swing.injection.KeyedDialogProvider;
36 34
 import com.dmdirc.addons.ui_swing.interfaces.ActiveFrameManager;
37
-import com.dmdirc.interfaces.Connection;
38 35
 import com.dmdirc.parser.common.ChannelJoinRequest;
39 36
 import com.dmdirc.ui.IconManager;
40 37
 
41 38
 import java.awt.Dialog;
42
-import java.awt.event.ActionEvent;
43
-import java.awt.event.ActionListener;
44 39
 
45 40
 import javax.inject.Inject;
46 41
 import javax.inject.Singleton;
@@ -53,8 +48,7 @@ import javax.swing.event.MenuListener;
53 48
  * A menu to provide channel related commands in the menu bar.
54 49
  */
55 50
 @Singleton
56
-public class ChannelMenu extends JMenu implements ActionListener,
57
-        MenuListener {
51
+public class ChannelMenu extends JMenu implements MenuListener {
58 52
 
59 53
     /** A version number for this class. */
60 54
     private static final long serialVersionUID = 1;
@@ -99,65 +93,49 @@ public class ChannelMenu extends JMenu implements ActionListener,
99 93
         join = new JMenuItem();
100 94
         join.setText("Join Channel...");
101 95
         join.setMnemonic('j');
102
-        join.setActionCommand("JoinChannel");
103
-        join.addActionListener(this);
96
+        join.addActionListener(e -> joinChannel());
104 97
         add(join);
105 98
 
106 99
         csd = new JMenuItem();
107 100
         csd.setMnemonic('c');
108 101
         csd.setText("Channel Settings");
109
-        csd.setActionCommand("ChannelSettings");
110
-        csd.addActionListener(this);
102
+        csd.addActionListener(l -> showChannelSettings());
111 103
         add(csd);
112 104
 
113 105
         list = new JMenuItem();
114 106
         list.setText("List channels...");
115 107
         list.setMnemonic('l');
116
-        list.setActionCommand("ListChannels");
117
-        list.addActionListener(this);
108
+        list.addActionListener(e -> channelListDialogProvider.displayOrRequestFocus());
118 109
         add(list);
119 110
     }
120 111
 
121
-    @Override
122
-    public void actionPerformed(final ActionEvent e) {
123
-        switch (e.getActionCommand()) {
124
-            case "JoinChannel":
125
-                new StandardInputDialog(mainFrame, Dialog.ModalityType.APPLICATION_MODAL,
126
-                        iconManager, "Join Channel", "Enter the name of the channel to join.",
127
-                        this::doJoinChannel).displayOrRequestFocus();
128
-                break;
129
-            case "ChannelSettings":
130
-                final FrameContainer activeWindow = activeFrameManager.getActiveFrame().
131
-                        getContainer();
132
-                if (activeWindow instanceof Channel) {
133
-                    dialogProvider.displayOrRequestFocus((Channel) activeWindow);
134
-                }
135
-                break;
136
-            case "ListChannels":
137
-                channelListDialogProvider.displayOrRequestFocus();
138
-                break;
139
-        }
112
+    private void joinChannel() {
113
+        new StandardInputDialog(mainFrame,
114
+                Dialog.ModalityType.APPLICATION_MODAL, iconManager, "Join Channel",
115
+                "Enter the name of the channel to join.", this::doJoinChannel)
116
+                .displayOrRequestFocus();
140 117
     }
141 118
 
142
-    private void doJoinChannel(final String text) {
143
-        if (activeFrameManager.getActiveFrame() != null) {
144
-            final Connection connection = activeFrameManager.getActiveFrame()
145
-                    .getContainer().getConnection();
146
-            if (connection != null) {
147
-                connection.join(new ChannelJoinRequest(text));
119
+    private void showChannelSettings() {
120
+        activeFrameManager.getActiveFrame().ifPresent(f -> {
121
+            if (f.getContainer() instanceof Channel) {
122
+                dialogProvider.displayOrRequestFocus((Channel) f.getContainer());
148 123
             }
149
-        }
124
+        });
125
+    }
126
+
127
+    private void doJoinChannel(final String text) {
128
+        activeFrameManager.getActiveFrame()
129
+                .ifPresent(f -> f.getContainer().getOptionalConnection()
130
+                        .ifPresent(c -> c.join(new ChannelJoinRequest(text))));
150 131
     }
151 132
 
152 133
     @Override
153 134
     public final void menuSelected(final MenuEvent e) {
154
-        final TextFrame activeFrame = activeFrameManager.getActiveFrame();
155
-        final FrameContainer activeWindow = activeFrame == null ? null
156
-                : activeFrame.getContainer();
157
-
158
-        final boolean connected = activeWindow != null
159
-                && activeWindow.getConnection() != null
160
-                && activeWindow.getConnection().getState() == ServerState.CONNECTED;
135
+        final boolean connected = activeFrameManager.getActiveFrame().isPresent()
136
+                && activeFrameManager.getActiveFrame().get().getContainer().getOptionalConnection()
137
+                .isPresent() && activeFrameManager.getActiveFrame().get().getContainer()
138
+                .getOptionalConnection().get().getState() == ServerState.CONNECTED;
161 139
 
162 140
         join.setEnabled(connected);
163 141
         csd.setEnabled(connected);

+ 24
- 52
ui_swing/src/com/dmdirc/addons/ui_swing/components/menubar/ServerMenu.java Ver arquivo

@@ -22,10 +22,8 @@
22 22
 
23 23
 package com.dmdirc.addons.ui_swing.components.menubar;
24 24
 
25
-import com.dmdirc.FrameContainer;
26 25
 import com.dmdirc.ServerState;
27 26
 import com.dmdirc.addons.ui_swing.Apple;
28
-import com.dmdirc.addons.ui_swing.components.frames.TextFrame;
29 27
 import com.dmdirc.addons.ui_swing.dialogs.newserver.NewServerDialog;
30 28
 import com.dmdirc.addons.ui_swing.dialogs.serversetting.ServerSettingsDialog;
31 29
 import com.dmdirc.addons.ui_swing.injection.DialogProvider;
@@ -34,9 +32,6 @@ import com.dmdirc.addons.ui_swing.interfaces.ActiveFrameManager;
34 32
 import com.dmdirc.interfaces.Connection;
35 33
 import com.dmdirc.interfaces.LifecycleController;
36 34
 
37
-import java.awt.event.ActionEvent;
38
-import java.awt.event.ActionListener;
39
-
40 35
 import javax.inject.Inject;
41 36
 import javax.inject.Singleton;
42 37
 import javax.swing.JMenu;
@@ -48,8 +43,7 @@ import javax.swing.event.MenuListener;
48 43
  * A menu providing server related commands to the menu bar.
49 44
  */
50 45
 @Singleton
51
-public class ServerMenu extends JMenu implements ActionListener,
52
-        MenuListener {
46
+public class ServerMenu extends JMenu implements MenuListener {
53 47
 
54 48
     /** A version number for this class. */
55 49
     private static final long serialVersionUID = 1;
@@ -57,13 +51,13 @@ public class ServerMenu extends JMenu implements ActionListener,
57 51
     private final ActiveFrameManager activeFrameManager;
58 52
     /** Lifecycle controller. */
59 53
     private final LifecycleController lifecycleController;
60
-    /** Menu items which can be enabled/disabled. */
61
-    private JMenuItem ssd;
62
-    private JMenuItem disconnect;
63 54
     /** Provider to use to retrieve NSD instances. */
64 55
     private final DialogProvider<NewServerDialog> newServerProvider;
65 56
     /** Provider for server settings dialogs. */
66 57
     private final KeyedDialogProvider<Connection, ServerSettingsDialog> ssdProvider;
58
+    /** Menu items which can be enabled/disabled. */
59
+    private JMenuItem ssd;
60
+    private JMenuItem disconnect;
67 61
 
68 62
     /**
69 63
      * Creates a new Server menu.
@@ -95,65 +89,43 @@ public class ServerMenu extends JMenu implements ActionListener,
95 89
      * Initialises the server menu.
96 90
      */
97 91
     private void initServerMenu() {
98
-        JMenuItem menuItem = new JMenuItem();
99
-        menuItem.setText("New Server...");
100
-        menuItem.setMnemonic('n');
101
-        menuItem.setActionCommand("NewServer");
102
-        menuItem.addActionListener(this);
103
-        add(menuItem);
92
+        final JMenuItem newServer = new JMenuItem();
93
+        newServer.setText("New Server...");
94
+        newServer.setMnemonic('n');
95
+        newServer.addActionListener(e -> newServerProvider.displayOrRequestFocus());
96
+        add(newServer);
104 97
 
105 98
         disconnect = new JMenuItem();
106 99
         disconnect.setText("Disconnect");
107 100
         disconnect.setMnemonic('d');
108
-        disconnect.setActionCommand("Disconnect");
109
-        disconnect.addActionListener(this);
101
+        disconnect.addActionListener(e -> activeFrameManager.getActiveFrame()
102
+                .ifPresent(f -> f.getContainer().getOptionalConnection()
103
+                        .ifPresent(c -> c.disconnect())));
110 104
         add(disconnect);
111 105
 
112 106
         ssd = new JMenuItem();
113 107
         ssd.setMnemonic('s');
114 108
         ssd.setText("Server settings");
115
-        ssd.setActionCommand("ServerSettings");
116
-        ssd.addActionListener(this);
109
+        ssd.addActionListener(e -> activeFrameManager.getActiveFrame()
110
+                .ifPresent(f -> f.getContainer().getOptionalConnection()
111
+                        .ifPresent(ssdProvider::displayOrRequestFocus)));
117 112
         add(ssd);
118 113
 
119 114
         if (!Apple.isAppleUI()) {
120
-            menuItem = new JMenuItem();
121
-            menuItem.setText("Exit");
122
-            menuItem.setMnemonic('x');
123
-            menuItem.setActionCommand("Exit");
124
-            menuItem.addActionListener(this);
125
-            add(menuItem);
126
-        }
127
-    }
128
-
129
-    @Override
130
-    public void actionPerformed(final ActionEvent e) {
131
-        switch (e.getActionCommand()) {
132
-            case "NewServer":
133
-                newServerProvider.displayOrRequestFocus();
134
-                break;
135
-            case "Exit":
136
-                lifecycleController.quit();
137
-                break;
138
-            case "ServerSettings":
139
-                ssdProvider.displayOrRequestFocus(
140
-                        activeFrameManager.getActiveFrame().getContainer().getConnection());
141
-                break;
142
-            case "Disconnect":
143
-                activeFrameManager.getActiveFrame().getContainer().getConnection().disconnect();
144
-                break;
115
+            final JMenuItem exit = new JMenuItem();
116
+            exit.setText("Exit");
117
+            exit.setMnemonic('x');
118
+            exit.addActionListener(e -> lifecycleController.quit());
119
+            add(exit);
145 120
         }
146 121
     }
147 122
 
148 123
     @Override
149 124
     public final void menuSelected(final MenuEvent e) {
150
-        final TextFrame activeFrame = activeFrameManager.getActiveFrame();
151
-        final FrameContainer activeWindow = activeFrame == null ? null
152
-                : activeFrame.getContainer();
153
-
154
-        final boolean connected = activeWindow != null
155
-                && activeWindow.getConnection() != null
156
-                && activeWindow.getConnection().getState() == ServerState.CONNECTED;
125
+        final boolean connected = activeFrameManager.getActiveFrame().isPresent()
126
+                && activeFrameManager.getActiveFrame().get().getContainer().getOptionalConnection()
127
+                .isPresent() && activeFrameManager.getActiveFrame().get().getContainer()
128
+                .getOptionalConnection().get().getState() == ServerState.CONNECTED;
157 129
 
158 130
         ssd.setEnabled(connected);
159 131
         disconnect.setEnabled(connected);

+ 10
- 3
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channellist/ChannelListDialog.java Ver arquivo

@@ -32,6 +32,7 @@ import java.awt.event.ActionListener;
32 32
 
33 33
 import javax.inject.Inject;
34 34
 import javax.swing.JLabel;
35
+import javax.swing.JPanel;
35 36
 
36 37
 import net.miginfocom.swing.MigLayout;
37 38
 
@@ -43,7 +44,7 @@ public class ChannelListDialog extends StandardDialog implements ActionListener
43 44
     /** Serial version UID. */
44 45
     private static final long serialVersionUID = 1L;
45 46
     /** List panel. */
46
-    private final ChannelListPanel list;
47
+    private final JPanel list;
47 48
     /** Size label. */
48 49
     private final JLabel total;
49 50
 
@@ -54,8 +55,14 @@ public class ChannelListDialog extends StandardDialog implements ActionListener
54 55
         super(mainWindow, ModalityType.MODELESS);
55 56
         setTitle("Channel List");
56 57
         total = new JLabel("No results.");
57
-        list = new ChannelListPanel(
58
-                activeFrameManager.getActiveFrame().getContainer().getConnection(), total);
58
+        if (activeFrameManager.getActiveFrame().isPresent()
59
+                && activeFrameManager.getActiveFrame().get().getContainer()
60
+                .getOptionalConnection().isPresent()) {
61
+            list = new ChannelListPanel(activeFrameManager.getActiveFrame().get()
62
+                    .getContainer().getOptionalConnection().get(), total);
63
+        } else {
64
+            list = new JPanel();
65
+        }
59 66
         layoutComponents();
60 67
         getCancelButton().setText("Close");
61 68
         getCancelButton().addActionListener(this);

+ 1
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/framemanager/tree/TreeFrameManager.java Ver arquivo

@@ -319,8 +319,7 @@ public class TreeFrameManager implements FrameManager, Serializable, ConfigChang
319 319
             }
320 320
 
321 321
             if (activeFrameManager.getActiveFrame() != null) {
322
-                selectionChanged(new SwingWindowSelectedEvent(
323
-                        Optional.ofNullable(activeFrameManager.getActiveFrame())));
322
+                selectionChanged(new SwingWindowSelectedEvent(activeFrameManager.getActiveFrame()));
324 323
             }
325 324
         });
326 325
     }

+ 3
- 7
ui_swing/src/com/dmdirc/addons/ui_swing/framemanager/windowmenu/CloseActiveWindowMenuItem.java Ver arquivo

@@ -43,7 +43,7 @@ import net.engio.mbassy.listener.Invoke;
43 43
 /**
44 44
  * A Menu item that closes the active window when triggered.
45 45
  */
46
-public class CloseActiveWindowMenuItem extends JMenuItem implements ActionListener {
46
+public class CloseActiveWindowMenuItem extends JMenuItem {
47 47
 
48 48
     private final ActiveFrameManager activeFrameManager;
49 49
     private final SwingEventBus eventBus;
@@ -67,15 +67,11 @@ public class CloseActiveWindowMenuItem extends JMenuItem implements ActionListen
67 67
      * Initialises the menu item adding listeners as required.
68 68
      */
69 69
     public void init() {
70
-        addActionListener(this);
70
+        addActionListener(l -> activeFrameManager.getActiveFrame()
71
+                .ifPresent(c -> c.getContainer().close()));
71 72
         eventBus.subscribe(this);
72 73
     }
73 74
 
74
-    @Override
75
-    public void actionPerformed(final ActionEvent e) {
76
-        activeFrameManager.getActiveFrame().getContainer().close();
77
-    }
78
-
79 75
     @Handler(invocation = EdtHandlerInvocation.class, delivery = Invoke.Asynchronously)
80 76
     public void windowAdded(final SwingWindowAddedEvent event) {
81 77
         setEnabled(true);

+ 1
- 1
ui_swing/src/com/dmdirc/addons/ui_swing/framemanager/windowmenu/WindowMenuSeparator.java Ver arquivo

@@ -64,7 +64,7 @@ public class WindowMenuSeparator extends JPopupMenu.Separator implements ActionL
64 64
 
65 65
     @Override
66 66
     public void actionPerformed(final ActionEvent e) {
67
-        activeFrameManager.getActiveFrame().getContainer().close();
67
+        activeFrameManager.getActiveFrame().ifPresent(c -> c.getContainer().close());
68 68
     }
69 69
 
70 70
     @Handler(invocation = EdtHandlerInvocation.class, delivery = Invoke.Asynchronously)

+ 2
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/framemanager/windowmenu/WindowSelectionFontChanger.java Ver arquivo

@@ -53,11 +53,9 @@ public class WindowSelectionFontChanger {
53 53
         this.window = window;
54 54
     }
55 55
 
56
-    public void init(final ActiveFrameManager activeFrameMaanger,
57
-            final SwingEventBus eventBus) {
56
+    public void init(final ActiveFrameManager activeFrameMaanger, final SwingEventBus eventBus) {
58 57
         eventBus.subscribe(this);
59
-        selectionChanged(new SwingWindowSelectedEvent(
60
-                Optional.ofNullable(activeFrameMaanger.getActiveFrame())));
58
+        selectionChanged(new SwingWindowSelectedEvent(activeFrameMaanger.getActiveFrame()));
61 59
     }
62 60
 
63 61
     @Handler(invocation = EdtHandlerInvocation.class, delivery = Invoke.Asynchronously)

+ 3
- 1
ui_swing/src/com/dmdirc/addons/ui_swing/interfaces/ActiveFrameManager.java Ver arquivo

@@ -24,6 +24,8 @@ package com.dmdirc.addons.ui_swing.interfaces;
24 24
 
25 25
 import com.dmdirc.addons.ui_swing.components.frames.TextFrame;
26 26
 
27
+import java.util.Optional;
28
+
27 29
 /**
28 30
  * Interface to the management of the active window in the swing ui.
29 31
  */
@@ -34,5 +36,5 @@ public interface ActiveFrameManager {
34 36
      *
35 37
      * @return The active window
36 38
      */
37
-    TextFrame getActiveFrame();
39
+    Optional<TextFrame> getActiveFrame();
38 40
 }

+ 2
- 12
windowstatus/src/com/dmdirc/addons/windowstatus/WindowStatusManager.java Ver arquivo

@@ -90,13 +90,7 @@ public class WindowStatusManager implements ConfigChangeListener {
90 90
      * Loads the plugin.
91 91
      */
92 92
     public void onLoad() {
93
-        panel = UIUtilities.invokeAndWait(new Callable<WindowStatusPanel>() {
94
-
95
-            @Override
96
-            public WindowStatusPanel call() {
97
-                return new WindowStatusPanel();
98
-            }
99
-        });
93
+        panel = UIUtilities.invokeAndWait(WindowStatusPanel::new);
100 94
         eventBus.publishAsync(new StatusBarComponentAddedEvent(panel));
101 95
         swingEventBus.subscribe(this);
102 96
         identityController.getGlobalConfiguration().addChangeListener(domain, this);
@@ -132,11 +126,7 @@ public class WindowStatusManager implements ConfigChangeListener {
132 126
 
133 127
     /** Update the window status using the current active window. */
134 128
     public void updateStatus() {
135
-        final TextFrame active = activeFrameManager.getActiveFrame();
136
-
137
-        if (active != null) {
138
-            updateStatus(active.getContainer());
139
-        }
129
+        activeFrameManager.getActiveFrame().ifPresent(c -> updateStatus(c.getContainer()));
140 130
     }
141 131
 
142 132
     /**

Carregando…
Cancelar
Salvar