Pārlūkot izejas kodu

Plugin support for optional FrameContainer parents

Change-Id: Ief9fccad45d654ffaee9d7a124ebc39f7af56166
Depends-On: Ibaf13d210cd01e73adf08bac359244b14faef088
Reviewed-on: http://gerrit.dmdirc.com/3469
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
changes/69/3469/2
Chris Smith 10 gadus atpakaļ
vecāks
revīzija
6682b0b318

+ 3
- 1
src/com/dmdirc/addons/logging/HistoryWindow.java Parādīt failu

@@ -28,6 +28,7 @@ import com.dmdirc.ui.core.components.WindowComponent;
28 28
 import com.dmdirc.util.URLBuilder;
29 29
 import com.dmdirc.util.io.ReverseFileReader;
30 30
 
31
+import com.google.common.base.Optional;
31 32
 import com.google.common.eventbus.EventBus;
32 33
 
33 34
 import java.util.Arrays;
@@ -64,7 +65,8 @@ public class HistoryWindow extends FrameContainer {
64 65
 
65 66
     @Override
66 67
     public Connection getConnection() {
67
-        return getParent() == null ? null : getParent().getConnection();
68
+        final Optional<FrameContainer> parent = getParent();
69
+        return parent.isPresent() ? parent.get().getConnection() : null;
68 70
     }
69 71
 
70 72
 }

+ 2
- 1
src/com/dmdirc/addons/ui_swing/SwingWindowFactory.java Parādīt failu

@@ -44,6 +44,7 @@ import java.util.HashSet;
44 44
 import java.util.Map;
45 45
 import java.util.Set;
46 46
 
47
+import javax.annotation.Nullable;
47 48
 import javax.inject.Inject;
48 49
 import javax.inject.Provider;
49 50
 import javax.inject.Singleton;
