/* * ReplyMailTask.java * * Created on den 19 september 2001, 00:26 */ package ip1.u9; import ip1.u7.b.*; import javax.mail.*; import javax.mail.internet.*; import javax.swing.*; import java.util.*; import java.io.*; import ip1.u9.util.*; /** För allmän information om MailTask-klasserna, se ip1.7.b.MailTask * * @author Henrik Johansson,DS80 * @version ht2001 */ public class ReplyMailTask extends MailTask implements MessageChosenListener, ServerInfoChangeListener{ private Message message = null; private MailClientGUI controller; private ServerInfo serverInfo; /** Skapar en ny ReplyMailTask * * @param controller applikationens kontrollklass */ public ReplyMailTask(MailClientGUI controller) { super(controller); this.controller = controller; } /** initieringskod för ReplyMailTask. Anropas av kontrollanropet när MailTask skapas. * * @param controller applikationens kontrollklass */ protected void initMailTask(MailReceiverGUI controller) { controller.addMessageChosenListener(this); controller.addServerInfoChangeListener(this); this.setText("Svara avsändaren"); this.setEnabled(false); } /** Instruerar kontrollklassen att skicka ett e-postmeddelande mef hjälp av ett * MessageWrap-objekt som skapar svarsbrev till avsändaren. */ protected void mailTascAction() { MessageWrap mw = getMessageWrap(message); controller.sendMail(mw); } /** Returnerar ett MessageWrao-objekt för att svara på e-postmeddelande. * *@param message Meddelandet som skall wrapas. */ protected MessageWrap getMessageWrap(Message message) { try { return MessageWrapFactory.getMessageWrap(message, MessageType.REPLY, serverInfo); } catch(MessagingException e) { JOptionPane.showMessageDialog(null, e.toString(), "Error", JOptionPane.ERROR_MESSAGE); } catch(IOException e) { System.err.println(e.getMessage()); } return null; } /** Tar emot ServerInfoChangeEvents. Gör ReplyMailTask-objektet otillgängligt. * *@param evt Eventet */ public void dispatchServerInfoChange(ServerInfoChangeEvent evt) { this.setEnabled(false); serverInfo = evt.getServerInfo(); } /** Tar emot MessageChosenEvents. Gör ReplyMailTask-objektet tillgängligt. * *@param evt Eventet */ public void dispatchMessageChosen(MessageChosenEvent evt) { if(evt.getMessage() != null) { setEnabled(true); message = evt.getMessage(); } else setEnabled(false); } protected ServerInfo getServerInfo() { return serverInfo; } }