1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 package com.buckosoft.fibs.BuckoFIBS.gui.playerList;
68
69 import java.awt.event.ActionEvent;
70 import java.awt.event.ActionListener;
71
72 import javax.swing.JMenuItem;
73 import javax.swing.JPopupMenu;
74
75 import com.buckosoft.fibs.BuckoFIBS.GroupManager;
76 import com.buckosoft.fibs.BuckoFIBS.gui.playerList.group.GroupPopupSubmenu;
77 import com.buckosoft.fibs.domain.Player;
78
79
80
81
82
83
84
85 public class PlayerListPopupMenu extends JPopupMenu implements ActionListener {
86 private final static boolean DEBUG = false;
87 private static final long serialVersionUID = 1L;
88
89 private JMenuItem watchMenuItem = null;
90 private JMenuItem lookMenuItem = null;
91 private JMenuItem unwatchMenuItem = null;
92 private JMenuItem whoisMenuItem = null;
93 private JMenuItem viewProfileMenuItem = null;
94 private JMenuItem updateMenuItem = null;
95 private InvitePopupSubmenu invitePopupSubmenu = null;
96 private RepBotPopupSubmenu repbotPopupSubmenu = null;
97 private GroupPopupSubmenu groupPopupSubmenu = null;
98
99 private ActionListener menuHandler = null;
100
101 private Player player;
102
103 public final static String s_setVisible = "setVisible";
104
105
106
107
108 public PlayerListPopupMenu() {
109 super();
110 initialize();
111 }
112
113
114
115
116
117 private void initialize() {
118 this.add(getInvitePopupSubmenu());
119 this.add(getGroupPopupSubmenu());
120 this.addSeparator();
121 this.add(getLookMenuItem());
122 this.add(getWatchMenuItem());
123 this.add(getUnwatchMenuItem());
124 this.addSeparator();
125 this.add(getRepBotPopupSubmenu());
126 this.add(getWhoisMenuItem());
127 this.add(getViewProfileMenuItem());
128 this.add(getUpdateMenuItem());
129
130 }
131
132
133
134
135 public void setMenuHandler(ActionListener c) {
136 this.menuHandler = c;
137 this.getInvitePopupSubmenu().setMenuHandler(c);
138 this.getRepBotPopupSubmenu().setMenuHandler(c);
139 }
140
141 public void setGroupManager(GroupManager groupManager) {
142 this.getGroupPopupSubmenu().setGroupManager(groupManager);
143 }
144
145
146
147
148 public void setPlayer(Player player) {
149 this.player = player;
150 }
151
152
153
154
155 public Player getPlayer() {
156 return(player);
157 }
158
159
160
161
162 public void actionPerformed(ActionEvent e) {
163 menuHandler.actionPerformed(e);
164 }
165
166
167
168
169
170
171 private JMenuItem getWatchMenuItem() {
172 if (watchMenuItem == null) {
173 watchMenuItem = new JMenuItem();
174 watchMenuItem.setText("Watch");
175 watchMenuItem.addActionListener(this);
176 }
177 return watchMenuItem;
178 }
179
180
181
182
183
184
185 private JMenuItem getLookMenuItem() {
186 if (lookMenuItem == null) {
187 lookMenuItem = new JMenuItem();
188 lookMenuItem.setText("Look");
189 lookMenuItem.setEnabled(false);
190 lookMenuItem.addActionListener(this);
191 }
192 return lookMenuItem;
193 }
194
195
196
197
198
199
200 private JMenuItem getUnwatchMenuItem() {
201 if (unwatchMenuItem == null) {
202 unwatchMenuItem = new JMenuItem();
203 unwatchMenuItem.setText("Unwatch");
204 unwatchMenuItem.setEnabled(false);
205 unwatchMenuItem.addActionListener(this);
206 }
207 return unwatchMenuItem;
208 }
209
210
211
212
213
214
215 private JMenuItem getWhoisMenuItem() {
216 if (whoisMenuItem == null) {
217 whoisMenuItem = new JMenuItem();
218 whoisMenuItem.setText("Whois");
219 whoisMenuItem.setEnabled(false);
220 whoisMenuItem.addActionListener(this);
221 }
222 return whoisMenuItem;
223 }
224
225
226
227
228
229
230 private JMenuItem getViewProfileMenuItem() {
231 if (viewProfileMenuItem == null) {
232 viewProfileMenuItem = new JMenuItem();
233 viewProfileMenuItem.setText("View Profile");
234 viewProfileMenuItem.setEnabled(false);
235 viewProfileMenuItem.addActionListener(this);
236 }
237 return viewProfileMenuItem;
238 }
239
240
241
242
243
244
245 private JMenuItem getUpdateMenuItem() {
246 if (updateMenuItem == null) {
247 updateMenuItem = new JMenuItem();
248 updateMenuItem.setText("Update");
249 updateMenuItem.setEnabled(true);
250 updateMenuItem.addActionListener(this);
251 }
252 return updateMenuItem;
253 }
254
255 protected InvitePopupSubmenu getInvitePopupSubmenu() {
256 if (invitePopupSubmenu == null) {
257 invitePopupSubmenu = new InvitePopupSubmenu();
258 invitePopupSubmenu.addActionListener(this);
259 }
260 return(invitePopupSubmenu);
261 }
262
263 protected RepBotPopupSubmenu getRepBotPopupSubmenu() {
264 if (repbotPopupSubmenu == null) {
265 repbotPopupSubmenu = new RepBotPopupSubmenu();
266 repbotPopupSubmenu.addActionListener(this);
267 }
268 return(repbotPopupSubmenu);
269 }
270
271 protected GroupPopupSubmenu getGroupPopupSubmenu() {
272 if (groupPopupSubmenu == null) {
273 groupPopupSubmenu = new GroupPopupSubmenu();
274 }
275 return(groupPopupSubmenu);
276 }
277
278
279
280
281 @Override
282 public void setVisible(boolean arg0) {
283 super.setVisible(arg0);
284 if (DEBUG)
285 System.out.println("PlayerListPopupMenu: setVisible(" + arg0 + ")");
286 ActionEvent ae = new ActionEvent(this, 0, s_setVisible, arg0 ? 1 : 0);
287 this.actionPerformed(ae);
288 }
289
290 public void rebuildGroups() {
291 this.groupPopupSubmenu.repopulate(player);
292 }
293 }