Author: dongxu Date: Thu Sep 12 04:41:52 2013 New Revision: 1522377 URL: http://svn.apache.org/r1522377 Log: make folders list view refresh automatically according to the actual unread message
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/ui/MessageListView.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.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=1522377&r1=1522376&r2=1522377&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:41:52 2013 @@ -296,6 +296,7 @@ import org.apache.hupa.shared.domain.Use import org.apache.hupa.shared.events.DeleteClickEvent; import org.apache.hupa.shared.events.DeleteClickEventHandler; import org.apache.hupa.shared.events.ExpandMessageEvent; +import org.apache.hupa.shared.events.RefreshUnreadEvent; import com.google.gwt.event.shared.EventBus; import com.google.gwt.user.client.ui.AcceptsOneWidget; @@ -321,48 +322,54 @@ public class MessageListActivity extends container.setWidget(display.asWidget()); bindTo(eventBus); display.refresh(); -// 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()); -// } -// } -// }); -// } -// } -// -// })); + 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().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()); + pc.goTo(place); + display.refresh(); + eventBus.fireEvent(new RefreshUnreadEvent()); + } + + @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 boolean hasClickedButFirstCol(CellPreviewEvent<Message> event) { + return "click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn(); } private void bindTo(EventBus eventBus) { @@ -397,7 +404,7 @@ 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(); @@ -431,7 +438,8 @@ public class MessageListActivity extends @Override public void onSuccess(DeleteMessageResult response) { antiSelectMessages(display.getSelectedMessages()); -// refresh(); + display.refresh(); + eventBus.fireEvent(new RefreshUnreadEvent()); } }); } 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=1522377&r1=1522376&r2=1522377&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:41:52 2013 @@ -261,7 +261,7 @@ public class MessageListView extends Com List<Long> selecteds = new ArrayList<Long>(); MultiSelectionModel<? super Message> selectionModel = (MultiSelectionModel<? super Message>) grid .getSelectionModel(); - NoSelectionModel<? super Message> noSelectionModel = (NoSelectionModel<? super Message>)grid.getSelectionModel(); +// NoSelectionModel<? super Message> noSelectionModel = (NoSelectionModel<? super Message>)grid.getSelectionModel(); selectionModel.getSelectedSet(); for (Message msg : getSelectedMessages()) { 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=1522377&r1=1522376&r2=1522377&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:41:52 2013 @@ -585,7 +585,7 @@ 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); +// public final NoSelectionModel<Message> noSelectionModel = new NoSelectionModel<Message>(KEY_PROVIDER); PlaceController pc; HupaRequestFactory rf; @@ -700,49 +700,49 @@ public class MessagesCellTable extends D // setSelectionModel(selectionModel, // DefaultSelectionEventManager.<Message> createCheckboxManager(0)); - setSelectionModel(noSelectionModel, DefaultSelectionEventManager.<Message> createBlacklistManager(0)); + setSelectionModel(selectionModel, 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); - ToolBarView.Parameters p = new ToolBarView.Parameters(null, folderName, message, response - .getMessageDetails()); - toolBar.setParameters(p); - MessagePlace place = new MessagePlace(folderName + AbstractPlace.SPLITTER + message.getUid()); - refresh(); - eventBus.fireEvent(new RefreshUnreadEvent()); - 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()); - } - } - }); - } - - }); +// selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { +// @Override +// public void onSelectionChange(SelectionChangeEvent event) { +// message = eventselectionModel.get; +// 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); +// ToolBarView.Parameters p = new ToolBarView.Parameters(null, folderName, message, response +// .getMessageDetails()); +// toolBar.setParameters(p); +// MessagePlace place = new MessagePlace(folderName + AbstractPlace.SPLITTER + message.getUid()); +// refresh(); +// eventBus.fireEvent(new RefreshUnreadEvent()); +// 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(); Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java?rev=1522377&r1=1522376&r2=1522377&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java Thu Sep 12 04:41:52 2013 @@ -682,14 +682,14 @@ public class ToolBarView extends Composi forwardGroup.addStyleName(style.disabledButton()); replyAllTip.addStyleName(style.disabledButton()); forwardTip.addStyleName(style.disabledButton()); - if(replyReg != null){ - replyReg.removeHandler(); - replyAllReg.removeHandler(); - forwardReg.removeHandler(); - replyReg = null; - replyAllReg = null; - forwardReg = null; - } +// if(replyReg != null){ +// replyReg.removeHandler(); +// replyAllReg.removeHandler(); +// forwardReg.removeHandler(); +// replyReg = null; +// replyAllReg = null; +// forwardReg = null; +// } } private void removeSendingDisableds() { @@ -699,14 +699,14 @@ public class ToolBarView extends Composi replyAllTip.removeStyleName(style.disabledButton()); forwardTip.removeStyleName(style.disabledButton()); - if(replyReg != null){ - replyReg.removeHandler(); - replyAllReg.removeHandler(); - forwardReg.removeHandler(); - } - replyReg = reply.addClickHandler(replyHandler); - replyAllReg = replyAll.addClickHandler(replyAllHandler); - forwardReg = forward.addClickHandler(forwardHandler); +// if(replyReg != null){ +// replyReg.removeHandler(); +// replyAllReg.removeHandler(); +// forwardReg.removeHandler(); +// } +// replyReg = reply.addClickHandler(replyHandler); +// replyAllReg = replyAll.addClickHandler(replyAllHandler); +// forwardReg = forward.addClickHandler(forwardHandler); } @@ -716,12 +716,12 @@ public class ToolBarView extends Composi delete.addStyleName(style.disabledButton()); mark.addStyleName(style.disabledButton()); - if(deleteReg != null){ - deleteReg.removeHandler(); - markReg.removeHandler(); - deleteReg = null; - markReg = null; - } +// if(deleteReg != null){ +// deleteReg.removeHandler(); +// markReg.removeHandler(); +// deleteReg = null; +// markReg = null; +// } } private void removeDealingDisableds() { @@ -737,6 +737,7 @@ public class ToolBarView extends Composi ======= +<<<<<<< HEAD if(markReg != null){ deleteReg.removeHandler(); markReg.removeHandler(); @@ -745,6 +746,14 @@ public class ToolBarView extends Composi markReg = mark.addClickHandler(markHandler); deleteReg = delete.addClickHandler(deleteHandler); >>>>>>> fixed issue#57 - really disable the tools in toolbar +======= +// if(markReg != null){ +// deleteReg.removeHandler(); +// markReg.removeHandler(); +// } +// markReg = mark.addClickHandler(markHandler); +// deleteReg = delete.addClickHandler(deleteHandler); +>>>>>>> make folders list view refresh automatically according to the actual unread message } interface ToolBarUiBinder extends UiBinder<FlowPanel, ToolBarView> { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org