KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > panoptes > controller > actions > TaskAction


1 /*
2  * Created on Aug 31, 2003
3  *
4  */

5 package net.sf.panoptes.controller.actions;
6
7 import java.awt.event.ActionEvent JavaDoc;
8
9 import javax.swing.AbstractAction JavaDoc;
10 import javax.swing.Action JavaDoc;
11 import javax.swing.ImageIcon JavaDoc;
12
13 import org.apache.commons.logging.Log;
14 import org.apache.commons.logging.LogFactory;
15
16 import net.sf.panoptes.controller.MainController;
17
18 import foxtrot.Task;
19 import foxtrot.Worker;
20
21 /**
22  *
23  *
24  * @author Dag Liodden
25  * @version 0.1
26  */

27 public abstract class TaskAction extends BaseAction {
28     
29     protected Log log = LogFactory.getLog(getClass());
30     
31     public TaskAction(String JavaDoc name) {
32         super(name);
33     }
34     public TaskAction(String JavaDoc name, String JavaDoc iconName) {
35         super(name);
36         
37     }
38     
39     public void actionPerformed(final ActionEvent JavaDoc e) {
40         try {
41             Worker.post(new Task() {
42                 public Object JavaDoc run() throws Exception JavaDoc {
43                     doTask(e);
44                     return null;
45                 }
46             });
47         } catch (Exception JavaDoc ex) {
48             log.error("Unable to execute task", ex);
49             MainController.getInstance().displayError("Error", "An error occured whlie performing action", ex);
50         }
51     }
52     
53     public abstract void doTask(ActionEvent JavaDoc e) throws Exception JavaDoc;
54
55 }
56
Popular Tags