package nl.tudelft.bw4t.client.gui.menu; import javax.swing.JMenu; import javax.swing.JMenuItem; import nl.tudelft.bw4t.client.controller.ClientController; import nl.tudelft.bw4t.client.controller.ClientMapController; import nl.tudelft.bw4t.client.gui.BW4TClientGUI; import nl.tudelft.bw4t.client.gui.listeners.MessageSenderActionListener; import nl.tudelft.bw4t.client.message.BW4TMessage; import nl.tudelft.bw4t.client.message.MessageType; import nl.tudelft.bw4t.map.ColorTranslator; import nl.tudelft.bw4t.map.Zone; /** Responsible for building the pop-up menu for sending requests to a player. */ public final class PlayerMenu { /** Should never be instantiated */ private PlayerMenu() { } /** * Used for building the pop-up menu that displays actions * a user can perform when clicking on another player. * * @param playerId * - The playerId that the request should be sent to. */ public static void buildPopUpMenuForRequests(String playerId, ClientController controller) { BW4TClientGUI gui = controller.getGui(); ClientMapController cmc = gui.getController().getMapController(); gui.getjPopupMenu().removeAll(); BasicMenuOperations.addSectionTitleToPopupMenu("Request:", gui.getjPopupMenu()); // Check if the playerId is a specific player String receiver = "Somebody"; if (!"all".equalsIgnoreCase(playerId)) { receiver = playerId; } BasicMenuOperations.addMenuItemToPopupMenu(new BW4TMessage(MessageType.PUTDOWN, null, null, receiver), gui); JMenu submenu = BasicMenuOperations.addSubMenuToPopupMenu(receiver + " go to room", gui.getjPopupMenu()); for (Zone room : cmc.getRooms()) { JMenuItem menuItem = new JMenuItem(room.getName()); menuItem.addActionListener(new MessageSenderActionListener( new BW4TMessage(MessageType.GOTOROOM, room.getName(), null, receiver), controller)); submenu.add(menuItem); } submenu = BasicMenuOperations.addSubMenuToPopupMenu(receiver + " find a color", gui.getjPopupMenu()); for (String color : ColorTranslator.getAllColors()) { JMenuItem menuItem = new JMenuItem(color); menuItem.addActionListener(new MessageSenderActionListener(new BW4TMessage(MessageType.FINDCOLOR, null, color, receiver), controller)); submenu.add(menuItem); } submenu = BasicMenuOperations .addSubMenuToPopupMenu(receiver + " get the color from room", gui.getjPopupMenu()); for (String color : ColorTranslator.getAllColors()) { JMenu submenu2 = new JMenu(color); submenu.add(submenu2); for (Zone room : cmc.getRooms()) { JMenuItem menuItem = new JMenuItem(room.getName()); menuItem.addActionListener(new MessageSenderActionListener(new BW4TMessage( MessageType.GETCOLORFROMROOM, room.getName(), color, receiver), controller)); submenu2.add(menuItem); } } BasicMenuOperations.addSectionTitleToPopupMenu("Ask:", gui.getjPopupMenu()); BasicMenuOperations .addMenuItemToPopupMenu(new BW4TMessage(MessageType.AREYOUCLOSE, null, null, receiver), gui); BasicMenuOperations.addMenuItemToPopupMenu(new BW4TMessage(MessageType.WILLYOUBELONG, null, null, receiver), gui); gui.getjPopupMenu().addSeparator(); JMenuItem menuItem = new JMenuItem("Close menu"); gui.getjPopupMenu().add(menuItem); } }