Author: norman
Date: Sun Jun 28 16:31:26 2009
New Revision: 789120

URL: http://svn.apache.org/viewvc?rev=789120&view=rev
Log:
Better parsing of headers

Modified:
    
labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java
    labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java?rev=789120&r1=789119&r2=789120&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java 
(original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java 
Sun Jun 28 16:31:26 2009
@@ -35,7 +35,7 @@
 import com.google.gwt.user.client.ui.VerticalPanel;
 
 public class IMAPMessageWidget extends Composite {
-       private Grid detailGrid = new Grid(3, 2);
+       private Grid detailGrid = new Grid(4, 2);
        private HTML msgArea = new HTML();
        private Button deleteMsgButton = new Button();
        private Button replyMsgButton = new Button();
@@ -53,9 +53,14 @@
                detailGrid.setWidth("100%");
                detailGrid.setStyleName("hupa-IMAPMessageWidget-Header");
                detailGrid.setText(0, 0, constants.headerFrom() + ":");
+               detailGrid.setText(1, 0, constants.headerTo() + ":");
+               detailGrid.setText(2, 0, constants.headerCc() + ":");
+               detailGrid.setText(3, 0, constants.headerSubject() + ":");
+               detailGrid.getCellFormatter().setVerticalAlignment(0, 0, 
VerticalPanel.ALIGN_TOP);
+               detailGrid.getCellFormatter().setVerticalAlignment(1, 0, 
VerticalPanel.ALIGN_TOP);
+               detailGrid.getCellFormatter().setVerticalAlignment(2, 0, 
VerticalPanel.ALIGN_TOP);
+               detailGrid.getCellFormatter().setVerticalAlignment(3, 0, 
VerticalPanel.ALIGN_TOP);
 
-               detailGrid.setText(1, 0, constants.headerCc() + ":");
-               detailGrid.setText(2, 0, constants.headerSubject() + ":");
 
                mPanel.add(detailGrid);
 
@@ -83,8 +88,9 @@
 
        public void setIMAPMessage(IMAPMessage msg) {
                detailGrid.setText(0, 1, msg.getIMAPHeader().getFrom());
-               detailGrid.setText(1, 1, msg.getIMAPHeader().getCc());
-               detailGrid.setText(2, 1, msg.getIMAPHeader().getSubject());
+               detailGrid.setText(1, 1, msg.getIMAPHeader().getTo());
+               detailGrid.setText(2, 1, msg.getIMAPHeader().getCc());
+               detailGrid.setText(3, 1, msg.getIMAPHeader().getSubject());
                msgArea.setHTML(msg.getIMAPMessageContent().getText());
 
        }

Modified: labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java?rev=789120&r1=789119&r2=789120&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java Sun Jun 
28 16:31:26 2009
@@ -36,6 +36,8 @@
 import org.columba.ristretto.imap.SearchKey;
 import org.columba.ristretto.imap.SequenceSet;
 import org.columba.ristretto.io.StreamUtils;
+import org.columba.ristretto.message.Address;
+import org.columba.ristretto.message.BasicHeader;
 import org.columba.ristretto.message.Header;
 import org.columba.ristretto.message.MailboxInfo;
 import org.columba.ristretto.message.MimeHeader;
@@ -124,20 +126,36 @@
                        IMAPFlags[] flags = proto.fetchFlags(sSet);
                        Integer[] uids = proto.fetchUid(sSet);
                        for (int i = 0; i < headers.length; i++) {
-                               Header header = headers[i].getHeader();
+                               BasicHeader header = new 
BasicHeader(headers[i].getHeader());
 
                                IMAPHeader newHeader = new IMAPHeader();
                                newHeader.setRawHeader(header.toString());
-                               newHeader.setFrom(header.get("From"));
-                               newHeader.setTo(header.get("To"));
-                               
newHeader.setSubject(EncodedWord.decode(header.get("Subject")).toString());
-                               newHeader.setCc(header.get("CC"));
-                               try {
-                                       
newHeader.setReceivedDate(DateParser.parse(header
-                                                       .get("Date")));
-                               } catch (ParserException e) {
-                                       newHeader.setReceivedDate(new Date());
+                               
newHeader.setFrom(header.getFrom().toString().trim());
+                               
+                               StringBuffer toBuf = new StringBuffer();
+                               Address[] toArray = header.getTo();
+                               for (int b =0; b < toArray.length;b++) {
+                                       
toBuf.append(toArray[b].toString().trim());
+                                       if (b != toArray.length -1) {
+                                               toBuf.append(", ");
+                                       }
                                }
+                               newHeader.setTo(toBuf.toString());
+                               
+                               newHeader.setSubject(header.getSubject());
+                               
+                               StringBuffer ccBuf = new StringBuffer();
+                               Address[] ccArray = header.getCc();
+                               for (int b =0; b < ccArray.length;b++) {
+                                       
toBuf.append(ccArray[b].toString().trim());
+                                       if (b != ccArray.length -1) {
+                                               ccBuf.append(", ");
+                                       }
+                               }
+                               newHeader.setCc(ccBuf.toString());
+       
+                               newHeader.setReceivedDate(header.getDate());
+                               
 
                                List<IMAPFlag> iFlags = new 
ArrayList<IMAPFlag>();
                                IMAPFlags imapFlags = flags[i];
@@ -213,7 +231,7 @@
                                body = new CharsetDecoderInputStream(body, 
Charset
                                                .forName(charsetName));
 
-                               if 
(textHeader.getContentType().equalsIgnoreCase("plain/text")) {
+                               if 
(textHeader.getMimeType().getType().equalsIgnoreCase("plain/text")) {
                                        String plainContent = 
StreamUtils.readInString(body)
                                                        .toString();
                                        
content.setText(StringEscapeUtils.escapeHtml(plainContent)



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

Reply via email to