[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