Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
GroupPopupSubmenu |
|
| 1.6666666666666667;1.667 | ||||
GroupPopupSubmenu$PopupGroup |
|
| 1.6666666666666667;1.667 |
1 | /****************************************************************************** | |
2 | * GroupPopupSubmenu.java - The group submenu for putting a player in groups | |
3 | * $Id$ | |
4 | * | |
5 | * BuckoFIBS - Backgammon by BuckoSoft | |
6 | * Copyright© 2010 - Dick Balaska - BuckoSoft, Corp. | |
7 | * | |
8 | * $Log$ | |
9 | * Revision 1.2 2011/01/01 06:22:09 dick | |
10 | * Javadoc. | |
11 | * | |
12 | * Revision 1.1 2011/01/01 00:17:56 dick | |
13 | * The group submenu for putting a player in groups | |
14 | * | |
15 | */ | |
16 | ||
17 | /* | |
18 | * This program is free software: you can redistribute it and/or modify | |
19 | * it under the terms of the GNU General Public License as published by | |
20 | * the Free Software Foundation, either version 3 of the License, or | |
21 | * (at your option) any later version. | |
22 | * | |
23 | * This program is distributed in the hope that it will be useful, | |
24 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
25 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
26 | * GNU General Public License for more details. | |
27 | * | |
28 | * You should have received a copy of the GNU General Public License | |
29 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
30 | * | |
31 | * The Original Code is BuckoFIBS, <http://www.buckosoft.com/BuckoFIBS/>. | |
32 | * The Initial Developer of the Original Code is Dick Balaska and BuckoSoft, Corp. | |
33 | * | |
34 | */ | |
35 | package com.buckosoft.fibs.BuckoFIBS.gui.playerList.group; | |
36 | ||
37 | import java.awt.Dimension; | |
38 | import java.awt.event.ActionEvent; | |
39 | import java.awt.event.ActionListener; | |
40 | import java.util.LinkedList; | |
41 | ||
42 | import javax.swing.JCheckBoxMenuItem; | |
43 | import javax.swing.JMenu; | |
44 | ||
45 | import com.buckosoft.fibs.BuckoFIBS.GroupManager; | |
46 | import com.buckosoft.fibs.domain.Player; | |
47 | ||
48 | /** The group submenu for putting a player in groups | |
49 | * @author Dick Balaska | |
50 | * @since 2010/12/31 | |
51 | * @version $Revision$ <br> $Date$ | |
52 | * @see <a href="http://cvs.buckosoft.com/Projects/BuckoFIBS/BuckoFIBS/src/main/java/com/buckosoft/fibs/BuckoFIBS/gui/playerList/group/GroupPopupSubmenu.java">cvs GroupPopupSubmenu.java</a> | |
53 | */ | |
54 | public class GroupPopupSubmenu extends JMenu implements ActionListener { | |
55 | private final static boolean DEBUG = false; | |
56 | private static final long serialVersionUID = 1L; | |
57 | ||
58 | private GroupManager groupManager; | |
59 | ||
60 | ||
61 | /** A small helper class that contains a group name and its selected status. | |
62 | * Used for building the GroupPopupSubmenu | |
63 | * @author Dick Balaska | |
64 | * @since 2010/12/31 | |
65 | * @version $Revision$ <br> $Date$ | |
66 | * @see <a href="http://cvs.buckosoft.com/Projects/BuckoFIBS/BuckoFIBS/src/main/java/com/buckosoft/fibs/BuckoFIBS/gui/playerList/group/GroupPopupSubmenu.java">cvs GroupPopupSubmenu.java</a> | |
67 | */ | |
68 | 0 | public class PopupGroup { |
69 | /** The name of the group to display */ | |
70 | public String name; | |
71 | ||
72 | /** Draw this entry as selected */ | |
73 | public boolean selected; | |
74 | } | |
75 | ||
76 | /** Default constructor and initialize. | |
77 | */ | |
78 | public GroupPopupSubmenu() { | |
79 | 0 | super(); |
80 | 0 | initialize(); |
81 | 0 | } |
82 | ||
83 | /** Called when a menu entry from this menu is selected. | |
84 | * @param e What just happened? | |
85 | */ | |
86 | public void actionPerformed(ActionEvent e) { | |
87 | //this.groupManager.menuEvent(e); | |
88 | 0 | String s = e.getActionCommand(); |
89 | 0 | int i = s.indexOf('-'); |
90 | 0 | String gn = s.substring(0, i); |
91 | 0 | String pn = s.substring(i+1); |
92 | if (DEBUG) | |
93 | System.out.println("menu: '" + s + "' gn='" + gn + "' pn='" + pn + "'"); | |
94 | 0 | this.groupManager.popupMenuItemSelected(gn, pn); |
95 | 0 | } |
96 | ||
97 | /** | |
98 | * This method initializes this | |
99 | * | |
100 | */ | |
101 | private void initialize() { | |
102 | 0 | this.setSize(new Dimension(73, 40)); |
103 | 0 | this.setText("Groups"); |
104 | 0 | } |
105 | ||
106 | /** | |
107 | * @return the gameManager | |
108 | */ | |
109 | public GroupManager getGroupManager() { | |
110 | 0 | return groupManager; |
111 | } | |
112 | ||
113 | /** Set our reference to the object that will receive menu events | |
114 | * @param groupManager the groupManager to set | |
115 | */ | |
116 | public void setGroupManager(GroupManager groupManager) { | |
117 | 0 | this.groupManager = groupManager; |
118 | 0 | } |
119 | ||
120 | /** Empty and recreate the entries in the popup menu for this player. | |
121 | * @param player The player who we right-clicked on. | |
122 | */ | |
123 | public void repopulate(Player player) { | |
124 | if (DEBUG) | |
125 | System.out.println("GroupPopupSubmenu: repopulate for player " + player.getId() + " '" + player.getName() + "'"); | |
126 | 0 | this.removeAll(); |
127 | 0 | LinkedList<PopupGroup> lpg = this.groupManager.getGroupsForPlayer(this, player.getId()); |
128 | 0 | for (PopupGroup pg : lpg) { |
129 | 0 | if (pg.name.equals("All")) |
130 | 0 | continue; |
131 | 0 | JCheckBoxMenuItem mi = new JCheckBoxMenuItem(); |
132 | 0 | mi.setText(pg.name); |
133 | 0 | mi.setSelected(pg.selected); |
134 | //mi.setSelected(true); | |
135 | 0 | mi.setActionCommand(pg.name + "-" + player.getName()); |
136 | 0 | mi.setToolTipText("Add this player to this group."); |
137 | 0 | mi.addActionListener(this); |
138 | 0 | this.add(mi); |
139 | 0 | } |
140 | 0 | } |
141 | } |