package gui.processors; import clients.StudentClient; 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 java.util.logging.Logger; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import network.MessageGenerator; import network.sockets.RequestSender; /** * * @author Mark */ public class TutorLabelProcessor extends RequestProcessor { private static final Logger LOG = Logger.getLogger(StudentClient.class.getName()); private final String ip; public TutorLabelProcessor(QueuePanel helpPanel, QueuePanel markingPanel, final String ip) { super(helpPanel, markingPanel); this.ip = ip; } @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 String machine = label.getText(); Status status = getStatus(new Integer(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) { sendCancelHelp(machine); } }); final JMenuItem cancelMarking = new JMenuItem("Cancel Marking"); cancelMarking.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { sendCancelMarking(machine); } }); menu.add(cancelHelp); menu.add(cancelMarking); menu.show((Component) e.getSource(), e.getX(), e.getY()); } else if (status == Status.HELP) { sendCancelHelp(machine); } else if (status == Status.MARKING) { sendCancelMarking(machine); } } }; } public void sendCancelHelp(String id) { new RequestSender(ip).sendRequest(new MessageGenerator().cancelHelp(id)); } public void sendCancelMarking(String id) { new RequestSender(ip).sendRequest(new MessageGenerator().cancelMarking(id)); } }