/* * MailClientGUI.java * * Created on den 16 september 2001, 19:33 */ package ip1.u9; import ip1.u7.b.*; import ip1.u7.a.*; import javax.mail.*; import ip1.u9.util.MessageWrap; /**Agerar kontrollklass i MailClient-applikationen samt behållare för mailkomponenter * och MailTask-objekt. Behållarfunktionaliteten har helt ärvts från ip1.u7.b.MailReceiverGUI. * All komunikation mellan komponenter och mellan MailTask-objekt och komponenter sker via * kontrollklassen, ibland sker detta implecit eftersom komponenterna kan producera Events * som andra komponenter eller MailTask-objekt kan prenumerera på. Eventuella prenumeranter * anmäler sig dock hos denna kontrollklass som i sin tur anmäler sig som prenumerant hos * respektive Eventproducent. Komponenter och/ellr MailTask-objekt behöver därför inte känna * till varandra, utan barakontrollklassen, samt formatet på de Events de prenumererar på. * * @author Henrik Johansson, DS80 * @version ht2001 */ public class MailClientGUI extends MailReceiverGUI { protected MailServerInfoComponent mailServerInfoComponent = null; protected MailSenderComponent mailSenderComponent = null; protected MailInfoComponent mailInfoComponent = null; /** Skapar ett nytt MailClientGUI. Variablerna som skickas med är de fem Mailkomponenterna. * *@param miv *@param mcc *@param sip *@param mrc *@param msc */ public MailClientGUI(MailInfoViewer miv, MailContentComponent mcc, ServerInfoPanel sip, MailReceiveComponent mrc, MailSenderComponent msc) { super(miv, mcc, sip, mrc); mailServerInfoComponent = (MailServerInfoComponent) sip; mailInfoComponent = (MailInfoComponent) miv; setMailSenderComponent(msc); } /** Startar mailkomponenterna. Ger dem en möjlighet att initiera sig själva */ public void startComponents() { super.startComponents(); mailSenderComponent.start(); } /** Stoppa mailkomponenterna. Ger dem en möjlighet att spara undan och städa efter * sig innan applikationen avslutas */ public void stopComponents() { super.stopComponents(); mailSenderComponent.stop(); } /** Sätter MailSender-komponenten som skall användas i applikationen. * *@param msc MailSender-komponenten som skall användas */ public void setMailSenderComponent(MailSenderComponent msc) { mailSenderComponent = msc; msc.setController(this); } /** Skicka ett e-postmeddelande. Formaterat och med den information som finns i mw. * *@param mw */ public void sendMail(MessageWrap mw) { mailSenderComponent.sendMail(mw); } /** Ta bort ett e-postmeddelande. * *@param message Meddelandet som skall tas bort. */ public void removeMail(Message message) { mailInfoComponent.removeMail(message); } }