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(" ");
+ }
+ }
+
+ });
+
+ 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]