Author: dongxu
Date: Thu Sep 12 03:47:13 2013
New Revision: 1522248
URL: http://svn.apache.org/r1522248
Log:
make message list view panel work as expected partly
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.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/ui/FolderListView.ui.xml
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.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/MessageListFooterView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.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/MessageListView.ui.xml
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
Thu Sep 12 03:47:13 2013
@@ -489,7 +489,7 @@ public class LoginActivity extends Abstr
RootLayoutPanel.get().add(hupaLayout.get());
placeController.goTo(new MailFolderPlace());
// placeController.goTo(new
MailFolderPlace().with(response, useDefaultInboxFolder(response), null));
-// eventBus.fireEvent(new LoginEvent(response));
+ eventBus.fireEvent(new LoginEvent(response));
}
@Override
public void onFailure(ServerFailure error) {
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
Thu Sep 12 03:47:13 2013
@@ -145,6 +145,7 @@ import org.apache.hupa.client.activity.T
import org.apache.hupa.client.activity.TopBarActivity;
import org.apache.hupa.client.activity.WestActivity;
import org.apache.hupa.client.mapper.AppPlaceHistoryMapper;
+<<<<<<< HEAD
import org.apache.hupa.client.mapper.CachingTopActivityMapper;
<<<<<<< HEAD
<<<<<<< HEAD
@@ -186,10 +187,11 @@ import org.apache.hupa.client.mapper.Mai
>>>>>>> Make the evo more clear.
=======
=======
+=======
+>>>>>>> make message list view panel work as expected partly
import org.apache.hupa.client.mapper.FolderListActivityMapper;
import org.apache.hupa.client.mapper.LoginActivityMapper;
import org.apache.hupa.client.mapper.LogoActivityMapper;
-import org.apache.hupa.client.mapper.MainContentActivityMapper;
import org.apache.hupa.client.mapper.MessageContentActivityMapper;
import org.apache.hupa.client.mapper.MessageListActivityMapper;
import org.apache.hupa.client.mapper.MessageListFooterActivityMapper;
@@ -197,9 +199,12 @@ import org.apache.hupa.client.mapper.Nav
import org.apache.hupa.client.mapper.StatusActivityMapper;
import org.apache.hupa.client.mapper.ToolBarActivityMapper;
import org.apache.hupa.client.mapper.TopBarActivityMapper;
+<<<<<<< HEAD
>>>>>>> integrate all of the views to their corresponding activities and
>>>>>>> mappers
import org.apache.hupa.client.mapper.WestActivityMapper;
>>>>>>> delete messages, make WestActivity Singleton
+=======
+>>>>>>> make message list view panel work as expected partly
import org.apache.hupa.client.place.DefaultPlace;
import org.apache.hupa.client.rf.HupaRequestFactory;
import org.apache.hupa.client.ui.FolderListView;
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=1522248&r1=1522247&r2=1522248&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:47:13 2013
@@ -21,6 +21,7 @@ package org.apache.hupa.client.mapper;
import org.apache.hupa.client.activity.MessageListActivity;
<<<<<<< HEAD
+<<<<<<< HEAD
import org.apache.hupa.client.place.FolderPlace;
import org.apache.hupa.client.place.MessagePlace;
@@ -28,6 +29,10 @@ import com.google.gwt.activity.shared.Ac
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.MailFolderPlace;
+>>>>>>> make message list view panel work as expected partly
import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
@@ -74,6 +79,8 @@ public class MessageListActivityMapper i
};
=======
public Activity getActivity(Place place) {
+ if(place instanceof DefaultPlace)return null;
+ else if (place instanceof MailFolderPlace)
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/ui/FolderListView.ui.xml
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.ui.xml?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.ui.xml
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.ui.xml
Thu Sep 12 03:47:13 2013
@@ -11,6 +11,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
<<<<<<< HEAD
+<<<<<<< HEAD
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<<<<<<< HEAD
<g:SimplePanel ui:field="thisView" />
@@ -24,8 +25,11 @@
xmlns:hupa='urn:import:org.apache.hupa.client.ui'
xmlns:c='urn:import:com.google.gwt.user.cellview.client'>
>>>>>>> track the folder list tree model issue of invalid session, TODO how to
>>>>>>> retrieve folders data using GIN
+=======
+ xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:c='urn:import:com.google.gwt.user.cellview.client'>
+>>>>>>> make message list view panel work as expected partly
<g:SimplePanel ui:field="FolderListView">
- <c:CellTree ui:field="cellTree"/>
+ <c:CellTree ui:field="cellTree" />
</g:SimplePanel>
>>>>>>> make login page as one part of the overall layout & splite layout to
>>>>>>> little one
</ui:UiBinder>
\ No newline at end of file
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
Thu Sep 12 03:47:13 2013
@@ -30,13 +30,7 @@ import org.apache.hupa.shared.events.Loa
import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.shared.EventBus;
-import com.google.gwt.resources.client.ClientBundle;
-import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.resources.client.ClientBundle.Source;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.impl.ClippedImagePrototype;
import com.google.gwt.view.client.AsyncDataProvider;
import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.ProvidesKey;
@@ -87,7 +81,7 @@ public class FoldersTreeViewModel implem
@Override
public <T> NodeInfo<?> getNodeInfo(T value) {
return new DefaultNodeInfo<ImapFolder>(new
ImapFolderListDataProvider(
- (ImapFolder) value), new
AbstractCell<ImapFolder>() {
+ (ImapFolder) value), new
AbstractCell<ImapFolder>() {//TODO subfolders style and different image for
each folder
@Override
public void render(Context context, ImapFolder value,
SafeHtmlBuilder sb) {
@@ -97,36 +91,6 @@ public class FoldersTreeViewModel implem
}
}, selectionModel, null);
}
-// @Override
-// public <T> NodeInfo<?> getNodeInfo(T value) {
-// return new DefaultNodeInfo<ImapFolder>(new
ImapFolderListDataProvider(
-// (ImapFolder) value), new
ImapFolderCell(images.listicons()),
-// selectionModel, null);
-// }
-
- /**
- * The cell used to render categories.
- */
- private static class ImapFolderCell extends AbstractCell<ImapFolder> {
- private final ImageResource image;
-
- public ImapFolderCell(ImageResource image) {
- this.image = image;
- }
-
- @Override
- public void render(com.google.gwt.cell.client.Cell.Context
context,
- ImapFolder value, SafeHtmlBuilder sb) {
- if (value != null) {
- AbstractImagePrototype imagePrototype = new
ClippedImagePrototype(
- image.getSafeUri(), -6, 213,
24, 24);
-
sb.appendHtmlConstant(imagePrototype.getHTML()).appendEscaped(
- " ");
- sb.appendEscaped(value.getName());
- }
-
- }
- }
private class ImapFolderListDataProvider extends
AsyncDataProvider<ImapFolder> {
@@ -148,7 +112,6 @@ public class FoldersTreeViewModel implem
.fire(new Receiver<List<ImapFolder>>() {
@Override
public void
onSuccess(List<ImapFolder> response) {
-
System.out.println("list of folders-" + response);
if (response == null ||
response.size() == 0) {
updateRowCount(-1, true);
} else {
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.java
Thu Sep 12 03:47:13 2013
@@ -253,7 +253,7 @@ public class HupaLayout implements HupaL
@UiField SimplePanel toolBarContainer;
@UiField SimplePanel folderListContainer;
- @UiField SimplePanel messageListContainer;
+ @UiField LayoutPanel messageListContainer;
@UiField SimplePanel messageListFooterContainer;
@UiField SimplePanel messageContentContainer;
@UiField SimplePanel statusContainer;
@@ -334,7 +334,11 @@ public class HupaLayout implements HupaL
return new AcceptsOneWidget() {
@Override
public void setWidget(IsWidget w) {
-
messageListContainer.setWidget(Widget.asWidgetOrNull(w));
+ Widget widget = Widget.asWidgetOrNull(w);
+ if (messageListContainer.getWidgetCount() > 0)
+ messageListContainer.remove(0);
+ if (widget != null)
+ messageListContainer.add(widget);
}
};
}
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=1522248&r1=1522247&r2=1522248&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:47:13 2013
@@ -38,7 +38,7 @@
top: 0;
left: 0;
width: 100%;
- min-width: 144px;
+ min-width: 144px;
bottom: 0;
overflow-x: hidden;
overflow-y: auto;
@@ -86,6 +86,7 @@
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
<hupa:TopBarView />
>>>>>>> make login page as one part of the overall layout & splite layout to
>>>>>>> little one
=======
@@ -99,6 +100,9 @@
=======
<g:SimplePanel
ui:field="topBarContainer"/>
>>>>>>> integrate all of the views to their corresponding activities and
>>>>>>> mappers
+=======
+ <g:SimplePanel
ui:field="topBarContainer" />
+>>>>>>> make message list view panel work as expected partly
</g:north>
<g:center>
<g:LayoutPanel
addStyleNames="{style.feature}"
@@ -115,7 +119,7 @@
<g:SimpleLayoutPanel
ui:field="navigationContainer" />
=======
<g:layer width="177px"
left="10px">
- <g:SimplePanel
ui:field="logoContainer"/>
+ <g:SimplePanel
ui:field="logoContainer" />
</g:layer>
<<<<<<< HEAD
<g:layer width="301px"
right="0">
@@ -153,9 +157,14 @@
=======
=======
<g:layer width="287px"
right="0">
+<<<<<<< HEAD
>>>>>>> track the folder list tree model issue of invalid session, TODO how to
>>>>>>> retrieve folders data using GIN
<g:LayoutPanel
ui:field="navigationContainer"/><!-- why can not be SimplePanel here -->
>>>>>>> integrate all of the views to their corresponding activities and
>>>>>>> mappers
+=======
+ <g:LayoutPanel
ui:field="navigationContainer" /><!--
+ why can not be
SimplePanel here -->
+>>>>>>> make message list view panel work as expected partly
</g:layer>
<g:layer left="0%" width="0%" top="0%" height="0%">
<hupa:_CenterContactPanel ui:field="contactPanel"
/>
@@ -171,7 +180,7 @@
<g:layer left='10px' right='10px' top='88px' bottom="20px">
<g:DockLayoutPanel ui:field="MainBox">
<g:north size="40">
- <g:SimplePanel
ui:field="toolBarContainer"/>
+ <g:SimplePanel
ui:field="toolBarContainer" />
</g:north>
<g:center>
<g:SplitLayoutPanel
ui:field="MessageSpace">
@@ -179,7 +188,7 @@
<g:LayoutPanel
ui:field="LeftBox"
addStyleNames="{style.folderList} {style.box} {style.listBox}">
<g:layer
top="0" height="100%">
-
<g:SimplePanel ui:field="folderListContainer"/>
+
<g:SimplePanel ui:field="folderListContainer" />
</g:layer>
<g:layer
bottom="0" height="41px">
<g:SimplePanel styleName="{style.boxFooter}">
@@ -197,10 +206,10 @@
<g:LayoutPanel addStyleNames="{style.box}"
ui:field="MessageListBox">
<g:layer>
-
<g:SimplePanel ui:field="messageListContainer"/>
+
<g:LayoutPanel ui:field="messageListContainer"/>
</g:layer>
<g:layer bottom="0" height="25px">
-
<g:SimplePanel ui:field="messageListFooterContainer"/>
+
<g:SimplePanel ui:field="messageListFooterContainer" />
</g:layer>
</g:LayoutPanel>
</g:north>
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java
Thu Sep 12 03:47:13 2013
@@ -125,27 +125,40 @@ 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 com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.cellview.client.SimplePager;
+import com.google.gwt.user.cellview.client.SimplePager.TextLocation;
import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.inject.Inject;
-public class MessageListFooterView extends Composite implements
- MessageListFooterActivity.Displayable {
+public class MessageListFooterView extends Composite implements
MessageListFooterActivity.Displayable {
- public MessageListFooterView() {
+ @UiField(provided = true)
+ SimplePager simplePager;
+
+ @Inject
+ public MessageListFooterView(final MessagesCellTable table) {
+ SimplePager.Resources pagerResources =
GWT.create(SimplePager.Resources.class);
+ simplePager = new SimplePager(TextLocation.CENTER,
pagerResources, false, 0, true);
+ simplePager.setDisplay(table);
initWidget(binder.createAndBindUi(this));
}
<<<<<<< HEAD
+<<<<<<< HEAD
interface MessageListFooterUiBinder extends UiBinder<HTMLPanel,
MessageListFooterView> {
>>>>>>> make login page as one part of the overall layout & splite layout to
>>>>>>> little one
=======
interface MessageListFooterUiBinder extends
UiBinder<HTMLPanel, MessageListFooterView> {
>>>>>>> integrate all of the views to their corresponding activities and
>>>>>>> mappers
+=======
+ interface MessageListFooterUiBinder extends UiBinder<SimplePanel,
MessageListFooterView> {
+>>>>>>> make message list view panel work as expected partly
}
- private static MessageListFooterUiBinder binder = GWT
- .create(MessageListFooterUiBinder.class);
+ private static MessageListFooterUiBinder binder =
GWT.create(MessageListFooterUiBinder.class);
<<<<<<< HEAD
@Override
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml
Thu Sep 12 03:47:13 2013
@@ -11,6 +11,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
<<<<<<< HEAD
+<<<<<<< HEAD
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:c='urn:import:com.google.gwt.user.cellview.client'>
<ui:style>
@@ -30,4 +31,10 @@
<g:HTMLPanel>MessageListFooter
</g:HTMLPanel>
>>>>>>> make login page as one part of the overall layout & splite layout to
>>>>>>> little one
+=======
+ xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:c='urn:import:com.google.gwt.user.cellview.client'>
+ <g:SimplePanel>
+ <c:SimplePager ui:field="simplePager" />
+ </g:SimplePanel>
+>>>>>>> make message list view panel work as expected partly
</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=1522248&r1=1522247&r2=1522248&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:47:13 2013
@@ -54,30 +54,154 @@ public class MessageListView extends Com
=======
=======
import org.apache.hupa.client.activity.MessageListActivity;
+import org.apache.hupa.client.rf.FetchMessagesRequest;
+import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.domain.FetchMessagesAction;
+import org.apache.hupa.shared.domain.FetchMessagesResult;
+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.LoadMessagesEvent;
+import org.apache.hupa.shared.events.LoadMessagesEventHandler;
+import org.apache.hupa.shared.events.LoginEvent;
+import org.apache.hupa.shared.events.LoginEventHandler;
>>>>>>> integrate all of the views to their corresponding activities and
>>>>>>> mappers
import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.event.shared.EventBus;
import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.SimplePanel;
-
-public class MessageListView extends Composite implements
- MessageListActivity.Displayable {
-
- public MessageListView() {
+import com.google.gwt.user.client.ui.LayoutPanel;
+import com.google.gwt.view.client.CellPreviewEvent;
+import com.google.gwt.view.client.CellPreviewEvent.Handler;
+import com.google.gwt.view.client.RangeChangeEvent;
+import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
+import com.google.web.bindery.requestfactory.shared.ServerFailure;
+
+public class MessageListView extends Composite implements
MessageListActivity.Displayable {
+
+ @UiField(provided = true)
+ MessagesCellTable table;
+ private HupaRequestFactory requestFactory;
+ private EventBus eventBus;
+ private ImapFolder folder;
+ private String searchValue;
+ private User user;
+ private boolean pending;
+
+ @Inject
+ public MessageListView(final EventBus eventBus, final
HupaRequestFactory requestFactory,
+ final MessagesCellTable table) {
+ this.requestFactory = requestFactory;
+ this.eventBus = eventBus;
+ this.table = table;
initWidget(binder.createAndBindUi(this));
+ table.addCellPreviewHandler(new Handler<Message>() {
+ @Override
+ public void onCellPreview(CellPreviewEvent<Message>
event) {
+ if (hasClickedButFirstCol(event)) {
+ eventBus.fireEvent(new
ExpandMessageEvent(user, folder, event.getValue()));
+ }
+ }
+
+ private boolean
hasClickedButFirstCol(CellPreviewEvent<Message> event) {
+ return
"click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn();
+ }
+
+ });
+ table.addRangeChangeHandler(new RangeChangeEvent.Handler() {
+ @Override
+ public void onRangeChange(RangeChangeEvent event) {
+ fetch(event.getNewRange().getStart());
+ }
+ });
+ eventBus.addHandler(LoadMessagesEvent.TYPE, new
LoadMessagesEventHandler() {
+ public void onLoadMessagesEvent(LoadMessagesEvent
loadMessagesEvent) {
+ user = loadMessagesEvent.getUser();
+ folder = loadMessagesEvent.getFolder();
+ searchValue =
loadMessagesEvent.getSearchValue();
+ fetch(0);
+
+ }
+ });
+ eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+ public void onLogin(LoginEvent event) {
+ user = event.getUser();
+ folder = new
ImapFolderImpl(user.getSettings().getInboxFolderName());
+ searchValue = null;
+ if (!pending) {
+ pending = true;
+ Scheduler.get().scheduleFinally(new
ScheduledCommand() {
+ @Override
+ public void execute() {
+ pending = false;
+ fetch(0);
+ }
+ });
+ }
+ }
+ });
+ }
+
+ public void fetch(final int start) {
+ FetchMessagesRequest messagesRequest =
requestFactory.messagesRequest();
+ FetchMessagesAction action =
messagesRequest.create(FetchMessagesAction.class);
+ final ImapFolder folder1 =
messagesRequest.create(ImapFolder.class);
+ folder1.setChildren(folder.getChildren());
+ folder1.setDelimiter(folder.getDelimiter());
+ folder1.setFullName(folder.getFullName());
+ folder1.setMessageCount(folder.getMessageCount());
+ folder1.setName(folder.getName());
+ folder1.setSubscribed(folder.getSubscribed());
+ folder1.setUnseenMessageCount(folder.getUnseenMessageCount());
+ action.setFolder(folder1);
+ action.setOffset(table.getPageSize());
+ action.setSearchString(searchValue);
+ action.setStart(start);
+ messagesRequest.fetch(action).fire(new
Receiver<FetchMessagesResult>() {
+
+ @Override
+ public void onFailure(ServerFailure error) {
+ if (error.isFatal()) {
+ throw new
RuntimeException(error.getMessage());
+ }
+ }
+
+ @Override
+ public void onSuccess(final FetchMessagesResult result)
{
+ assert result != null;
+ //
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());
+
+ // pager.setPageStart(start);
+// eventBus.fireEvent(new
MessagesReceivedEvent(folder1, result.getMessages()));
+ }
+ });
}
<<<<<<< HEAD
+<<<<<<< HEAD
interface MessageListUiBinder extends UiBinder<HTMLPanel,
MessageListView> {
>>>>>>> make login page as one part of the overall layout & splite layout to
>>>>>>> little one
=======
interface MessageListUiBinder extends UiBinder<SimplePanel,
MessageListView> {
>>>>>>> try to integrate the messages list's panel
+=======
+ interface MessageListUiBinder extends UiBinder<LayoutPanel,
MessageListView> {
+>>>>>>> make message list view panel work as expected partly
}
- private static MessageListUiBinder binder = GWT
- .create(MessageListUiBinder.class);
+ private static MessageListUiBinder binder =
GWT.create(MessageListUiBinder.class);
<<<<<<< HEAD
@Override
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml?rev=1522248&r1=1522247&r2=1522248&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml
Thu Sep 12 03:47:13 2013
@@ -11,6 +11,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
<<<<<<< HEAD
+<<<<<<< HEAD
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:SimpleLayoutPanel ui:field="thisView" />
=======
@@ -25,4 +26,12 @@
</g:HTMLPanel>
</g:SimplePanel>
>>>>>>> try to integrate the messages list's panel
+=======
+ xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:hupa='urn:import:org.apache.hupa.client.ui'>
+ <g:LayoutPanel>
+ <g:layer>
+ <hupa:MessagesCellTable ui:field="table" />
+ </g:layer>
+ </g:LayoutPanel>
+>>>>>>> make message list view panel work as expected partly
</ui:UiBinder>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]