|                                                                                                              1   package org.columba.mail.gui.config.account;
 2
 3   import java.awt.event.ActionEvent
  ; 4   import java.awt.event.ItemEvent
  ; 5   import java.awt.event.ItemListener
  ; 6   import java.io.File
  ; 7   import java.util.Observable
  ; 8   import java.util.Observer
  ; 9
 10  import org.columba.api.gui.frame.IFrameMediator;
 11  import org.columba.core.desktop.ColumbaDesktop;
 12  import org.columba.core.gui.action.AbstractColumbaAction;
 13  import org.columba.mail.config.AccountItem;
 14  import org.columba.mail.config.Identity;
 15  import org.columba.mail.gui.composer.ComposerController;
 16  import org.columba.mail.util.MailResourceLoader;
 17
 18
 19  public class EditSignatureAction extends AbstractColumbaAction implements Observer
  , ItemListener  { 20
 21      private Identity identity;
 22      private ComposerController composerController;
 23
 24      public EditSignatureAction(IFrameMediator frameMediator) {
 25          super(frameMediator, MailResourceLoader.getString(
 26                  "dialog", "account", "editsignature"));
 27
 28          composerController = (ComposerController) getFrameMediator();
 29
 30
 31          composerController.getAccountController().getView().addItemListener(this);
 32
 33          identity = composerController.getModel().getAccountItem().getIdentity();
 34
 35          setEnabled(identity.getSignature() != null && ColumbaDesktop.getInstance().supportsOpen());
 36          identity.addObserver(this);
 37      }
 38
 39      public EditSignatureAction(IFrameMediator frameMediator, AccountItem item) {
 40          super(frameMediator, MailResourceLoader.getString(
 41                  "dialog", "account", "editsignature"));
 42
 43          identity = item.getIdentity();
 44      }
 45
 46      public void actionPerformed(ActionEvent
  e) { 47          File
  signature = identity.getSignature(); 48          if( signature == null) {
 49                          signature = new File
  (System.getProperty("user.home"),".signature"); 51          }
 52
 53          ColumbaDesktop.getInstance().openAndWait(signature);
 54
 55                  identity.setSignature(signature);
 57      }
 58
 59      public void update(Observable
  o, Object  arg) { 60          setEnabled(arg != null && ColumbaDesktop.getInstance().supportsOpen() );
 61      }
 62
 63      public void itemStateChanged(ItemEvent
  e) { 64          identity.removeObserver(this);
 65
 66          if (e.getStateChange() == ItemEvent.SELECTED) {
 67              AccountItem item = (AccountItem) composerController.getAccountController().getView().getSelectedItem();
 68              identity = item.getIdentity();
 69
 70              setEnabled(identity.getSignature() != null && ColumbaDesktop.getInstance().supportsOpen());
 71              identity.addObserver(this);
 72          }
 73
 74      }
 75
 76  }
 77
                                                                                                                                                                                                             |                                                                       
 
 
 
 
 
                                                                                   Popular Tags                                                                                                                                                                                              |