KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > composer > action > ExternalEditorAction


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.mail.gui.composer.action;
17
18 import java.awt.event.ActionEvent JavaDoc;
19 import java.io.IOException JavaDoc;
20
21 import org.columba.api.gui.frame.IFrameMediator;
22 import org.columba.core.base.SwingWorker;
23 import org.columba.core.desktop.ColumbaDesktop;
24 import org.columba.core.gui.action.AbstractColumbaAction;
25 import org.columba.mail.gui.composer.ComposerController;
26 import org.columba.mail.gui.composer.util.ExternalEditor;
27 import org.columba.mail.util.MailResourceLoader;
28
29 /**
30  * Edit message body text in external application.
31  *
32  * @author fdietz
33  */

34
35 public class ExternalEditorAction extends AbstractColumbaAction {
36     public ExternalEditorAction(IFrameMediator frameMediator) {
37         super(frameMediator, MailResourceLoader.getString("menu", "composer",
38                 "menu_edit_extern_edit"));
39
40         // tooltip text
41
putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu",
42                 "composer", "menu_edit_extern_edit").replaceAll("&", ""));
43
44         setEnabled(ColumbaDesktop.getInstance().supportsOpen());
45     }
46
47     /**
48      *
49      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
50      */

51     public void actionPerformed(ActionEvent JavaDoc evt) {
52         final ComposerController composerController = (ComposerController) getFrameMediator();
53
54         composerController.getView().getFrame().setEnabled(false);
55
56         composerController.getCurrentEditor().setViewEnabled(false);
57
58         final SwingWorker worker = new SwingWorker() {
59             public Object JavaDoc construct() {
60
61                 ExternalEditor Ed = new ExternalEditor();
62
63                 try {
64
65                     Ed.startExternalEditor(composerController
66                             .getCurrentEditor());
67                 } catch (IOException JavaDoc e) {
68                     e.printStackTrace();
69                 }
70
71                 return Ed;
72             }
73
74             // Runs on the event-dispatching thread.
75
public void finished() {
76                 composerController.getView().getFrame().setEnabled(true);
77
78                 composerController.getCurrentEditor().setViewEnabled(true);
79
80             }
81         };
82
83         worker.start(); // required for SwingWorker 3
84
}
85 }
86
Popular Tags