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 05:48:19 UTC
svn commit: r1522251 - in
/james/hupa/trunk/client/src/main/java/org/apache/hupa/client: activity/
mapper/ place/ ui/
Author: dongxu
Date: Thu Sep 12 03:48:19 2013
New Revision: 1522251
URL: http://svn.apache.org/r1522251
Log:
prepare for message content panel
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml
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
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java?rev=1522251&r1=1522250&r2=1522251&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java Thu Sep 12 03:48:19 2013
@@ -20,6 +20,7 @@
package org.apache.hupa.client.activity;
<<<<<<< HEAD
+<<<<<<< HEAD
import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -240,21 +241,107 @@ public class MessageListActivity extends
});
}
=======
+=======
+import org.apache.hupa.client.place.IMAPMessagePlace;
+import org.apache.hupa.client.rf.GetMessageDetailsRequest;
+>>>>>>> prepare for message content panel
import org.apache.hupa.client.ui.WidgetDisplayable;
+import org.apache.hupa.shared.data.MessageImpl.IMAPFlag;
+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.Message;
+import org.apache.hupa.shared.domain.User;
+import org.apache.hupa.shared.events.ExpandMessageEvent;
+import org.apache.hupa.shared.events.ExpandMessageEventHandler;
+import org.apache.hupa.shared.events.LoginEvent;
+import org.apache.hupa.shared.events.LoginEventHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.web.bindery.requestfactory.shared.Receiver;
public class MessageListActivity extends AppBaseActivity {
+// @Inject private Provider<IMAPMessagePlace> messagePlaceProvider;
+ private User user;
+ private String searchValue;
+
@Override
public void start(AcceptsOneWidget container, EventBus eventBus) {
container.setWidget(display.asWidget());
+ bindTo(eventBus);
+ }
+
+ private void bindTo(EventBus eventBus) {
+ eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+ public void onLogin(LoginEvent event) {
+ user = event.getUser();
+ searchValue = null;
+ }
+ });
+ eventBus.addHandler(ExpandMessageEvent.TYPE,
+ new ExpandMessageEventHandler() {
+ public void onExpandMessage(ExpandMessageEvent event) {
+ // final boolean decreaseUnseen;
+ final Message message = event.getMessage();
+ // check if the message was already seen in the past
+ if (event.getMessage().getFlags()
+ .contains(IMAPFlag.SEEN) == false) {
+ // decreaseUnseen = true;//TODO 1209
+ } else {
+ // decreaseUnseen = false;
+ }
+
+ GetMessageDetailsRequest req = requestFactory
+ .messageDetailsRequest();
+ GetMessageDetailsAction action = req
+ .create(GetMessageDetailsAction.class);
+ final ImapFolder f = req.create(ImapFolder.class);
+ // event.getFolder().setFolderTo(f);
+ cloneFolder(f, event.getFolder());
+ action.setFolder(f);
+ action.setUid(message.getUid());
+ req.get(action).fire(
+ new Receiver<GetMessageDetailsResult>() {
+ @Override
+ public void onSuccess(
+ GetMessageDetailsResult response) {
+ /*
+ * TODO if (decreaseUnseen) {
+ * eventBus.fireEvent(new
+ * DecreaseUnseenEvent(user, folder)); }
+ */
+ placeController
+ .goTo(new IMAPMessagePlace(
+ String.valueOf(message
+ .getUid())));
+ }
+ });
+ }
+ });
+ }
+
+ private void cloneFolder(ImapFolder desc, ImapFolder src) {
+ desc.setChildren(src.getChildren());
+ desc.setDelimiter(src.getDelimiter());
+ desc.setFullName(src.getFullName());
+ desc.setMessageCount(src.getMessageCount());
+ desc.setName(src.getName());
+ desc.setSubscribed(src.getSubscribed());
+ desc.setUnseenMessageCount(src.getUnseenMessageCount());
}
@Inject private Displayable display;
+<<<<<<< HEAD
public interface Displayable extends WidgetDisplayable {}
>>>>>>> integrate all of the views to their corresponding activities and mappers
+=======
+
+ public interface Displayable extends WidgetDisplayable {
+ }
+>>>>>>> prepare for message content panel
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java?rev=1522251&r1=1522250&r2=1522251&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java Thu Sep 12 03:48:19 2013
@@ -946,8 +946,8 @@ System.out.println("1111111"+response);
* TODO if (decreaseUnseen) { eventBus.fireEvent(new
* DecreaseUnseenEvent(user, folder)); }
*/
- placeController.goTo(messagePlaceProvider.get().with(user, f, message,
- response.getMessageDetails()));
+// placeController.goTo(messagePlaceProvider.get().with(user, f, message,
+// response.getMessageDetails()));
}
});
}
@@ -1375,7 +1375,7 @@ System.out.println("1111111"+response);
@Inject private Displayable display;
@Inject private Provider<MessageSendPlace> messageSendPlaceProvider;
- @Inject private Provider<IMAPMessagePlace> messagePlaceProvider;
+// @Inject private Provider<IMAPMessagePlace> messagePlaceProvider;
private User user;
private ImapFolder folder;
private IMAPTreeItem tItem;
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java?rev=1522251&r1=1522250&r2=1522251&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java Thu Sep 12 03:48:19 2013
@@ -21,12 +21,18 @@ package org.apache.hupa.client.mapper;
import org.apache.hupa.client.activity.MessageContentActivity;
<<<<<<< HEAD
+<<<<<<< HEAD
import org.apache.hupa.client.place.MessagePlace;
import com.google.gwt.activity.shared.Activity;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.RunAsyncCallback;
=======
+=======
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.IMAPMessagePlace;
+import org.apache.hupa.client.place.MailFolderPlace;
+>>>>>>> prepare for message content panel
import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
@@ -71,6 +77,9 @@ public class MessageContentActivityMappe
}
public Activity getActivity(Place place) {
+ if(place instanceof DefaultPlace)return null;
+ else if (place instanceof MailFolderPlace) return null;
+ else if (place instanceof IMAPMessagePlace) return messageContentActivityProvider.get();
return messageContentActivityProvider.get();
>>>>>>> integrate all of the views to their corresponding activities and mappers
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java?rev=1522251&r1=1522250&r2=1522251&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java Thu Sep 12 03:48:19 2013
@@ -80,7 +80,7 @@ public class MessageListActivityMapper i
=======
public Activity getActivity(Place place) {
if(place instanceof DefaultPlace)return null;
- else if (place instanceof MailFolderPlace) messageListActivityProvider.get();
+ else if (place instanceof MailFolderPlace) return messageListActivityProvider.get();
return messageListActivityProvider.get();
>>>>>>> integrate all of the views to their corresponding activities and mappers
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java?rev=1522251&r1=1522250&r2=1522251&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java Thu Sep 12 03:48:19 2013
@@ -103,6 +103,11 @@ public class IMAPMessagePlace extends Ab
private ImapFolder folder;
>>>>>>> Make the ValueProxy(ImapFolder) work with Manolo's patch. Hupa can display folders in west view with RequestFactory now.
private User user;
+ private String messageId;
+
+ public IMAPMessagePlace(String token) {
+ this.messageId = token;
+ }
public Message getMessage() {
return message;
@@ -189,12 +194,15 @@ public class IMAPMessagePlace extends Ab
@Override
public IMAPMessagePlace getPlace(String token) {
- return new IMAPMessagePlace();
+ return new IMAPMessagePlace(token);
}
@Override
public String getToken(IMAPMessagePlace place) {
- return String.valueOf(place.getMessage().getUid());
+ return place.getMessageId();
+// System.out.println(place);
+// System.out.println(place.getMessage());
+// return String.valueOf(place.getMessage().getUid());
}
}
@@ -208,8 +216,15 @@ public class IMAPMessagePlace extends Ab
}
<<<<<<< HEAD
+<<<<<<< HEAD
=======
>>>>>>>
=======
>>>>>>> 1. improve the inbox folder place.
+=======
+ public String getMessageId() {
+ return messageId;
+ }
+
+>>>>>>> prepare for message content panel
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml?rev=1522251&r1=1522250&r2=1522251&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml Thu Sep 12 03:48:19 2013
@@ -235,7 +235,6 @@
ui:field="MessageContentBox">
<g:layer>
<g:SimplePanel ui:field="messageContentContainer">
- <hupa:MessageContentView ui:field="messageContentView" />
</g:SimplePanel>
</g:layer>
<g:layer bottom="0" height="25px">
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=1522251&r1=1522250&r2=1522251&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 03:48:19 2013
@@ -21,6 +21,7 @@ package org.apache.hupa.client.ui;
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
import java.util.List;
import org.apache.hupa.client.HupaCSS;
@@ -67,14 +68,197 @@ import org.apache.hupa.client.activity.M
>>>>>>> integrate all of the views to their corresponding activities and mappers
import com.google.gwt.core.client.GWT;
+=======
+import java.util.List;
+
+import org.apache.hupa.client.HupaCSS;
+import org.apache.hupa.client.HupaConstants;
+import org.apache.hupa.client.activity.MessageContentActivity;
+import org.apache.hupa.client.bundles.HupaImageBundle;
+import org.apache.hupa.client.widgets.CommandsBar;
+import org.apache.hupa.client.widgets.MessageHeaders;
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.Util;
+import org.apache.hupa.shared.domain.Message;
+import org.apache.hupa.shared.domain.MessageAttachment;
+import org.apache.hupa.widgets.ui.Loading;
+import org.cobogw.gwt.user.client.ui.Button;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.HasClickHandlers;
+>>>>>>> prepare for message content panel
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.Element;
+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.HTMLPanel;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Inject;
public class MessageContentView extends Composite implements
MessageContentActivity.Displayable {
+<<<<<<< HEAD
>>>>>>> make login page as one part of the overall layout & splite layout to little one
+=======
+ public final static int DELETE_BUTTON = 0;
+ public final static int REPLY_BUTTON = 1;
+ public final static int REPLY_ALL_BUTTON = 2;
+
+ private HupaImageBundle imageBundle;
+
+ @UiField
+ VerticalPanel messageContainer;
+ private MessageHeaders headers;
+ private CommandsBar buttonsBar = new CommandsBar();
+ private HTML msgArea = new HTML();
+
+ private Label from = new Label();
+ private Label cc = new Label();
+ private Label to = new Label();
+ private Label subject = new Label();
+
+ private Button deleteMsgButton = new Button();
+ private Button replyMsgButton = new Button();
+ private Button replyAllMsgButton = new Button();
+ private Button forwardMsgButton = new Button();
+ private Anchor showRawButton;
+ private Anchor backButton;
+ private FlowPanel attachments = new FlowPanel();
+
+ private Loading loading;
+
+ @Inject
+ public MessageContentView(HupaConstants constants, HupaImageBundle imageBundle) {
+ this.imageBundle = imageBundle;
+
+ loading = new Loading(constants.loading());
+ showRawButton = new Anchor(constants.rawButton());
+ backButton = new Anchor(constants.backButton());
+ headers = new MessageHeaders(constants);
+ deleteMsgButton.setText(constants.deleteMailButton());
+ replyMsgButton.setText(constants.replyMailButton());
+ replyAllMsgButton.setText(constants.replyAllMailButton());
+ forwardMsgButton.setText(constants.forwardMailButton());
+
+ messageContainer.addStyleName(HupaCSS.C_msgview_container);
+
+ buttonsBar.add(replyMsgButton);
+ buttonsBar.add(replyAllMsgButton);
+ buttonsBar.add(deleteMsgButton);
+ buttonsBar.add(forwardMsgButton);
+ buttonsBar.add(loading);
+// buttonsBar.add(showRawButton); TODO
+ buttonsBar.add(backButton);
+
+ ScrollPanel scrollPanel = new ScrollPanel();
+ scrollPanel.addStyleName(HupaCSS.C_msgview_content);
+ scrollPanel.setAlwaysShowScrollBars(false);
+ scrollPanel.add(msgArea);
+
+ messageContainer.add(headers);
+ messageContainer.add(buttonsBar);
+ messageContainer.add(scrollPanel);
+
+ loading.hide();
+
+ initWidget(messageContainer);
+ }
+
+ public Widget asWidget() {
+ return this;
+ }
+
+ public void startProcessing() {
+ loading.show();
+ }
+
+ public void stopProcessing() {
+ loading.show();
+ }
+
+ public HasClickHandlers getDeleteButtonClick() {
+ return deleteMsgButton;
+ }
+
+ 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 = GWT.getModuleBaseURL() + SConsts.SERVLET_DOWNLOAD
+ + "?" + SConsts.PARAM_NAME + "=" + messageAttachment.getName()
+ + "&" + SConsts.PARAM_FOLDER + "=" + folder
+ + "&" + SConsts.PARAM_UID + "=" + uid;
+ if (downloadIframe == null)
+ Window.open(url,"_blank", "");
+ else
+ DOM.setElementAttribute(downloadIframe, "src", url);
+ }
+ });
+ HorizontalPanel aPanel = new HorizontalPanel();
+ aPanel.addStyleName(HupaCSS.C_attachment);
+ aPanel.add(new Image(imageBundle.attachmentIcon()));
+ aPanel.add(link);
+ attachments.add(aPanel);
+ }
+ }
+ }
+
+ public HasClickHandlers getForwardButtonClick() {
+ return forwardMsgButton;
+ }
+
+ public HasClickHandlers getReplyAllButtonClick() {
+ return replyAllMsgButton;
+ }
+
+ public HasClickHandlers getReplyButtonClick() {
+ return replyMsgButton;
+ }
+
+ public HasClickHandlers getBackButtonClick() {
+ return backButton;
+ }
+
+ public HasClickHandlers getShowRawMessageClick() {
+ return showRawButton;
+ }
+
+ public void setHeaders(Message message) {
+ from.setText(message.getFrom());
+ cc.setText(Util.listToString(message.getCc()));
+ to.setText(Util.listToString(message.getTo()));
+ subject.setText(message.getSubject());
+ headers.setValues(from, to, cc, null, subject, attachments);
+ }
+
+ public void setContent(String content) {
+ msgArea.setHTML(content);
+ }
+
+
+
+>>>>>>> prepare for message content panel
public MessageContentView() {
initWidget(binder.createAndBindUi(this));
}
@@ -157,8 +341,12 @@ public class MessageContentView extends
interface MessageContentUiBinder extends UiBinder<HTMLPanel, MessageContentView> {
=======
interface MessageContentUiBinder extends
+<<<<<<< HEAD
UiBinder<HTMLPanel, MessageContentView> {
>>>>>>> integrate all of the views to their corresponding activities and mappers
+=======
+ UiBinder<VerticalPanel, MessageContentView> {
+>>>>>>> prepare for message content panel
}
private static MessageContentUiBinder binder = GWT
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=1522251&r1=1522250&r2=1522251&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 03:48:19 2013
@@ -12,6 +12,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<<<<<<< HEAD
+<<<<<<< HEAD
<ui:image field="buttons" src="res/buttons.png" />
<ui:style>
.messageContent {
@@ -97,4 +98,7 @@
<g:HTMLPanel>MessageContent
</g:HTMLPanel>
>>>>>>> make login page as one part of the overall layout & splite layout to little one
+=======
+ <g:VerticalPanel ui:field="messageContainer" />
+>>>>>>> prepare for message content panel
</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=1522251&r1=1522250&r2=1522251&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 03:48:19 2013
@@ -179,7 +179,6 @@ public class MessageListView extends Com
// folder.setMessageCount(result.getRealCount());// TODO if do
// this, there will be auto bean has been frozen.
// folder.setUnseenMessageCount(result.getRealUnreadCount());
- System.out.println("+_+_+_+_+"+result.getMessages());
table.setRowCount(result.getRealCount());
table.setRowData(start, result.getMessages());
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org