[jboss-cvs] jboss-seam/src/mail/org/jboss/seam/mail/ui ...
Peter Muir
peter at bleepbleep.org.uk
Sat Sep 1 16:34:33 EDT 2007
User: pmuir
Date: 07/09/01 16:34:33
Modified: src/mail/org/jboss/seam/mail/ui UIAttachment.java
Log:
JBSEAM-1601
Revision Changes Path
1.10 +58 -2 jboss-seam/src/mail/org/jboss/seam/mail/ui/UIAttachment.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIAttachment.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/mail/org/jboss/seam/mail/ui/UIAttachment.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- UIAttachment.java 28 Aug 2007 11:58:46 -0000 1.9
+++ UIAttachment.java 1 Sep 2007 20:34:33 -0000 1.10
@@ -10,6 +10,7 @@
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.activation.URLDataSource;
+import javax.el.ValueExpression;
import javax.faces.FacesException;
import javax.faces.component.ValueHolder;
import javax.faces.context.FacesContext;
@@ -19,19 +20,42 @@
import javax.mail.internet.MimeBodyPart;
import javax.mail.util.ByteArrayDataSource;
+import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.ui.util.JSF;
import org.jboss.seam.util.FacesResources;
+import org.jboss.seam.util.RandomStringUtils;
import org.jboss.seam.util.Reflections;
public class UIAttachment extends MailComponent implements ValueHolder
{
+ public class AttachmentStatus
+ {
+
+ private String contentId;
+
+ public String getContentId()
+ {
+ return contentId;
+ }
+
+ public void setContentId(String contentId)
+ {
+ this.contentId = contentId;
+ }
+
+ }
+
private Object value;
private String contentType;
private String fileName;
+ private String status;
+
+ private String disposition = "attachment";
+
public Object getValue()
{
if (value != null)
@@ -49,6 +73,16 @@
this.value = value;
}
+ public String getStatus()
+ {
+ return status;
+ }
+
+ public void setStatus(String status)
+ {
+ this.status = status;
+ }
+
@Override
public void encodeBegin(FacesContext context) throws IOException
{
@@ -112,10 +146,20 @@
}
if (ds != null)
{
- BodyPart attachment = new MimeBodyPart();
+ MimeBodyPart attachment = new MimeBodyPart();
+ // Need to manually set the contentid
+ String contentId = RandomStringUtils.randomAlphabetic(20).toLowerCase();
+ attachment.setContentID("<" + contentId + ">");
attachment.setDataHandler(new DataHandler(ds));
attachment.setFileName(getName(ds.getName()));
+ attachment.setDisposition(getDisposition());
super.getRootMultipart().addBodyPart(attachment);
+ if (getStatus() != null)
+ {
+ AttachmentStatus attachmentStatus = new AttachmentStatus();
+ attachmentStatus.setContentId(contentId);
+ Contexts.getEventContext().set(getStatus(), attachmentStatus);
+ }
}
}
catch (MessagingException e)
@@ -197,4 +241,16 @@
throw new UnsupportedOperationException("Cannot attach a converter to an attachment");
}
+ public String getDisposition()
+ {
+ return disposition;
+ }
+
+ public void setDisposition(String disposition)
+ {
+ if ("attachment".equals(disposition) || "inline".equals(disposition))
+ {
+ this.disposition = disposition;
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list