1 19 package org.columba.mail.gui.composer.command; 20 21 import java.io.InputStream ; 22 23 import org.columba.api.command.ICommandReference; 24 import org.columba.api.command.IWorkerStatusController; 25 import org.columba.core.command.Command; 26 import org.columba.core.gui.frame.DefaultContainer; 27 import org.columba.mail.command.MailFolderCommandReference; 28 import org.columba.mail.composer.MessageBuilderHelper; 29 import org.columba.mail.folder.IMailbox; 30 import org.columba.mail.gui.composer.ComposerController; 31 import org.columba.mail.gui.composer.ComposerModel; 32 import org.columba.ristretto.message.BasicHeader; 33 import org.columba.ristretto.message.Header; 34 import org.columba.ristretto.message.InputStreamMimePart; 35 import org.columba.ristretto.message.MimeHeader; 36 import org.columba.ristretto.message.MimeType; 37 38 43 public class ForwardCommand extends Command { 44 45 protected ComposerController controller; 46 47 protected ComposerModel model; 48 49 55 public ForwardCommand(ICommandReference reference) { 56 super(reference); 57 } 58 59 public void updateGUI() throws Exception { 60 controller = new ComposerController(); 62 new DefaultContainer(controller); 63 64 controller.setComposerModel(model); 66 67 controller.updateComponents(true); 69 } 70 71 public void execute(IWorkerStatusController worker) throws Exception { 72 IMailbox folder = (IMailbox) ((MailFolderCommandReference) getReference()) 74 .getSourceFolder(); 75 76 Object [] uids = ((MailFolderCommandReference) getReference()).getUids(); 78 79 Header header = folder.getHeaderFields(uids[0], 81 new String [] { "Subject" }); 82 83 model = new ComposerModel(); 85 86 MailFolderCommandReference ref = new MailFolderCommandReference(folder, uids); 90 model.setSourceReference(ref); 91 92 model.setSubject(MessageBuilderHelper 94 .createForwardSubject(new BasicHeader(header).getSubject())); 95 96 MimeHeader mimeHeader = new MimeHeader(); 98 mimeHeader.setMimeType(new MimeType("message", "rfc822")); 99 mimeHeader.setContentDescription((String )folder.getAttribute(uids[0],"columba.subject")); 100 101 103 InputStream messageSourceStream = folder 104 .getMessageSourceStream(uids[0]); 105 model.addMimePart(new InputStreamMimePart(mimeHeader, 106 messageSourceStream)); 107 } 108 109 116 public ComposerModel getModel() { 117 return model; 118 } 119 } 120 | Popular Tags |