Newer
Older
democall3 / src / gui / processors / ServerLabelProcessor.java
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);
				}

			}
		};
	}
}