Author: norman
Date: Sat Aug  1 16:24:57 2009
New Revision: 799895

URL: http://svn.apache.org/viewvc?rev=799895&view=rev
Log:
Show if the message contains an attachment while displaying the mail table

Added:
    labs/hupa/war/images/attach.png   (with props)
Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
    
labs/hupa/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
    
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
    labs/hupa/src/main/java/org/apache/hupa/shared/data/Message.java
    labs/hupa/src/main/java/org/apache/hupa/shared/data/MessageContent.java

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=799895&r1=799894&r2=799895&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java 
Sat Aug  1 16:24:57 2009
@@ -325,6 +325,27 @@
                subject.setMinimumColumnWidth(200);
                cList.add(subject);
                
+               AttachmentColumnDefination attachment = new 
AttachmentColumnDefination();
+               attachment.setColumnTruncatable(false);
+               attachment.setCellRenderer(new CellRenderer<IMAPMessage, 
Boolean>() {
+
+                       public void renderRowValue(IMAPMessage rowValue,
+                                       ColumnDefinition<IMAPMessage, Boolean> 
columnDef,
+                                       AbstractCellView<IMAPMessage> view) {
+                               if (columnDef.getCellValue(rowValue)) {
+                                       view.setHTML("<img src=\"" +  
GWT.getModuleBaseURL() + "../images/attach.png\">");
+                               } else {
+                                       view.setHTML("&nbsp");
+                               }
+                       }
+                       
+               });
+               
+               attachment.setPreferredColumnWidth(20);
+               attachment.setMinimumColumnWidth(15);
+               attachment.setMaximumColumnWidth(25);
+               cList.add(attachment);
+               
                DateColumnDefination date = new DateColumnDefination();
                date.setColumnTruncatable(true);
                date.setCellRenderer(new CellRenderer<IMAPMessage, Date>() {
@@ -414,6 +435,19 @@
                
        }
 
+       private final class AttachmentColumnDefination extends 
AbstractColumnDefinition<IMAPMessage, Boolean> {
+
+               @Override
+               public Boolean getCellValue(IMAPMessage rowValue) {
+                       return rowValue.getMessageContent().hasAttachment();
+               }
+
+               @Override
+               public void setCellValue(IMAPMessage rowValue, Boolean 
cellValue) {
+               }
+               
+       }
+       
        private final class QuickMarkColumnDefination extends 
AbstractColumnDefinition<IMAPMessage, IMAPFlag> {
 
                @Override

Modified: 
labs/hupa/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java?rev=799895&r1=799894&r2=799895&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
 (original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/server/handler/ExposeMessageHandler.java
 Sat Aug  1 16:24:57 2009
@@ -70,10 +70,6 @@
        }
        
        protected IMAPMessage exposeMessage(User user, IMAPFolder folder, 
IMAPMessage msg) throws ActionException {
-
-               if (msg.isExposed()) {
-                       return msg;
-               }
                IMAPStore store = null;
                try {
                        store = cache.get(user);

Modified: 
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java?rev=799895&r1=799894&r2=799895&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
 (original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
 Sat Aug  1 16:24:57 2009
@@ -26,6 +26,9 @@
 import javax.mail.FetchProfile;
 import javax.mail.Flags;
 import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+import javax.mail.Part;
 import javax.mail.Flags.Flag;
 import javax.mail.internet.MimeUtility;
 import javax.mail.internet.MimeMessage.RecipientType;
@@ -40,6 +43,7 @@
 import org.apache.hupa.server.IMAPStoreCache;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.IMAPMessage;
+import org.apache.hupa.shared.data.MessageContent;
 import org.apache.hupa.shared.data.MessageHeader;
 import org.apache.hupa.shared.data.User;
 import org.apache.hupa.shared.data.IMAPMessage.IMAPFlag;
@@ -108,6 +112,7 @@
                    FetchProfile fp = new FetchProfile();
             fp.add(FetchProfile.Item.ENVELOPE);
             fp.add(FetchProfile.Item.FLAGS);
+            fp.add(FetchProfile.Item.CONTENT_INFO);
             f.fetch(messages, fp);
 
             // loop over the fetched messages
@@ -166,11 +171,15 @@
 
                                        }
                                }
-                               
+                         
                                IMAPMessage msg = new IMAPMessage();
                                msg.setHeader(newHeader);
                                msg.setUid(f.getUID(m));
                                msg.setFlags(iFlags);
+                               
+                               MessageContent content = new MessageContent();
+                               
content.setAttachments(hasAttachment(m.getContent()));
+                               msg.setMessageContent(content);
                                mList.add(0, msg);
                        }
                        f.close(false);
@@ -183,6 +192,24 @@
                                        "Error while fetching headers for user 
" + user.getName() + " in folder " + folder);
                }
        }
+       
+       private boolean hasAttachment(Object content) throws MessagingException 
{
+                if (content instanceof Multipart) {
+             Multipart mp = (Multipart) content;
+             if (mp.getCount() > 1) {
+                for (int i = 0 ; i < mp.getCount(); i++) {
+                        String disp = mp.getBodyPart(i).getDisposition();
+                        System.out.println("mp="+ disp);
+                        if ( disp != null && 
disp.equalsIgnoreCase(Part.ATTACHMENT)) {
+                                return true;
+                        }
+                }
+             }
+          
+             
+                }
+                return false;
+       }
 
        /*
         * (non-Javadoc)

Modified: labs/hupa/src/main/java/org/apache/hupa/shared/data/Message.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/data/Message.java?rev=799895&r1=799894&r2=799895&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/data/Message.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/data/Message.java Sat Aug  1 
16:24:57 2009
@@ -70,13 +70,4 @@
                return content;
        }
 
-
-       public boolean isExposed() {
-               if (getHeader() != null && getMessageContent() != null) {
-                       return true;
-               } else {
-                       return false;
-               }
-       }
-
 }

Modified: 
labs/hupa/src/main/java/org/apache/hupa/shared/data/MessageContent.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/data/MessageContent.java?rev=799895&r1=799894&r2=799895&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/data/MessageContent.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/data/MessageContent.java Sat 
Aug  1 16:24:57 2009
@@ -30,6 +30,7 @@
        private boolean isHTML;
        private String text;
        private ArrayList<MessageAttachment> aList;
+       private boolean hasAttachment;
 
        /**
         * Set if the count is plain/html
@@ -83,4 +84,12 @@
        public ArrayList<MessageAttachment> getMessageAttachments() {
                return aList;
        }
+       
+       public boolean hasAttachment() {
+               return hasAttachment;
+       }
+       
+       public void setAttachments(boolean hasAttachments) {
+               this.hasAttachment = hasAttachments;
+       }
 }

Added: labs/hupa/war/images/attach.png
URL: 
http://svn.apache.org/viewvc/labs/hupa/war/images/attach.png?rev=799895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: labs/hupa/war/images/attach.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to