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]