1 17 package org.columba.mail.gui.config.accountwizard; 18 19 import net.javaprog.ui.wizard.DataModel; 20 import net.javaprog.ui.wizard.WizardModelEvent; 21 import net.javaprog.ui.wizard.WizardModelListener; 22 23 import org.columba.mail.config.AccountItem; 24 import org.columba.mail.config.ImapItem; 25 import org.columba.mail.config.MailConfig; 26 import org.columba.mail.config.PopItem; 27 import org.columba.mail.folder.FolderCreationException; 28 import org.columba.mail.folder.FolderFactory; 29 import org.columba.mail.folder.IMailFolder; 30 import org.columba.mail.folder.imap.IMAPRootFolder; 31 import org.columba.mail.gui.tree.FolderTreeModel; 32 import org.columba.mail.gui.util.WelcomeMessage; 33 import org.columba.mail.mailchecking.MailCheckingManager; 34 import org.columba.mail.pop3.POP3ServerCollection; 35 import org.columba.ristretto.message.Address; 36 37 class AccountCreator implements WizardModelListener { 38 protected DataModel data; 39 40 public AccountCreator(DataModel data) { 41 this.data = data; 42 } 43 44 public void wizardFinished(WizardModelEvent e) { 45 String type = (String ) data.getData("IncomingServer.type"); 46 AccountItem account = MailConfig.getInstance().getAccountList() 47 .addEmptyAccount(type.toLowerCase()); 48 49 if (account == null) { 50 throw new RuntimeException ("Account templates missing!"); 52 } 53 54 account.setName((String ) data.getData("Identity.accountName")); 55 account.getIdentity().setAddress( 56 (Address) data.getData("Identity.address")); 57 58 IMailFolder folder = null; 59 if (type.equals("POP3")) { 60 PopItem pop = account.getPopItem(); 61 pop.setString("host", (String ) data.getData("IncomingServer.host")); 62 pop 63 .setString("user", (String ) data 64 .getData("IncomingServer.login")); 65 POP3ServerCollection.getInstance().add(account); 66 67 folder = FolderTreeModel.getInstance().getFolder("101"); 68 } else { 69 ImapItem imap = account.getImapItem(); 70 imap 71 .setString("host", (String ) data 72 .getData("IncomingServer.host")); 73 imap.setString("user", (String ) data 74 .getData("IncomingServer.login")); 75 76 85 try { 86 91 IMailFolder inbox = FolderFactory.getInstance().createIMAPRootFolder(account); 92 folder = inbox; 93 } catch (FolderCreationException e1) { 94 e1.printStackTrace(); 95 } 96 97 116 } 117 118 try { 120 Address adr = (Address) data.getData("Identity.address"); 121 WelcomeMessage.addWelcomeMessage(folder, adr.toString(), 122 new Integer (account.getUid()).toString()); 123 } catch (Exception e1) { 124 e1.printStackTrace(); 125 } 126 127 MailCheckingManager.getInstance().add(account); 129 130 MailCheckingManager.getInstance().update(); 132 133 account.getSmtpItem().setString("host", 134 (String ) data.getData("OutgoingServer.host")); 135 136 account.getSmtpItem().setString("user", 138 (String ) data.getData("IncomingServer.login")); 139 } 140 141 public void stepShown(WizardModelEvent e) { 142 } 143 144 public void wizardCanceled(WizardModelEvent e) { 145 } 146 147 public void wizardModelChanged(WizardModelEvent e) { 148 } 149 } 150 | Popular Tags |