package gui.processors; import gui.QueuePanel; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; /** * * @author Mark */ public class ServerLabelProcessor extends RequestProcessor { public ServerLabelProcessor(QueuePanel helpPanel, QueuePanel markingPanel) { super(helpPanel, markingPanel); } @Override public final MouseAdapter getMouseAdapter() { return new MouseAdapter() { @Override public void mousePressed(final MouseEvent e) { super.mousePressed(e); final JLabel label = (JLabel) e.getSource(); final Integer machine = new Integer(label.getText()); Status status = getStatus(machine); if (status == Status.BOTH) { final JPopupMenu menu = new JPopupMenu(); final JMenuItem cancelHelp = new JMenuItem("Cancel Help"); cancelHelp.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { cancelHelp(machine); } }); final JMenuItem cancelMarking = new JMenuItem("Cancel Marking"); cancelMarking.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { cancelMarking(machine); } }); menu.add(cancelHelp); menu.add(cancelMarking); menu.show((Component) e.getSource(), e.getX(), e.getY()); } else if (status == Status.HELP) { cancelHelp(machine); } else if (status == Status.MARKING) { cancelMarking(machine); } } }; } }