@@ -200,7 +201,7 @@ public class SwingWindowFactory implements FrameListener {
200 201
      *
201 202
      * @return A relevant window or null
202 203
      */
203
-    public TextFrame getSwingWindow(final FrameContainer window) {
204
+    public TextFrame getSwingWindow(@Nullable final FrameContainer window) {
204 205
         return windows.get(window);
205 206
     }
206 207
 

+ 1
- 1
src/com/dmdirc/addons/ui_swing/framemanager/buttonbar/ButtonBar.java Parādīt failu

@@ -219,7 +219,7 @@ public final class ButtonBar implements FrameManager, ActionListener,
219 219
         TextFrame parentWindow;
220 220
         for (FrameContainer frame : windowCollection) {
221 221
             window = windowFactory.getSwingWindow(frame);
222
-            parentWindow = windowFactory.getSwingWindow(frame.getParent());
222
+            parentWindow = windowFactory.getSwingWindow(frame.getParent().orNull());
223 223
             if (window != null) {
224 224
                 windowAdded(parentWindow, window);
225 225
             }

+ 5
- 3
src/com/dmdirc/addons/ui_swing/framemanager/windowmenu/FrameContainerMenuItem.java Parādīt failu

@@ -29,6 +29,8 @@ import com.dmdirc.addons.ui_swing.interfaces.ActiveFrameManager;
29 29
 import com.dmdirc.interfaces.FrameInfoListener;
30 30
 import com.dmdirc.ui.messages.Styliser;
31 31
 
32
+import com.google.common.base.Optional;
33
+
32 34
 import java.awt.Font;
33 35
 import java.awt.event.ActionEvent;
34 36
 import java.awt.event.ActionListener;
@@ -117,9 +119,9 @@ public class FrameContainerMenuItem extends JMenuItem implements FrameInfoListen
117 119
     public void selectionChanged(final TextFrame window) {
118 120
         if (frame.equals(window.getContainer())) {
119 121
             setFont(getFont().deriveFont(Font.BOLD));
120
-            final FrameContainer parentWindow = window.getContainer().getParent();
121
-            if (parentWindow != null) {
122
-                manager.parentSelection(parentWindow);
122
+            final Optional<FrameContainer> parentWindow = window.getContainer().getParent();
123
+            if (parentWindow.isPresent()) {
124
+                manager.parentSelection(parentWindow.get());
123 125
             }
124 126
         } else {
125 127
             setFont(getFont().deriveFont(Font.PLAIN));

+ 4
- 6
src/com/dmdirc/addons/ui_swing/framemanager/windowmenu/WindowMenuFrameManager.java Parādīt failu

@@ -36,6 +36,8 @@ import com.dmdirc.interfaces.config.AggregateConfigProvider;
36 36
 import com.dmdirc.plugins.PluginDomain;
37 37
 import com.dmdirc.ui.IconManager;
38 38
 
39
+import com.google.common.base.Optional;
40
+
39 41
 import java.awt.Component;
40 42
 import java.awt.event.ActionEvent;
41 43
 import java.awt.event.ActionListener;
@@ -267,13 +269,9 @@ public class WindowMenuFrameManager extends JMenu implements
267 269
     }
268 270
 
269 271
     private JMenu getParentMenu(final FrameContainer window) {
270
-        final FrameContainer parent = window.getParent();
272
+        final Optional<FrameContainer> parent = window.getParent();
271 273
 
272
-        if (parent == null) {
273
-            return this;
274
-        } else {
275
-            return menus.get(parent);
276
-        }
274
+        return parent.isPresent() ? menus.get(parent.get()) : this;
277 275
     }
278 276
 
279 277
     private void replaceItemWithMenu(final JMenu parentMenu,

+ 1
- 1
src/com/dmdirc/addons/ui_web/Client.java Parādīt failu

@@ -62,7 +62,7 @@ public class Client {
62 62
         while (!queued.isEmpty()) {
63 63
             final Window window = queued.remove(0);
64 64
             final Window parent = controller.getWindowManager()
65
-                    .getWindow(window.getContainer().getParent());
65
+                    .getWindow(window.getContainer().getParent().orNull());
66 66
 
67 67
             if (parent == null) {
68 68
                 events.add(new Event("newwindow", window));

+ 3
- 1
src/com/dmdirc/addons/ui_web/WebWindowManager.java Parādīt failu

@@ -39,6 +39,8 @@ import java.util.HashMap;
39 39
 import java.util.HashSet;
40 40
 import java.util.Map;
41 41
 
42
+import javax.annotation.Nullable;
43
+
42 44
 /**
43 45
  * Manages WebUI windows.
44 46
  */
@@ -96,7 +98,7 @@ public class WebWindowManager implements FrameListener {
96 98
      *
97 99
      * @return The corresponding web window, or null if there is none
98 100
      */
99
-    public WebWindow getWindow(final FrameContainer container) {
101
+    public WebWindow getWindow(@Nullable final FrameContainer container) {
100 102
         return windows.get(container);
101 103
     }
102 104
 

+ 7
- 4
src/com/dmdirc/addons/ui_web/uicomponents/WebWindow.java Parādīt failu

@@ -35,6 +35,8 @@ import com.dmdirc.ui.messages.IRCDocumentListener;
35 35
 import com.dmdirc.ui.messages.IRCTextAttribute;
36 36
 import com.dmdirc.ui.messages.Styliser;
37 37
 
38
+import com.google.common.base.Optional;
39
+
38 40
 import java.awt.Color;
39 41
 import java.awt.font.TextAttribute;
40 42
 import java.text.AttributedCharacterIterator;
@@ -70,12 +72,13 @@ public class WebWindow implements Window, IRCDocumentListener,
70 72
         parent.addFrameInfoListener(this);
71 73
         parent.addCloseListener(this);
72 74
 
73
-        if (parent.getParent() == null) {
74
-            handler.addEvent(new Event("newwindow", this));
75
-        } else {
75
+        final Optional<FrameContainer> grandParent = parent.getParent();
76
+        if (grandParent.isPresent()) {
76 77
             handler.addEvent(new Event("newchildwindow",
77 78
                     new Object[]{controller.getWindowManager().getWindow(
78
-                                parent.getParent()), this}));
79
+                                grandParent.get()), this}));
80
+        } else {
81
+            handler.addEvent(new Event("newwindow", this));
79 82
         }
80 83
     }
81 84
 

Notiek ielāde…
Atcelt
Saglabāt