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:40:00 UTC
svn commit: r1522374 - in
/james/hupa/trunk/client/src/main/java/org/apache/hupa/client: activity/
ioc/ mapper/ place/ ui/
Author: dongxu
Date: Thu Sep 12 04:39:59 2013
New Revision: 1522374
URL: http://svn.apache.org/r1522374
Log:
change message list view to make it not refresh the whole list when click one of the messages
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java
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/activity/MessageContentActivity.java
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/MessageSendActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.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/ioc/AppGinModule.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.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/FolderPlace.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ContentSplitLayoutPanel.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.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/MessageListView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java Thu Sep 12 04:39:59 2013
@@ -41,6 +41,7 @@ public abstract class AppBaseActivity ex
@Inject protected EventBus eventBus;
@Inject protected HupaController hc;
<<<<<<< HEAD
+<<<<<<< HEAD
@Inject protected PlaceController pc;
@Inject protected HupaRequestFactory rf;
@@ -65,6 +66,10 @@ public abstract class AppBaseActivity ex
>>>>>>> try to rearrange the places and history managment.
@Inject protected PlaceController placeController;
@Inject protected HupaRequestFactory requestFactory;
+=======
+ @Inject protected PlaceController pc;
+ @Inject protected HupaRequestFactory rf;
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
>>>>>>> scrub code
protected List<HandlerRegistration> registrations = new ArrayList<HandlerRegistration>();
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java Thu Sep 12 04:39:59 2013
@@ -699,6 +699,7 @@ public class ComposeActivity extends App
if ("new".equals(place.getToken())) {
SendMessageRequest sendReq = rf.sendMessageRequest();
+<<<<<<< HEAD
SendMessageAction sendAction = sendReq.create(SendMessageAction.class);
sendAction.setMessage(parseMessage(sendReq));
=======
@@ -727,6 +728,8 @@ public class ComposeActivity extends App
if ("new".equals(place.getToken())) {
SendMessageRequest sendReq = requestFactory.sendMessageRequest();
+=======
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
SendMessageAction sendAction = sendReq.create(SendMessageAction.class);
<<<<<<< HEAD
<<<<<<< HEAD
@@ -753,6 +756,7 @@ public class ComposeActivity extends App
// FIXME will get a NullPointerException given accessing
// directly from some URL like #/compose:forward
<<<<<<< HEAD
+<<<<<<< HEAD
SendForwardMessageRequest req = rf.sendForwardMessageRequest();
SendForwardMessageAction action = req.create(SendForwardMessageAction.class);
action.setMessage(parseMessage(req));
@@ -783,6 +787,9 @@ public class ComposeActivity extends App
=======
>>>>>>> scrub code
SendForwardMessageRequest req = requestFactory.sendForwardMessageRequest();
+=======
+ SendForwardMessageRequest req = rf.sendForwardMessageRequest();
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
SendForwardMessageAction action = req.create(SendForwardMessageAction.class);
action.setMessage(parseMessage(req));
ImapFolder f = req.create(ImapFolder.class);
@@ -849,7 +856,7 @@ public class ComposeActivity extends App
=======
>>>>>>> coping with java.lang.IllegalArgumentException: uid
} else {
- SendReplyMessageRequest replyReq = requestFactory.sendReplyMessageRequest();
+ SendReplyMessageRequest replyReq = rf.sendReplyMessageRequest();
SendReplyMessageAction action = replyReq.create(SendReplyMessageAction.class);
action.setMessage(parseMessage(replyReq));
ImapFolder folder = replyReq.create(ImapFolder.class);
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java Thu Sep 12 04:39:59 2013
@@ -113,6 +113,7 @@ public class IMAPMessageListActivity ext
public void onMoveMessageHandler(MoveMessageEvent event) {
final Message message = event.getMessage();
MoveMessageRequest req = rf.moveMessageRequest();
+<<<<<<< HEAD
MoveMessageAction action = req.create(MoveMessageAction.class);
ImapFolder newOne = req.create(ImapFolder.class);
ImapFolder oldOne = req.create(ImapFolder.class);
@@ -670,6 +671,8 @@ public class IMAPMessageListActivity ext
public void onMoveMessageHandler(MoveMessageEvent event) {
final Message message = event.getMessage();
MoveMessageRequest req = requestFactory.moveMessageRequest();
+=======
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
MoveMessageAction action = req.create(MoveMessageAction.class);
ImapFolder newOne = req.create(ImapFolder.class);
ImapFolder oldOne = req.create(ImapFolder.class);
@@ -716,7 +719,7 @@ public class IMAPMessageListActivity ext
registrations.add(display.getNewClick().addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() {
public void onClick(com.google.gwt.event.dom.client.ClickEvent event) {
// eventBus.fireEvent(new NewMessageEvent());
- placeController.goTo(messageSendPlaceProvider.get().with(user, null, null, null, Type.NEW));
+ pc.goTo(messageSendPlaceProvider.get().with(user, null, null, null, Type.NEW));
}
}));
registrations.add(display.getDeleteAllClick().addClickHandler(new ClickHandler() {
@@ -726,7 +729,7 @@ public class IMAPMessageListActivity ext
}));
registrations.add(display.getConfirmDeleteAllDialogClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
- DeleteMessageAllRequest req = requestFactory.deleteMessageAllRequest();
+ DeleteMessageAllRequest req = rf.deleteMessageAllRequest();
DeleteMessageAllAction action = req.create(DeleteMessageAllAction.class);
ImapFolder f = req.create(ImapFolder.class);
folder.setFolderTo(f);
@@ -751,7 +754,7 @@ public class IMAPMessageListActivity ext
selectedMessages.remove(m);
}
}
- SetFlagRequest req = requestFactory.setFlagRequest();
+ SetFlagRequest req = rf.setFlagRequest();
SetFlagAction action = req.create(SetFlagAction.class);
ImapFolder f = req.create(ImapFolder.class);
folder.setFolderTo(f);
@@ -784,7 +787,7 @@ public class IMAPMessageListActivity ext
selectedMessages.remove(m);
}
}
- SetFlagRequest req = requestFactory.setFlagRequest();
+ SetFlagRequest req = rf.setFlagRequest();
SetFlagAction action = req.create(SetFlagAction.class);
ImapFolder f = req.create(ImapFolder.class);
folder.setFolderTo(f);
@@ -842,7 +845,7 @@ public class IMAPMessageListActivity ext
// maybe its better to just remove the messages from the table and
// expect the removal will work
display.removeMessages(selectedMessages);
- DeleteMessageByUidRequest req = requestFactory.deleteMessageByUidRequest();
+ DeleteMessageByUidRequest req = rf.deleteMessageByUidRequest();
DeleteMessageByUidAction action = req.create(DeleteMessageByUidAction.class);
ImapFolder f = req.create(ImapFolder.class);
// folder.setFolderTo(f); FIXME cannot use any more, for it's already a requestContext assigned.
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java Thu Sep 12 04:39:59 2013
@@ -195,7 +195,7 @@ public class LabelListActivity extends A
hupaController.showTopLoading("Deleting...");
SingleSelectionModel<LabelNode> selectionModel = display.getSelectionModel();
LabelNode labelNode = selectionModel.getSelectedObject();
- DeleteFolderRequest req = requestFactory.deleteFolderRequest();
+ DeleteFolderRequest req = rf.deleteFolderRequest();
DeleteFolderAction action = req.create(DeleteFolderAction.class);
final ImapFolder f = req.create(ImapFolder.class);
f.setFullName(labelNode.getFolder().getFullName());
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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -353,6 +353,7 @@ public class LoginActivity extends Abstr
return;
display.setLoading(true);
LoginUserRequest loginRequest = rf.loginRequest();
+<<<<<<< HEAD
loginRequest.login(user, pass).fire(new Receiver<User>() {
@Override
public void onSuccess(User response) {
@@ -484,12 +485,14 @@ public class LoginActivity extends Abstr
=======
>>>>>>> scrub code
LoginUserRequest loginRequest = requestFactory.loginRequest();
+=======
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
loginRequest.login(user, pass).fire(new Receiver<User>() {
@Override
public void onSuccess(User response) {
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(hupaLayout.get());
- placeController.goTo(new FolderPlace(response.getSettings().getInboxFolderName()));
+ pc.goTo(new FolderPlace(response.getSettings().getInboxFolderName()));
eventBus.fireEvent(new LoginEvent(response));
display.setLoading(false);
}
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=1522374&r1=1522373&r2=1522374&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:39:59 2013
@@ -204,7 +204,7 @@ public class MessageContentActivity exte
@Override
public void start(AcceptsOneWidget container, EventBus eventBus) {
if (isUidSet()) {
- GetMessageDetailsRequest req = requestFactory
+ GetMessageDetailsRequest req = rf
.messageDetailsRequest();
GetMessageDetailsAction action = req
.create(GetMessageDetailsAction.class);
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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -320,107 +320,48 @@ public class MessageListActivity extends
public void start(AcceptsOneWidget container, final EventBus eventBus) {
container.setWidget(display.asWidget());
bindTo(eventBus);
- this.registerHandler(display.getGrid().addCellPreviewHandler(new Handler<Message>() {
- @Override
- public void onCellPreview(final CellPreviewEvent<Message> event) {
- if (hasClickedButFirstCol(event)) {
- antiSelectMessages(display.getGrid().getVisibleItems());
- GetMessageDetailsRequest req = requestFactory.messageDetailsRequest();
- GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
- final ImapFolder f = req.create(ImapFolder.class);
- f.setFullName(folderName);
- action.setFolder(f);
- action.setUid(event.getValue().getUid());
- req.get(action).fire(new Receiver<GetMessageDetailsResult>() {
- @Override
- public void onSuccess(GetMessageDetailsResult response) {
- eventBus.fireEvent(new ExpandMessageEvent(user, new ImapFolderImpl(folderName), event
- .getValue(), response.getMessageDetails()));
- display.getGrid().getSelectionModel().setSelected(event.getValue(), true);
- toolBar.enableAllTools(true);
- ToolBarView.Parameters p = new ToolBarView.Parameters(user, folderName, event.getValue(),
- response.getMessageDetails());
- toolBar.setParameters(p);
- MessagePlace place = new MessagePlace(folderName+AbstractPlace.SPLITTER+event.getValue().getUid());
- placeController.goTo(place);
- }
-
- @Override
- public void onFailure(ServerFailure error) {
- if (error.isFatal()) {
- // log.log(Level.SEVERE, error.getMessage());
- // TODO write the error message to
- // status bar.
- toolBar.enableAllTools(false);
- throw new RuntimeException(error.getMessage());
- }
- }
- });
- }
- }
-
- }));
- dataProvider = new MessageListDataProvider();
- dataProvider.addDataDisplay(display.getGrid());
- }
-
- public void refresh(){
- dataProvider.refresh();
- }
-
- private MessageListDataProvider dataProvider;
- public class MessageListDataProvider extends AsyncDataProvider<Message> implements HasRefresh{
-
- HasData<Message> display;
-
- @Override
- public void addDataDisplay(HasData<Message> display) {
- super.addDataDisplay(display);
- this.display = display;
- }
-
-
- @Override
- public void refresh() {
- this.onRangeChanged(display);
- }
-
- @Override
- protected void onRangeChanged(HasData<Message> display) {
- FetchMessagesRequest req = requestFactory.messagesRequest();
- FetchMessagesAction action = req.create(FetchMessagesAction.class);
- final ImapFolder f = req.create(ImapFolder.class);
- f.setFullName(folderName);
- action.setFolder(f);
- action.setOffset(display.getVisibleRange().getLength());
- action.setSearchString(searchValue);
- action.setStart(display.getVisibleRange().getStart());
- req.fetch(action).fire(new Receiver<FetchMessagesResult>() {
- @Override
- public void onSuccess(final FetchMessagesResult response) {
- if (response == null || response.getRealCount()== 0) {
- updateRowCount(-1, true);
- } else {
- updateRowData(0, response.getMessages());
- }
- hc.hideTopLoading();
- }
-
- @Override
- public void onFailure(ServerFailure error) {
- if (error.isFatal()) {
- throw new RuntimeException(error.getMessage());
- }
- hc.hideTopLoading();
- }
- });
-
- }
-
- }
-
- private boolean hasClickedButFirstCol(CellPreviewEvent<Message> event) {
- return "click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn();
+// this.registerHandler(display.getGrid().addCellPreviewHandler(new Handler<Message>() {
+// @Override
+// public void onCellPreview(final CellPreviewEvent<Message> event) {
+// if (hasClickedButFirstCol(event)) {
+// antiSelectMessages(display.getGrid().getVisibleItems());
+// GetMessageDetailsRequest req = rf.messageDetailsRequest();
+// GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
+// final ImapFolder f = req.create(ImapFolder.class);
+// f.setFullName(folderName);
+// action.setFolder(f);
+// action.setUid(event.getValue().getUid());
+// req.get(action).fire(new Receiver<GetMessageDetailsResult>() {
+// @Override
+// public void onSuccess(GetMessageDetailsResult response) {
+// eventBus.fireEvent(new ExpandMessageEvent(user, new ImapFolderImpl(folderName), event
+// .getValue(), response.getMessageDetails()));
+//// display.getGrid().getSelectionModel().setSelected(event.getValue(), true);
+// display.getGrid().noSelectionModel.setSelected(event.getValue(), true);
+// toolBar.enableAllTools(true);
+// ToolBarView.Parameters p = new ToolBarView.Parameters(user, folderName, event.getValue(),
+// response.getMessageDetails());
+// toolBar.setParameters(p);
+// MessagePlace place = new MessagePlace(folderName + AbstractPlace.SPLITTER
+// + event.getValue().getUid());
+// pc.goTo(place);
+// }
+//
+// @Override
+// public void onFailure(ServerFailure error) {
+// if (error.isFatal()) {
+// // log.log(Level.SEVERE, error.getMessage());
+// // TODO write the error message to
+// // status bar.
+// toolBar.enableAllTools(false);
+// throw new RuntimeException(error.getMessage());
+// }
+// }
+// });
+// }
+// }
+//
+// }));
}
private void bindTo(EventBus eventBus) {
@@ -455,11 +396,11 @@ public class MessageListActivity extends
>>>>>>> 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 {
MessagesCellTable getGrid();
+
+ void refresh();
List<Long> getSelectedMessagesIds();
- void refresh();
-
Set<Message> getSelectedMessages();
}
@@ -472,14 +413,14 @@ public class MessageListActivity extends
}
}
private void deleteSelectedMessages() {
- String fullName= null;
- if(placeController.getWhere() instanceof FolderPlace){
- fullName=((FolderPlace) placeController.getWhere()).getToken();
- }else{
- fullName=((MessagePlace) placeController.getWhere()).getTokenWrapper().getFolder();
+ String fullName = null;
+ if (pc.getWhere() instanceof FolderPlace) {
+ fullName = ((FolderPlace) pc.getWhere()).getToken();
+ } else {
+ fullName = ((MessagePlace) pc.getWhere()).getTokenWrapper().getFolder();
}
final List<Long> uids = display.getSelectedMessagesIds();
- DeleteMessageByUidRequest req = requestFactory.deleteMessageByUidRequest();
+ DeleteMessageByUidRequest req = rf.deleteMessageByUidRequest();
DeleteMessageByUidAction action = req.create(DeleteMessageByUidAction.class);
ImapFolder f = req.create(ImapFolder.class);
f.setFullName(fullName);
@@ -489,7 +430,7 @@ public class MessageListActivity extends
@Override
public void onSuccess(DeleteMessageResult response) {
antiSelectMessages(display.getSelectedMessages());
- refresh();
+// refresh();
}
});
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageSendActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageSendActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageSendActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageSendActivity.java Thu Sep 12 04:39:59 2013
@@ -645,7 +645,7 @@ public class MessageSendActivity extends
protected ClickHandler sendClickHandler = new ClickHandler() {
public void onClick(ClickEvent event) {
if (validate()) {
- sendReq = requestFactory.sendMessageRequest();
+ sendReq = rf.sendMessageRequest();
message = sendReq.create(SmtpMessage.class);
List<MessageAttachment> attaches = new ArrayList<MessageAttachment>();
for(MessageAttachment attach : attachments){// we must use this, else console will complain a NullPointerException
@@ -675,7 +675,7 @@ public class MessageSendActivity extends
}
});
} else if (type == Type.FORWARD) {
- SendForwardMessageRequest forwardReq = requestFactory.sendForwardMessageRequest();
+ SendForwardMessageRequest forwardReq = rf.sendForwardMessageRequest();
SendForwardMessageAction forwardAction = forwardReq.create(SendForwardMessageAction.class);
forwardAction.setMessage(message);
forwardAction.setFolder(folder);
@@ -687,7 +687,7 @@ public class MessageSendActivity extends
}
});
} else {
- SendReplyMessageRequest replyReq = requestFactory.sendReplyMessageRequest();
+ SendReplyMessageRequest replyReq = rf.sendReplyMessageRequest();
SendReplyMessageAction replyAction = replyReq.create(SendReplyMessageAction.class);
replyAction.setMessage(message);
replyAction.setFolder(folder);
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java Thu Sep 12 04:39:59 2013
@@ -199,21 +199,14 @@ public class ToolBarActivity extends App
@Inject private Displayable display;
@Inject private MessagesCellTable table;
- @Inject private MessageListActivity messagesDisplay;
+ @Inject private MessageListActivity.Displayable messagesDisplay;
@Inject private FolderListActivity.Displayable folderListDisplay;
@Inject private HupaController hupaController;
- // FIXME messagesDisplay can not be injected into ToolBarView, why?
private String folderName;
-// @Override
-// public void onStop() {
-// // for tool bar work as expected, not to unbind event handlers
-// }
-
@Override
public void start(AcceptsOneWidget container, EventBus eventBus) {
container.setWidget(display.asWidget());
-// display.enableAllTools(false);
bindTo(eventBus);
}
@@ -233,7 +226,6 @@ public class ToolBarActivity extends App
>>>>>>> integrate all of the views to their corresponding activities and mappers
=======
private void bindTo(EventBus eventBus) {
-
registerHandler(display.getMarkRead().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
@@ -250,7 +242,6 @@ public class ToolBarActivity extends App
display.getPopup().hide();
}
}));
-
registerHandler(display.getDeleteReg());
registerHandler(display.getMarkReg());
registerHandler(display.getReplyReg());
@@ -266,7 +257,7 @@ public class ToolBarActivity extends App
table.markRead(msg, read);
}
}
- SetFlagRequest req = this.requestFactory.setFlagRequest();
+ SetFlagRequest req = this.rf.setFlagRequest();
SetFlagAction action = req.create(SetFlagAction.class);
ImapFolder f = req.create(ImapFolder.class);
f.setFullName(folderName);
@@ -277,18 +268,14 @@ public class ToolBarActivity extends App
req.set(action).fire(new Receiver<GenericResult>() {
@Override
public void onSuccess(GenericResult response) {
- table.refresh();
-// table.setStyleBaseOnTag();
folderListDisplay.refresh();
messagesDisplay.refresh();
hupaController.hideTopLoading();
}
});
-
}
public interface Displayable extends WidgetDisplayable {
-
void enableSendingTools(boolean is);
HandlerRegistration getForwardReg();
HandlerRegistration getReplyAllReg();
@@ -297,23 +284,15 @@ public class ToolBarActivity extends App
HandlerRegistration getDeleteReg();
void enableDealingTools(boolean is);
void enableAllTools(boolean is);
-
HasClickHandlers getReply();
-
HasClickHandlers getReplyAll();
-
HasClickHandlers getForward();
-
void setParameters(Parameters parameters);
Parameters getParameters();
-
HasClickHandlers getMarkUnread();
-
HasClickHandlers getMarkRead();
-
HasClickHandlers getMark();
HasClickHandlers getDelete();
-
PopupPanel getPopup();
HasClickHandlers getCompose();
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java Thu Sep 12 04:39:59 2013
@@ -309,6 +309,7 @@ public class TopActivity extends AppBase
private void doLogout() {
if (user != null) {
LogoutUserRequest req = rf.logoutRequest();
+<<<<<<< HEAD
req.logout().fire(new Receiver<LogoutUserResult>() {
@Override
public void onSuccess(LogoutUserResult response) {
@@ -353,6 +354,8 @@ public class TopActivity extends AppBase
=======
if (user != null) {
LogoutUserRequest req = requestFactory.logoutRequest();
+=======
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
req.logout().fire(new Receiver<LogoutUserResult>() {
@Override
public void onSuccess(LogoutUserResult response) {
@@ -475,6 +478,7 @@ public class TopActivity extends AppBase
if (!running) {
running = true;
IdleRequest req = rf.idleRequest();
+<<<<<<< HEAD
IdleAction action = req.create(IdleAction.class);
req.idle(action).fire(new Receiver<IdleResult>() {
@@ -528,6 +532,8 @@ public class TopActivity extends AppBase
>>>>>>> introduce the top activity
=======
IdleRequest req = requestFactory.idleRequest();
+=======
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
IdleAction action = req.create(IdleAction.class);
req.idle(action).fire(new Receiver<IdleResult>() {
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java Thu Sep 12 04:39:59 2013
@@ -189,7 +189,7 @@ public class TopBarActivity extends AppB
=======
=======
private void checkSessionUser() {
- CheckSessionRequest checkSession = requestFactory.sessionRequest();
+ CheckSessionRequest checkSession = rf.sessionRequest();
checkSession.getUser().fire(new Receiver<User>() {
@Override
public void onSuccess(User user) {
@@ -216,21 +216,21 @@ public class TopBarActivity extends AppB
private void doLogout() {
if (user != null) {
- LogoutUserRequest req = requestFactory.logoutRequest();
+ LogoutUserRequest req = rf.logoutRequest();
req.logout().fire(new Receiver<LogoutUserResult>() {
@Override
public void onSuccess(LogoutUserResult response) {
eventBus.fireEvent(new LogoutEvent(response.getUser()));
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(loginLayout.get());
- TopBarActivity.this.placeController.goTo(new DefaultPlace("@"));
+ TopBarActivity.this.pc.goTo(new DefaultPlace("@"));
}
@Override
public void onFailure(ServerFailure error) {
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(loginLayout.get());
- TopBarActivity.this.placeController.goTo(new DefaultPlace("@"));
+ TopBarActivity.this.pc.goTo(new DefaultPlace("@"));
}
});
}
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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -116,6 +116,7 @@ public class WestActivity extends AppBas
}
GetMessageDetailsRequest req = rf.messageDetailsRequest();
+<<<<<<< HEAD
GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
final ImapFolder f = req.create(ImapFolder.class);
// event.getFolder().setFolderTo(f);
@@ -940,6 +941,8 @@ System.out.println("1111111"+response);
}
GetMessageDetailsRequest req = requestFactory.messageDetailsRequest();
+=======
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
final ImapFolder f = req.create(ImapFolder.class);
// event.getFolder().setFolderTo(f);
@@ -1367,16 +1370,16 @@ System.out.println("1111111"+response);
=======
>>>>>>> refactoring.
private void showNewMessage() {
- placeController.goTo(this.messageSendPlaceProvider.get().with(user, null, null, null, Type.NEW));
+ pc.goTo(this.messageSendPlaceProvider.get().with(user, null, null, null, Type.NEW));
}
private void showForwardMessage(ForwardMessageEvent event) {
- placeController.goTo(this.messageSendPlaceProvider.get().with(event.getUser(), event.getFolder(),
+ pc.goTo(this.messageSendPlaceProvider.get().with(event.getUser(), event.getFolder(),
event.getMessage(), event.getMessageDetails(), Type.FORWARD));
}
private void showReplyMessage(ReplyMessageEvent event) {
- placeController.goTo(this.messageSendPlaceProvider.get().with(event.getUser(), event.getFolder(),
+ pc.goTo(this.messageSendPlaceProvider.get().with(event.getUser(), event.getFolder(),
event.getMessage(), event.getMessageDetails(), event.getReplyAll() ? Type.REPLY_ALL : Type.REPLY));
}
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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -169,6 +169,7 @@ import org.apache.hupa.client.mapper.App
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
import org.apache.hupa.client.mapper.CachingTopActivityMapper;
<<<<<<< HEAD
<<<<<<< HEAD
@@ -221,6 +222,9 @@ import org.apache.hupa.client.mapper.Com
=======
=======
=======
+=======
+import org.apache.hupa.client.mapper.CachingMessageListActivityMapper;
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
import org.apache.hupa.client.mapper.CachingTopBarActivityMapper;
>>>>>>> fixed issue#46 and issue#32
import org.apache.hupa.client.mapper.ComposeActivityMapper;
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java Thu Sep 12 04:39:59 2013
@@ -20,9 +20,13 @@
package org.apache.hupa.client.mapper;
<<<<<<< HEAD
+<<<<<<< HEAD
import org.apache.hupa.client.place.FolderPlace;
=======
>>>>>>> change place management and make refresh folder and message list more gentle
+=======
+import org.apache.hupa.client.place.FolderPlace;
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
import org.apache.hupa.client.place.MessagePlace;
import com.google.gwt.activity.shared.Activity;
@@ -43,6 +47,7 @@ public class CachingMessageListActivityM
@Override
public Place filter(Place place) {
<<<<<<< HEAD
+<<<<<<< HEAD
return place instanceof MessagePlace ? new FolderPlace(((MessagePlace) place).getTokenWrapper()
.getFolder()) : place;
}
@@ -57,6 +62,15 @@ public class CachingMessageListActivityM
filteredActivityMapper = new FilteredActivityMapper(filter, new CachingActivityMapper(messageListActivityMapper));
>>>>>>> change place management and make refresh folder and message list more gentle
+=======
+ return place instanceof MessagePlace ? new FolderPlace(((MessagePlace) place).getTokenWrapper()
+ .getFolder()) : place;
+ }
+ };
+
+ filteredActivityMapper = new FilteredActivityMapper(filter,
+ new CachingActivityMapper(messageListActivityMapper));
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
}
@Override
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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -124,7 +124,15 @@ public class MessageListActivityMapper e
return null;
=======
protected Activity lazyLoadActivity(final Place place) {
+<<<<<<< HEAD
>>>>>>> change place management and make refresh folder and message list more gentle
+=======
+ if (place instanceof FolderPlace) {
+ return messageListActivityProvider.get().with(((FolderPlace) place).getToken());
+ } else if(place instanceof MessagePlace){
+ return messageListActivityProvider.get().with(((MessagePlace) place).getTokenWrapper().getFolder());
+ }
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
return new ActivityAsyncProxy() {
@Override
protected void doAsync(RunAsyncCallback callback) {
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/FolderPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/FolderPlace.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/FolderPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/FolderPlace.java Thu Sep 12 04:39:59 2013
@@ -232,6 +232,7 @@ public class FolderPlace extends HupaPla
return place.getToken();
}
}
+<<<<<<< HEAD
<<<<<<< HEAD:client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
<<<<<<< HEAD
@@ -265,4 +266,26 @@ public class FolderPlace extends HupaPla
>>>>>>> make reload message content work, use the same place with folder list, while separated with slash, that looks like Gmail's
=======
>>>>>>> change place management and make refresh folder and message list more gentle:client/src/main/java/org/apache/hupa/client/place/FolderPlace.java
+=======
+//
+// @Override
+// public boolean equals(Object o) {
+// if (o == null)
+// return false;
+// if (o == this)
+// return true;
+// if (o.getClass() != getClass())
+// return false;
+// FolderPlace place = (FolderPlace) o;
+// return (token == place.token || (token != null && token.equals(place.token)));
+// }
+//
+// @Override
+// public int hashCode() {
+// final int prime = 31;
+// int result = 1;
+// result = prime * result + ((token == null) ? 0 : token.hashCode());
+// return result;
+// }
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ContentSplitLayoutPanel.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ContentSplitLayoutPanel.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ContentSplitLayoutPanel.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ContentSplitLayoutPanel.java Thu Sep 12 04:39:59 2013
@@ -1,6 +1,5 @@
package org.apache.hupa.client.ui;
-import com.google.gwt.core.client.Scheduler;
import com.google.gwt.user.client.ui.SplitLayoutPanel;
import com.google.inject.Inject;
@@ -14,15 +13,4 @@ public class ContentSplitLayoutPanel ext
public ContentSplitLayoutPanel(int splitterSize){
super(splitterSize);
}
-
- @Override
- public void onResize() {
- super.onResize();
- Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
- @Override
- public void execute() {
- table.refresh();
- }
- });
- }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java Thu Sep 12 04:39:59 2013
@@ -271,8 +271,12 @@ public class FolderListView extends Comp
=======
this.viewModel = viewModel;
cellTree = new CellTree(viewModel,null,Resources.INSTANCE);
+<<<<<<< HEAD
>>>>>>> try to rearrange the places and history managment.
cellTree.setAnimationEnabled(true);
+=======
+// cellTree.setAnimationEnabled(true);
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
thisView.add(cellTree);
>>>>>>> fixed issue#45, issue#47, issue#51. change the layout of composite, don't use contact instead of folders list
}
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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -12,6 +12,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<<<<<<< HEAD
<g:SimplePanel ui:field="thisView" />
@@ -34,6 +35,9 @@
</g:SimplePanel>
>>>>>>> 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'>
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
<g:SimplePanel ui:field="thisView" />
>>>>>>> make compose panel left another widget rather than cell tree
</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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -22,6 +22,7 @@ package org.apache.hupa.client.ui;
import java.util.List;
import org.apache.hupa.client.HupaController;
+import org.apache.hupa.client.activity.MessageListActivity;
import org.apache.hupa.client.activity.NotificationActivity;
import org.apache.hupa.client.activity.ToolBarActivity;
import org.apache.hupa.client.place.FolderPlace;
@@ -52,6 +53,7 @@ public class FoldersTreeViewModel implem
@Inject private PlaceController placeController;
@Inject private NotificationActivity.Displayable notice;
@Inject private ToolBarActivity.Displayable toolBar;
+ @Inject private MessageListActivity.Displayable msgListDisplay;
@Inject
public FoldersTreeViewModel() {
@@ -63,6 +65,7 @@ public class FoldersTreeViewModel implem
SingleSelectionModel<ImapFolder> selectionModel = (SingleSelectionModel<ImapFolder>) event.getSource();
toolBar.enableAllTools(false);
placeController.goTo(new FolderPlace(selectionModel.getSelectedObject().getFullName()));
+ msgListDisplay.refresh();
}
});
}
@@ -109,13 +112,13 @@ public class FoldersTreeViewModel implem
}
// TODO is this a click event?
- @Override
- public void onBrowserEvent(Context context, Element parent, ImapFolder value, NativeEvent event,
- ValueUpdater<ImapFolder> valueUpdater) {
- super.onBrowserEvent(context, parent, value, event, valueUpdater);
- placeController.goTo(new FolderPlace(value.getFullName()));
-
- }
+// @Override
+// public void onBrowserEvent(Context context, Element parent, ImapFolder value, NativeEvent event,
+// ValueUpdater<ImapFolder> valueUpdater) {
+// super.onBrowserEvent(context, parent, value, event, valueUpdater);
+// placeController.goTo(new FolderPlace(value.getFullName()));
+//
+// }
}
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=1522374&r1=1522373&r2=1522374&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:39:59 2013
@@ -36,6 +36,7 @@ import java.util.logging.Logger;
import org.apache.hupa.client.activity.MessageListActivity;
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
import org.apache.hupa.shared.domain.Message;
import com.google.gwt.core.client.GWT;
@@ -86,28 +87,32 @@ import java.util.Set;
import org.apache.hupa.client.activity.MessageListActivity;
>>>>>>> scrub code
import org.apache.hupa.client.rf.HupaRequestFactory;
+=======
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
import org.apache.hupa.shared.domain.Message;
>>>>>>> integrate all of the views to their corresponding activities and mappers
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventBus;
-import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.SimpleLayoutPanel;
+import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.view.client.MultiSelectionModel;
import com.google.inject.Inject;
public class MessageListView extends Composite implements MessageListActivity.Displayable {
- @UiField(provided = true) MessagesCellTable grid;
+ @UiField SimplePanel thisView;
+ private MessagesCellTable grid;
@Inject
- public MessageListView(final EventBus eventBus, final HupaRequestFactory requestFactory,
- final PlaceController placeController, final MessagesCellTable table) {
- grid = table;
+ public MessageListView(final EventBus eventBus, final MessagesCellTable table) {
initWidget(binder.createAndBindUi(this));
+ grid = table;
+ thisView.add(grid);
}
<<<<<<< HEAD
<<<<<<< HEAD
@@ -171,9 +176,13 @@ public class MessageListView extends Com
>>>>>>> let messages list activity make use of mvp
=======
+<<<<<<< HEAD
>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
interface MessageListUiBinder extends UiBinder<DataGrid<Message>, MessageListView> {
>>>>>>> coping with reply and forward sending message
+=======
+ interface MessageListUiBinder extends UiBinder<SimpleLayoutPanel, MessageListView> {
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
}
private static MessageListUiBinder binder = GWT.create(MessageListUiBinder.class);
@@ -235,6 +244,11 @@ public class MessageListView extends Com
public MessagesCellTable getGrid() {
return grid;
}
+
+ @Override
+ public void refresh(){
+ grid.refresh();
+ }
<<<<<<< HEAD
<<<<<<< HEAD
@@ -253,11 +267,6 @@ public class MessageListView extends Com
return selecteds;
}
- @Override
- public void refresh() {
- grid.refresh();
- }
-
@SuppressWarnings("unchecked")
@Override
public Set<Message> getSelectedMessages() {
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=1522374&r1=1522373&r2=1522374&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 04:39:59 2013
@@ -14,6 +14,7 @@
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:SimpleLayoutPanel ui:field="thisView" />
=======
@@ -52,4 +53,8 @@
=======
<hupa:MessagesCellTable ui:field="grid" />
>>>>>>> try to link the mark actions to rf services
+=======
+ xmlns:g='urn:import:com.google.gwt.user.client.ui'>
+ <g:SimpleLayoutPanel ui:field="thisView" />
+>>>>>>> change message list view to make it not refresh the whole list when click one of the messages
</ui:UiBinder>
\ No newline at end of file
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java?rev=1522374&r1=1522373&r2=1522374&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java Thu Sep 12 04:39:59 2013
@@ -503,9 +503,21 @@ import java.util.Date;
import java.util.List;
import org.apache.hupa.client.HupaConstants;
+import org.apache.hupa.client.HupaController;
import org.apache.hupa.client.activity.ToolBarActivity;
import org.apache.hupa.client.bundles.HupaImageBundle;
+import org.apache.hupa.client.place.AbstractPlace;
+import org.apache.hupa.client.place.FolderPlace;
+import org.apache.hupa.client.place.MessagePlace;
+import org.apache.hupa.client.rf.FetchMessagesRequest;
+import org.apache.hupa.client.rf.GetMessageDetailsRequest;
+import org.apache.hupa.client.rf.HupaRequestFactory;
import org.apache.hupa.shared.data.MessageImpl.IMAPFlag;
+import org.apache.hupa.shared.domain.FetchMessagesAction;
+import org.apache.hupa.shared.domain.FetchMessagesResult;
+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 com.google.gwt.cell.client.CheckboxCell;
@@ -517,15 +529,23 @@ import com.google.gwt.cell.client.ValueU
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.place.shared.Place;
+import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.cellview.client.Header;
import com.google.gwt.user.cellview.client.RowStyles;
+import com.google.gwt.view.client.AsyncDataProvider;
import com.google.gwt.view.client.DefaultSelectionEventManager;
+import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.MultiSelectionModel;
+import com.google.gwt.view.client.NoSelectionModel;
import com.google.gwt.view.client.ProvidesKey;
+import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
+import com.google.web.bindery.requestfactory.shared.ServerFailure;
public class MessagesCellTable extends DataGrid<Message> {
@@ -563,13 +583,75 @@ public class MessagesCellTable extends D
}
};
private final MultiSelectionModel<? super Message> selectionModel = new MultiSelectionModel<Message>(KEY_PROVIDER);
+ public final NoSelectionModel<Message> noSelectionModel = new NoSelectionModel<Message>(KEY_PROVIDER);
+ PlaceController pc;
+ HupaRequestFactory rf;
+
+ private MessageListDataProvider dataProvider;
+
+ public class MessageListDataProvider extends AsyncDataProvider<Message> implements HasRefresh {
+
+ HasData<Message> display;
+
+ @Override
+ public void addDataDisplay(HasData<Message> display) {
+ super.addDataDisplay(display);
+ this.display = display;
+ }
+
+ @Override
+ public void refresh() {
+ this.onRangeChanged(display);
+ }
+
+ @Override
+ protected void onRangeChanged(HasData<Message> display) {
+ FetchMessagesRequest req = rf.messagesRequest();
+ FetchMessagesAction action = req.create(FetchMessagesAction.class);
+ final ImapFolder f = req.create(ImapFolder.class);
+ f.setFullName(parseFolderName(pc));
+ action.setFolder(f);
+ action.setOffset(display.getVisibleRange().getLength());
+ action.setSearchString(searchValue);
+ action.setStart(display.getVisibleRange().getStart());
+ req.fetch(action).fire(new Receiver<FetchMessagesResult>() {
+ @Override
+ public void onSuccess(final FetchMessagesResult response) {
+ if (response == null || response.getRealCount() == 0) {
+ updateRowCount(-1, true);
+ } else {
+ updateRowData(0, response.getMessages());
+ }
+ hc.hideTopLoading();
+ }
+
+ @Override
+ public void onFailure(ServerFailure error) {
+ if (error.isFatal()) {
+ throw new RuntimeException(error.getMessage());
+ }
+ hc.hideTopLoading();
+ }
+ });
+
+ }
+
+ }
+
+ @Inject private ToolBarActivity.Displayable toolBar;
+ private String folderName;
+ private String searchValue;
+ @Inject protected HupaController hc;
@Inject
- public MessagesCellTable(final HupaImageBundle imageBundle, final HupaConstants constants) {
+ public MessagesCellTable(final HupaImageBundle imageBundle, final HupaConstants constants,
+ final PlaceController pc,
+ final HupaRequestFactory rf) {
super(PAGE_SIZE, Resources.INSTANCE);
-
+ this.pc = pc;
+ this.rf = rf;
this.imageBundle = imageBundle;
-
+
CheckboxCell headerCheckbox = new CheckboxCell();
ImageResourceCell headerAttached = new ImageResourceCell();
Header<Boolean> header = new Header<Boolean>(headerCheckbox) {
@@ -609,8 +691,66 @@ public class MessagesCellTable extends D
// redraw();
setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
setAutoHeaderRefreshDisabled(true);
- setSelectionModel(selectionModel, DefaultSelectionEventManager.<Message> createCheckboxManager(0));
+// setSelectionModel(selectionModel, DefaultSelectionEventManager.<Message> createCheckboxManager(0));
+
+ setSelectionModel(noSelectionModel, DefaultSelectionEventManager.<Message> createBlacklistManager(0));
+
+ noSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
+ @Override
+ public void onSelectionChange(SelectionChangeEvent event) {
+ message = noSelectionModel.getLastSelectedObject();
+ GetMessageDetailsRequest req = rf.messageDetailsRequest();
+ GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
+ final ImapFolder f = req.create(ImapFolder.class);
+
+ f.setFullName(parseFolderName(pc));
+ action.setFolder(f);
+ action.setUid(message.getUid());
+ req.get(action).fire(new Receiver<GetMessageDetailsResult>() {
+ @Override
+ public void onSuccess(GetMessageDetailsResult response) {
+ // display.getGrid().getSelectionModel().setSelected(event.getValue(),
+ // true);
+// noSelectionModel.setSelected(message, true);
+ toolBar.enableAllTools(true);
+ MessagePlace place = new MessagePlace(folderName + AbstractPlace.SPLITTER + message.getUid());
+ refresh();
+ pc.goTo(place);
+ }
+
+ @Override
+ public void onFailure(ServerFailure error) {
+ if (error.isFatal()) {
+ // log.log(Level.SEVERE, error.getMessage());
+ // TODO write the error message to
+ // status bar.
+ // toolBar.enableAllTools(false);
+ throw new RuntimeException(error.getMessage());
+ }
+ }
+ });
+ }
+
+ });
+
+ if (dataProvider == null) {
+ dataProvider = new MessageListDataProvider();
+ dataProvider.addDataDisplay(this);
+ }
+ refresh();
+ }
+
+
+ private String parseFolderName(final PlaceController pc) {
+ Place place = pc.getWhere();
+ if(place instanceof FolderPlace){
+ folderName= ((FolderPlace)place).getToken();
+ }else if (place instanceof MessagePlace){
+ folderName = ((MessagePlace)place).getTokenWrapper().getFolder();
+ }
+ return folderName;
}
+ Message message; // the object selected by selectionModel
public String getMessageStyle(Message row) {
return haveRead(row) ? getReadStyle() : getUnreadStyle();
@@ -700,17 +840,6 @@ public class MessagesCellTable extends D
return object.getReceivedDate();
}
}
-
- @Override
- public void onResize(){
- super.onResize();
- refresh();
- }
-
- public void refresh() {
-// redraw();
-// flush();
- }
public void setStyleBaseOnTag() {
setRowStyles(new RowStyles<Message>() {
@@ -720,6 +849,9 @@ public class MessagesCellTable extends D
}
});
}
+ public void refresh() {
+ dataProvider.refresh();
+ }
}
>>>>>>> fix some bugs related to RF, and try to use new CellView to replace gwt-incubator
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org