/* * MailSenderComponent.java * * Created on den 18 september 2001, 00:40 */ package ip1.u9; import ip1.u7.b.ServerInfoChangeListener; import ip1.u7.b.ServerInfo; import ip1.u7.b.ServerInfoChangeListener; import ip1.u7.b.ServerInfoChangeEvent; import ip1.u7.a.SimpleContentPanel; import javax.mail.Message; import ip1.u9.util.MessageWrap; /** Komponent för att skicka e-postmeddelanden. Vid begäran att skicka ett meddelande * öppnas en grafisk komponent (ExtendedMailSenderGUI) som fylls i av användaren. * * @author Henrik Johansson, DS80 * @version ht2001 */ public class MailSenderComponent extends ip1.u7.a.MailSender { private MailClientGUI mailClientGUI = null; private ServerInfo serverInfo; /** Skapar en ny MailSenderComponent */ public MailSenderComponent() { } /** Anropas när användaren begärt att få skicka ett e-postmeddelande av något slag. * vilken typ av meddelande detta är besatäms av vilken MessageWrap-klass som skickas med. * * @param mw visar hur det nya meddelandet skall formateras och eventuell information * som skall vara i fylld från början. */ public void sendMail(MessageWrap mw) { new InternalSendMail(mw, this); } /** Sätter kontrollklassen. Prenumererar på ServerInfoChangeEvent för att få informatrion * om kontoförändringar, så att mailen skickas via rätt server. * *@param controller kontrollklassen */ public void setController(MailClientGUI controller) { this.mailClientGUI = controller; mailClientGUI.addServerInfoChangeListener(new ServerInfoChangeListener() { public void dispatchServerInfoChange(ServerInfoChangeEvent evt) { serverInfo = evt.getServerInfo(); } }); } // Sändningen av brev sker i en intern klass private class InternalSendMail implements Runnable { private MailSenderComponent msc; private MessageWrap mw; private InternalSendMail(MessageWrap mw, MailSenderComponent msc) { this.mw = mw; this.msc = msc; (new Thread(this)).start(); } public void run() { new ExtendedMailSenderGUI(new MultiPropertiesPanel(serverInfo), new MultiContentPanel(), mw, msc, true, false); } } /** Anropas av komponentens kontrollklass vid uppstart. */ protected void start() { } /** Anropas av komponentens kontrollklass när programmet avslutas. */ protected void stop() { } }