1 package org.columba.mail.gui.message.action; 17 18 import java.awt.event.ActionEvent ; 19 20 import javax.swing.AbstractAction ; 21 22 import org.columba.addressbook.facade.IContactFacade; 23 import org.columba.addressbook.facade.IContactItem; 24 import org.columba.addressbook.facade.IModelFacade; 25 import org.columba.api.exception.ServiceNotFoundException; 26 import org.columba.api.exception.StoreException; 27 import org.columba.core.resourceloader.IconKeys; 28 import org.columba.core.resourceloader.ImageLoader; 29 import org.columba.mail.connector.FacadeUtil; 30 import org.columba.mail.connector.ServiceConnector; 31 import org.columba.mail.gui.message.util.ColumbaURL; 32 import org.columba.mail.util.MailResourceLoader; 33 import org.columba.ristretto.message.Address; 34 import org.columba.ristretto.parser.ParserException; 35 36 41 public class AddToAddressbookAction extends AbstractAction { 42 private String emailAddress; 43 44 private ColumbaURL url = null; 45 46 49 public AddToAddressbookAction(ColumbaURL url) { 50 super(MailResourceLoader.getString("menu", "mainframe", 51 "viewer_addressbook")); 52 53 putValue(SMALL_ICON, ImageLoader.getSmallIcon(IconKeys.CONTACT_NEW)); 54 55 this.url = url; 56 setEnabled( url != null); 57 if ( url != null) 58 setEnabled( url.isMailTo()); 59 } 60 61 64 public AddToAddressbookAction(String emailAddress) { 65 super(MailResourceLoader.getString("menu", "mainframe", 66 "viewer_addressbook")); 67 68 this.emailAddress = emailAddress; 69 setEnabled(emailAddress != null); 70 71 putValue(SMALL_ICON, ImageLoader.getSmallIcon(IconKeys.CONTACT_NEW)); 72 } 73 74 79 public void actionPerformed(ActionEvent evt) { 80 81 IContactFacade contactFacade = null; 82 IModelFacade modelFacade = null; 83 try { 84 contactFacade = ServiceConnector.getContactFacade(); 85 modelFacade = ServiceConnector.getModelFacade(); 86 } catch (ServiceNotFoundException e) { 87 e.printStackTrace(); 88 return; 89 } 90 91 try { 92 Address address = null; 93 if (emailAddress != null) 94 address = Address.parse(emailAddress); 95 else 96 address = Address.parse(url.getSender()); 98 99 IContactItem contactItem = modelFacade.createContactItem(); 101 FacadeUtil.getInstance().initContactItem(contactItem, 102 address.getDisplayName(), address.getMailAddress()); 103 contactFacade.addContact(contactItem); 104 } catch (ParserException e) { 105 e.printStackTrace(); 106 } catch (StoreException e) { 107 e.printStackTrace(); 108 } 109 } 110 111 } | Popular Tags |