Newer
Older
democall3 / src / gui / processors / TutorLabelProcessor.java
geoma48p on 20 Jul 2015 2 KB Started transition to JMS.
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));
	}

}