package nl.tudelft.bw4t.client.gui.menu; import java.util.List; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import nl.tudelft.bw4t.client.controller.ClientController; import nl.tudelft.bw4t.client.gui.BW4TClientGUI; import nl.tudelft.bw4t.client.gui.listeners.DropEPartnerActionListener; import nl.tudelft.bw4t.client.gui.listeners.EPartnerMessageSenderActionListener; import nl.tudelft.bw4t.client.gui.listeners.GoToBlockActionListener; import nl.tudelft.bw4t.client.message.BW4TMessage; import nl.tudelft.bw4t.client.message.MessageType; import nl.tudelft.bw4t.map.Zone; import nl.tudelft.bw4t.map.view.ViewEPartner; import nl.tudelft.bw4t.map.view.ViewEntity; public class EPartnerMenu { public static void buildPopUpMenuForEPartner(ViewEPartner ep, BW4TClientGUI gui) { final JPopupMenu popUpMenu = gui.getjPopupMenu(); popUpMenu.removeAll(); // Robot commands BasicMenuOperations.addSectionTitleToPopupMenu("Command my robot to:", popUpMenu); JMenuItem menuItem = new JMenuItem("Drop e-partner"); ClientController controller = gui.getController(); menuItem.addActionListener(new DropEPartnerActionListener(controller, gui)); popUpMenu.add(menuItem); ViewEntity theBot = controller.getMapController().getTheBot(); long id = theBot.getHoldingEpartner(); if (id != -1) { List<String> types = controller.getMapController().getViewEPartner(id).getTypes(); if (types.contains(ViewEPartner.GPS)) { popUpMenu.addSeparator(); // EPartner commands BasicMenuOperations.addSectionTitleToPopupMenu("Inform e-partner that:", popUpMenu); JMenu submenu = BasicMenuOperations.addSubMenuToPopupMenu("I am going to ", gui.getjPopupMenu()); for (Zone room : gui.getController().getMapController().getRooms()) { menuItem = new JMenuItem(room.getName()); menuItem.addActionListener(new EPartnerMessageSenderActionListener( new BW4TMessage(MessageType.IWANTTOGO, room.getName(), "", 0), gui)); submenu.add(menuItem); } } } popUpMenu.addSeparator(); popUpMenu.add(new JMenuItem("Close menu")); } public static void buildPopUpMenuPickUpEPartner(ViewEPartner ep, BW4TClientGUI gui) { gui.getjPopupMenu().removeAll(); // Robot commands BasicMenuOperations.addSectionTitleToPopupMenu("Command my robot to:", gui.getjPopupMenu()); BasicMenuOperations.addEPartnerPickUpMenuItem(gui, ep); gui.getjPopupMenu().addSeparator(); gui.getjPopupMenu().add(new JMenuItem("Close menu")); } public static void buildPopUpMenuMoveToEPartner(ViewEPartner ep, BW4TClientGUI gui) { gui.getjPopupMenu().removeAll(); // Robot commands BasicMenuOperations.addSectionTitleToPopupMenu("Command my robot to:", gui.getjPopupMenu()); BasicMenuOperations.addNavigateObstacleMenuItem(gui); JMenuItem menuItem = new JMenuItem("Go to e-partner"); menuItem.addActionListener(new GoToBlockActionListener(ep.getId(), gui.getController())); gui.getjPopupMenu().add(menuItem); gui.getjPopupMenu().addSeparator(); gui.getjPopupMenu().add(new JMenuItem("Close menu")); } }