You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by do...@apache.org on 2013/09/12 06:44:37 UTC

svn commit: r1522384 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client: activity/MessageContentActivity.java ui/MessageContentView.java ui/MessageContentView.ui.xml ui/MessageListView.java ui/__ContentPanel.java ui/__ContentPanel.ui.xml

Author: dongxu
Date: Thu Sep 12 04:44:36 2013
New Revision: 1522384

URL: http://svn.apache.org/r1522384
Log:
fixed issue#64, add attachments region in message content view

Modified:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.ui.xml
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.ui.xml

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java?rev=1522384&r1=1522383&r2=1522384&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java Thu Sep 12 04:44:36 2013
@@ -23,6 +23,9 @@ package org.apache.hupa.client.activity;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> fixed issue#64, add attachments region in message content view
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -184,6 +187,7 @@ import org.apache.hupa.client.ui.WidgetD
 import org.apache.hupa.shared.domain.GetMessageDetailsAction;
 import org.apache.hupa.shared.domain.GetMessageDetailsResult;
 import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.domain.MessageAttachment;
 
 import com.google.gwt.activity.shared.Activity;
 import com.google.gwt.event.shared.EventBus;
@@ -194,8 +198,7 @@ import com.google.web.bindery.requestfac
 
 public class MessageContentActivity extends AppBaseActivity {
 
-	private static final Logger log = Logger
-			.getLogger(MessageContentActivity.class.getName());
+	private static final Logger log = Logger.getLogger(MessageContentActivity.class.getName());
 
 	@Inject private Displayable display;
 	private String fullName;
@@ -204,10 +207,8 @@ public class MessageContentActivity exte
 	@Override
 	public void start(AcceptsOneWidget container, EventBus eventBus) {
 		if (isUidSet()) {
-			GetMessageDetailsRequest req = rf
-					.messageDetailsRequest();
-			GetMessageDetailsAction action = req
-					.create(GetMessageDetailsAction.class);
+			GetMessageDetailsRequest req = rf.messageDetailsRequest();
+			GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
 			final ImapFolder f = req.create(ImapFolder.class);
 			f.setFullName(fullName);
 			action.setFolder(f);
@@ -215,8 +216,8 @@ public class MessageContentActivity exte
 			req.get(action).fire(new Receiver<GetMessageDetailsResult>() {
 				@Override
 				public void onSuccess(GetMessageDetailsResult response) {
-					display.fillMessageContent(response.getMessageDetails()
-							.getText());
+					display.fillMessageContent(response.getMessageDetails().getText());
+					display.setAttachments(response.getMessageDetails().getMessageAttachments(), fullName, Long.parseLong(uid));
 				}
 
 				@Override
@@ -224,7 +225,7 @@ public class MessageContentActivity exte
 					if (error.isFatal()) {
 						log.log(Level.SEVERE, error.getMessage());
 						// TODO write the error message to status bar.
-						 throw new RuntimeException(error.getMessage());
+						throw new RuntimeException(error.getMessage());
 					}
 				}
 			});
@@ -250,10 +251,11 @@ public class MessageContentActivity exte
 >>>>>>> make reload message content work, use the same place with folder list, while separated with slash, that looks like Gmail's
 	public interface Displayable extends WidgetDisplayable {
 		void fillMessageContent(String messageContent);
+		void setAttachments(List<MessageAttachment> attachements, String folder, long uid);
 	}
 
 	public Activity with(TokenWrapper tokenWrapper) {
-		fullName= tokenWrapper.getFolder();
+		fullName = tokenWrapper.getFolder();
 		uid = tokenWrapper.getUid();
 		return this;
 	}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.java?rev=1522384&r1=1522383&r2=1522384&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.java Thu Sep 12 04:44:36 2013
@@ -23,6 +23,7 @@ package org.apache.hupa.client.ui;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import java.util.List;
 
 import org.apache.hupa.client.HupaCSS;
@@ -65,10 +66,18 @@ public class MessageContentView extends 
 	@Inject
 =======
 =======
+=======
+import java.util.List;
+
+import org.apache.hupa.client.HupaCSS;
+>>>>>>> fixed issue#64, add attachments region in message content view
 import org.apache.hupa.client.activity.MessageContentActivity;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.domain.MessageAttachment;
 
 >>>>>>> integrate all of the views to their corresponding activities and mappers
 import com.google.gwt.core.client.GWT;
+<<<<<<< HEAD
 =======
 import java.util.List;
 
@@ -86,11 +95,23 @@ import com.google.gwt.event.dom.client.H
 >>>>>>> prepare for message content panel
 =======
 >>>>>>> make message content work as expected partly
+=======
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+>>>>>>> fixed issue#64, add attachments region in message content view
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DockLayoutPanel;
+import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.RootPanel;
 import com.google.inject.Inject;
 
 <<<<<<< HEAD
@@ -247,8 +268,9 @@ public class MessageContentView extends 
 public class MessageContentView extends Composite implements MessageContentActivity.Displayable {
 >>>>>>> make message content work as expected partly
 
-	@UiField
-	HTML messageContent;
+	@UiField HTML messageContent;
+
+	@UiField FlowPanel attachments;
 
 <<<<<<< HEAD
 >>>>>>> prepare for message content panel
@@ -263,6 +285,7 @@ public class MessageContentView extends 
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 	@Override
 	public void fillMessageContent(String messageDetail) {
 		messageContentHTML.setHTML(messageDetail);
@@ -351,6 +374,9 @@ public class MessageContentView extends 
 =======
 	interface MessageContentUiBinder extends UiBinder<SimplePanel, MessageContentView> {
 >>>>>>> beautify message list and content
+=======
+	interface MessageContentUiBinder extends UiBinder<DockLayoutPanel, MessageContentView> {
+>>>>>>> fixed issue#64, add attachments region in message content view
 	}
 
 	private static MessageContentUiBinder binder = GWT.create(MessageContentUiBinder.class);
@@ -360,5 +386,46 @@ public class MessageContentView extends 
 		messageContent.setHTML(messageDetail);
 	}
 
+<<<<<<< HEAD
 >>>>>>> make login page as one part of the overall layout & splite layout to little one
+=======
+	@Override
+	public void setAttachments(List<MessageAttachment> attachements, final String folder, final long uid) {
+
+		attachments.clear();
+		final Element downloadIframe = RootPanel.get("__download").getElement();
+		if (attachements != null) {
+			for (final MessageAttachment messageAttachment : attachements) {
+				Label link = new Label(messageAttachment.getName() + " (" + messageAttachment.getSize() / 1024 + "kB)");
+				link.setStyleName(HupaCSS.C_hyperlink);
+				link.addClickHandler(new ClickHandler() {
+					public void onClick(ClickEvent event) {
+						String url = getUrl(messageAttachment, folder, uid, false);
+						if (downloadIframe == null)
+							Window.open(url, "_blank", "");
+						else
+							DOM.setElementAttribute(RootPanel.get("__download").getElement(), "src", url);
+					}
+				});
+				HorizontalPanel aPanel = new HorizontalPanel();
+				aPanel.addStyleName(HupaCSS.C_attachment);
+				// aPanel.add(new Image(imageBundle.attachmentIcon()));
+				aPanel.add(link);
+				if (messageAttachment.isImage()) {
+					Anchor viewImageLink = new Anchor("View", getUrl(messageAttachment, folder, uid, true), "_blank");
+					viewImageLink.setStyleName(HupaCSS.C_attachment_view);
+					aPanel.add(viewImageLink);
+				}
+				attachments.add(aPanel);
+			}
+		}
+	}
+
+	private String getUrl(MessageAttachment messageAttachment, String folder, long uid, boolean inline) {
+		return GWT.getModuleBaseURL() + SConsts.SERVLET_DOWNLOAD + "?" + SConsts.PARAM_NAME + "="
+				+ messageAttachment.getName() + "&" + SConsts.PARAM_FOLDER + "=" + folder + "&" + SConsts.PARAM_UID
+				+ "=" + uid + (inline ? "&" + SConsts.PARAM_MODE + "=inline" : "");
+	}
+
+>>>>>>> fixed issue#64, add attachments region in message content view
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.ui.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.ui.xml?rev=1522384&r1=1522383&r2=1522384&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.ui.xml (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageContentView.ui.xml Thu Sep 12 04:44:36 2013
@@ -23,6 +23,9 @@
 			display: block;
 			background-color: white;
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> fixed issue#64, add attachments region in message content view
 			width: 100%;
 			height: 100%;
 		}
@@ -54,6 +57,7 @@
 			min-height: 200px;
 			background: #f0f0f0;
 			padding: 8px;
+<<<<<<< HEAD
 		}
 		
 		.moreHeaders {
@@ -120,4 +124,25 @@
 		<g:HTML ui:field="messageContent" />
 	</g:SimplePanel>
 >>>>>>> beautify message list and content
+=======
+		}
+	</ui:style>
+	<g:DockLayoutPanel unit="PX">
+		<g:north size="56">
+			<g:HTMLPanel addStyleNames="{style.previewheader} {style.messageheader}">
+			</g:HTMLPanel>
+		</g:north>
+		<g:center>
+			<g:DockLayoutPanel unit="PX">
+				<g:center>
+					<g:HTML ui:field="messageContent" addStyleNames="{style.messageContent}" />
+				</g:center>
+				<g:east size="216">
+					<g:FlowPanel ui:field="attachments" addStyleNames="{style.attachBox}">
+					</g:FlowPanel>
+				</g:east>
+			</g:DockLayoutPanel>
+		</g:center>
+	</g:DockLayoutPanel>
+>>>>>>> fixed issue#64, add attachments region in message content view
 </ui:UiBinder>
\ No newline at end of file

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java?rev=1522384&r1=1522383&r2=1522384&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java Thu Sep 12 04:44:36 2013
@@ -104,7 +104,7 @@ import com.google.inject.Inject;
 
 public class MessageListView extends Composite implements MessageListActivity.Displayable {
 
-	@UiField SimplePanel thisView;
+	@UiField SimpleLayoutPanel thisView;
 	private MessagesCellTable grid;
 
 	@Inject

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.java?rev=1522384&r1=1522383&r2=1522384&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.java Thu Sep 12 04:44:36 2013
@@ -38,7 +38,7 @@ public class __ContentPanel extends Comp
 	@UiField DockLayoutPanel messageListBox;
 	@UiField SimpleLayoutPanel messageListContainer;
 	@UiField SimplePanel messageListFooterContainer;
-	@UiField ScrollPanel messageContentContainer;
+	@UiField SimpleLayoutPanel messageContentContainer;
 	@UiField SimplePanel statusContainer;
 
 	@UiField HTMLPanel contactBox;

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.ui.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.ui.xml?rev=1522384&r1=1522383&r2=1522384&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.ui.xml (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/__ContentPanel.ui.xml Thu Sep 12 04:44:36 2013
@@ -87,7 +87,7 @@
 			<g:DockLayoutPanel unit="PX" addStyleNames="{style.box}"
 				ui:field="messageContentBox">
 				<g:center>
-					<g:ScrollPanel ui:field="messageContentContainer"
+					<g:SimpleLayoutPanel ui:field="messageContentContainer"
 						addStyleNames="{style.messageContentWorkAround}" />
 				</g:center>
 				<g:south size="25">



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org