From: Kimmo R. <ki...@us...> - 2011-08-11 13:30:02
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/group In directory vz-cvs-4.sog:/tmp/cvs-serv30512/src/games/stendhal/client/gui/group Modified Files: GroupPanel.java MemberPopupMenu.java Log Message: Added "Where" to group member popup menu. Feature request [3387819] "[Stendhal] Add /where to group members" Index: MemberPopupMenu.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/group/MemberPopupMenu.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MemberPopupMenu.java 24 Jan 2011 22:45:52 -0000 1.2 --- MemberPopupMenu.java 11 Aug 2011 13:29:58 -0000 1.3 *************** *** 28,41 **** private final String member; ! MemberPopupMenu(String member) { this.member = member; ! JMenuItem item = new JMenuItem("Kick"); ! this.add(item); ! item.addActionListener(new KickAction()); ! ! item = new JMenuItem("Make Leader"); ! this.add(item); ! item.addActionListener(new TransferLeadershipAction()); } --- 28,63 ---- private final String member; ! /** ! * Create a popup menu for a group member. ! * ! * @param member member name ! * @param showLeaderOps <code>true</code> if leader operations such as ! * kicking should be included in the menu ! */ ! MemberPopupMenu(String member, boolean showLeaderOps) { this.member = member; + + JMenuItem item = new JMenuItem("Where"); + item.addActionListener(new WhereAction()); + add(item); ! if (showLeaderOps) { ! item = new JMenuItem("Kick"); ! add(item); ! item.addActionListener(new KickAction()); ! ! item = new JMenuItem("Make Leader"); ! add(item); ! item.addActionListener(new TransferLeadershipAction()); ! } ! } ! ! /** ! * Listener for activating the where menu item. ! */ ! private class WhereAction implements ActionListener { ! public void actionPerformed(ActionEvent e) { ! SlashActionRepository.get("where").execute(null, member); ! } } Index: GroupPanel.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/group/GroupPanel.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** GroupPanel.java 17 Feb 2011 21:04:48 -0000 1.15 --- GroupPanel.java 11 Aug 2011 13:29:58 -0000 1.16 *************** *** 411,426 **** @Override protected void showPopup(final MouseEvent e) { - Member me = memberList.getMember(User.getCharacterName()); - if (!me.isLeader()) { - // Only the leader needs the popup menus, at least for now - return; - } int index = memberListComponent.locationToIndex(e.getPoint()); Object obj = memberListComponent.getModel().getElementAt(index); ! // no menu for the player herself ! if ((obj instanceof Member) && (obj != me)) { Member member = (Member) obj; ! final JPopupMenu popup = new MemberPopupMenu(member.getName()); popup.show(memberListComponent, e.getX() - POPUP_OFFSET, e.getY() - POPUP_OFFSET); } --- 411,424 ---- @Override protected void showPopup(final MouseEvent e) { int index = memberListComponent.locationToIndex(e.getPoint()); Object obj = memberListComponent.getModel().getElementAt(index); ! if (obj instanceof Member) { ! Member me = memberList.getMember(User.getCharacterName()); Member member = (Member) obj; ! // Show leader operations only if the user is the leader, and ! // only for the other members ! boolean showLeaderOps = me.isLeader() && (obj != me); ! final JPopupMenu popup = new MemberPopupMenu(member.getName(), showLeaderOps); popup.show(memberListComponent, e.getX() - POPUP_OFFSET, e.getY() - POPUP_OFFSET); } |