001package com.ganteater.ae.desktop.ui;
002
003import java.awt.Graphics;
004import java.awt.event.MouseAdapter;
005import java.awt.event.MouseEvent;
006
007import javax.swing.JMenuItem;
008
009import com.ganteater.ae.desktop.editor.TaskEditor;
010
011public class TaskMenuItem extends JMenuItem {
012
013        private static final long serialVersionUID = -4999333547754164224L;
014        private TaskEditor taskEditor;
015
016        public TaskMenuItem(String name, final TaskEditor taskEditor) {
017                super(name);
018                this.taskEditor = taskEditor;
019                addMouseListener(new MouseAdapter() {
020                        @Override
021                        public void mousePressed(MouseEvent e) {
022                                boolean running = taskEditor.isRunning();
023                                TaskMenuItem source = (TaskMenuItem) e.getSource();
024                                
025                                switch (e.getButton()) {
026                                case MouseEvent.BUTTON1:
027                                        if (!running) {
028                                                taskEditor.select();
029                                                taskEditor.runTask();
030                                        }
031                                        break;
032
033                                case MouseEvent.BUTTON3:
034                                        source.setEnabled(true);
035                                        taskEditor.select();
036                                        if (running) {
037                                                taskEditor.stopTask();
038                                        } else {
039                                                taskEditor.closeTab();
040                                        }
041                                        break;
042
043                                default:
044                                }
045                        }
046                });
047
048        }
049
050        public AEPanel getTaskEditor() {
051                return taskEditor;
052        }
053
054        @Override
055        public void paint(Graphics g) {
056                boolean running = taskEditor.isRunning();
057                setEnabled(!running);
058                super.paint(g);
059        }
060
061}