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}