1 package org.columba.mail.gui.composer.action; 17 18 import java.awt.event.ActionEvent ; 19 import java.io.IOException ; 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 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 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 42 "composer", "menu_edit_extern_edit").replaceAll("&", "")); 43 44 setEnabled(ColumbaDesktop.getInstance().supportsOpen()); 45 } 46 47 51 public void actionPerformed(ActionEvent 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 construct() { 60 61 ExternalEditor Ed = new ExternalEditor(); 62 63 try { 64 65 Ed.startExternalEditor(composerController 66 .getCurrentEditor()); 67 } catch (IOException e) { 68 e.printStackTrace(); 69 } 70 71 return Ed; 72 } 73 74 public void finished() { 76 composerController.getView().getFrame().setEnabled(true); 77 78 composerController.getCurrentEditor().setViewEnabled(true); 79 80 } 81 }; 82 83 worker.start(); } 85 } 86 | Popular Tags |