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:41:52 UTC

svn commit: r1522377 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client: activity/MessageListActivity.java ui/MessageListView.java ui/MessagesCellTable.java ui/ToolBarView.java

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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org