KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > config > account > EditSignatureAction


1 package org.columba.mail.gui.config.account;
2
3 import java.awt.event.ActionEvent JavaDoc;
4 import java.awt.event.ItemEvent JavaDoc;
5 import java.awt.event.ItemListener JavaDoc;
6 import java.io.File JavaDoc;
7 import java.util.Observable JavaDoc;
8 import java.util.Observer JavaDoc;
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 JavaDoc, ItemListener JavaDoc {
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 JavaDoc e) {
47         File JavaDoc signature = identity.getSignature();
48         if( signature == null) {
49             //Create the file
50
signature = new File JavaDoc(System.getProperty("user.home"),".signature");
51         }
52         
53         ColumbaDesktop.getInstance().openAndWait(signature);
54         
55         // update signature -> will notify all listeners that signature changed
56
identity.setSignature(signature);
57     }
58
59     public void update(Observable JavaDoc o, Object JavaDoc arg) {
60         setEnabled(arg != null && ColumbaDesktop.getInstance().supportsOpen() );
61     }
62
63     public void itemStateChanged(ItemEvent JavaDoc 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