|
@@ -24,7 +24,6 @@ package com.dmdirc.addons.ui_swing.components.statusbar;
|
24
|
24
|
|
25
|
25
|
import com.dmdirc.ClientModule.GlobalConfig;
|
26
|
26
|
import com.dmdirc.DMDircMBassador;
|
27
|
|
-import com.dmdirc.Invite;
|
28
|
27
|
import com.dmdirc.addons.ui_swing.EdtHandlerInvocation;
|
29
|
28
|
import com.dmdirc.addons.ui_swing.MainFrame;
|
30
|
29
|
import com.dmdirc.addons.ui_swing.events.SwingEventBus;
|
|
@@ -32,11 +31,12 @@ import com.dmdirc.addons.ui_swing.events.SwingWindowSelectedEvent;
|
32
|
31
|
import com.dmdirc.events.ServerInviteExpiredEvent;
|
33
|
32
|
import com.dmdirc.events.ServerInviteReceivedEvent;
|
34
|
33
|
import com.dmdirc.interfaces.Connection;
|
|
34
|
+import com.dmdirc.interfaces.InviteManager;
|
35
|
35
|
import com.dmdirc.ui.IconManager;
|
36
|
36
|
|
37
|
37
|
import java.awt.Window;
|
38
|
38
|
import java.awt.event.MouseEvent;
|
39
|
|
-import java.util.Collection;
|
|
39
|
+import java.util.List;
|
40
|
40
|
import java.util.Optional;
|
41
|
41
|
|
42
|
42
|
import javax.inject.Inject;
|
|
@@ -85,9 +85,11 @@ public class InviteLabel extends StatusbarPopupPanel<JLabel> {
|
85
|
85
|
|
86
|
86
|
menu = new JPopupMenu();
|
87
|
87
|
dismiss = new JMenuItem("Dismiss all invites");
|
88
|
|
- dismiss.addActionListener(e -> activeConnection.ifPresent(Connection::removeInvites));
|
|
88
|
+ dismiss.addActionListener(e -> activeConnection.map(Connection::getInviteManager)
|
|
89
|
+ .ifPresent(InviteManager::removeInvites));
|
89
|
90
|
accept = new JMenuItem("Accept all invites");
|
90
|
|
- accept.addActionListener(e -> activeConnection.ifPresent(Connection::acceptInvites));
|
|
91
|
+ accept.addActionListener(e -> activeConnection.map(Connection::getInviteManager)
|
|
92
|
+ .ifPresent(InviteManager::acceptInvites));
|
91
|
93
|
}
|
92
|
94
|
|
93
|
95
|
/**
|
|
@@ -110,12 +112,13 @@ public class InviteLabel extends StatusbarPopupPanel<JLabel> {
|
110
|
112
|
private void popuplateMenu() {
|
111
|
113
|
menu.removeAll();
|
112
|
114
|
|
113
|
|
- if (activeConnection.isPresent()) {
|
114
|
|
- final Collection<Invite> invites = activeConnection.get().getInvites();
|
115
|
|
- for (final Invite invite : invites) {
|
116
|
|
- menu.add(new JMenuItem(new InviteAction(invite)));
|
117
|
|
- }
|
118
|
|
- }
|
|
115
|
+ activeConnection
|
|
116
|
+ .map(Connection::getInviteManager)
|
|
117
|
+ .map(InviteManager::getInvites)
|
|
118
|
+ .ifPresent(invites -> invites.stream()
|
|
119
|
+ .map(InviteAction::new)
|
|
120
|
+ .map(JMenuItem::new)
|
|
121
|
+ .map(menu::add));
|
119
|
122
|
menu.add(new JSeparator());
|
120
|
123
|
menu.add(accept);
|
121
|
124
|
menu.add(dismiss);
|
|
@@ -125,7 +128,10 @@ public class InviteLabel extends StatusbarPopupPanel<JLabel> {
|
125
|
128
|
* Updates the invite label for the currently active server.
|
126
|
129
|
*/
|
127
|
130
|
private void update() {
|
128
|
|
- if (!activeConnection.isPresent() || activeConnection.get().getInvites().isEmpty()) {
|
|
131
|
+ if (activeConnection
|
|
132
|
+ .map(Connection::getInviteManager)
|
|
133
|
+ .map(InviteManager::getInvites)
|
|
134
|
+ .map(List::isEmpty).orElse(true)) {
|
129
|
135
|
setVisible(false);
|
130
|
136
|
closeDialog();
|
131
|
137
|
} else {
|