You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by do...@apache.org on 2013/09/12 05:33:04 UTC

svn commit: r1522218 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client: activity/WestActivity.java ui/FolderTreeViewModel.java ui/MessagesCellTable.java ui/WestView.java

Author: dongxu
Date: Thu Sep 12 03:33:03 2013
New Revision: 1522218

URL: http://svn.apache.org/r1522218
Log:
fixed issue #16
[Issue 16]click events should be attached to the CellTree so that the messages list can display at the main panel.

Modified:
    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/ui/FolderTreeViewModel.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/WestView.java

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=1522218&r1=1522217&r2=1522218&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java Thu Sep 12 03:33:03 2013
@@ -1355,10 +1355,16 @@ System.out.println("1111111"+response);
 		// MailInboxPlace(folder.getName()).with(user));
 	}
 
+<<<<<<< HEAD
 	private void showMessage(User user, ImapFolder folder, Message message, MessageDetails details) {
 		placeController.goTo(IMAPMessagePlaceProvider.get());
 >>>>>>> try to change fetch messages to use RF
 	}
+=======
+//	private void showMessage(User user, ImapFolder folder, Message message, MessageDetails details) {
+//		placeController.goTo(IMAPMessagePlaceProvider.get());
+//	}
+>>>>>>> fixed issue #16
 
 	private void showNewMessage() {
 		placeController.goTo(this.messageSendPlaceProvider.get().with(user, null, null, null, Type.NEW));
@@ -1375,7 +1381,7 @@ System.out.println("1111111"+response);
 	}
 
 	@Inject private Displayable display;
-	@Inject private Provider<IMAPMessagePlace> IMAPMessagePlaceProvider;
+//	@Inject private Provider<IMAPMessagePlace> IMAPMessagePlaceProvider;
 	@Inject private Provider<MessageSendPlace> messageSendPlaceProvider;
 	@Inject private Provider<IMAPMessagePlace> messagePlaceProvider;
 	private User user;

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderTreeViewModel.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderTreeViewModel.java?rev=1522218&r1=1522217&r2=1522218&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderTreeViewModel.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderTreeViewModel.java Thu Sep 12 03:33:03 2013
@@ -21,17 +21,18 @@ package org.apache.hupa.client.ui;
 
 import java.util.List;
 
-import org.apache.hupa.client.rf.FetchFoldersRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
 import org.apache.hupa.shared.domain.ImapFolder;
+import org.apache.hupa.shared.events.LoadMessagesEvent;
 
 import com.google.gwt.cell.client.AbstractCell;
-import com.google.gwt.cell.client.Cell;
+import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.view.client.AsyncDataProvider;
 import com.google.gwt.view.client.HasData;
-import com.google.gwt.view.client.ListDataProvider;
-import com.google.gwt.view.client.Range;
+import com.google.gwt.view.client.ProvidesKey;
+import com.google.gwt.view.client.SelectionChangeEvent;
+import com.google.gwt.view.client.SingleSelectionModel;
 import com.google.gwt.view.client.TreeViewModel;
 import com.google.inject.Inject;
 import com.google.web.bindery.requestfactory.shared.Receiver;
@@ -39,12 +40,37 @@ import com.google.web.bindery.requestfac
 public class FolderTreeViewModel implements TreeViewModel {
 
 	@Inject protected HupaRequestFactory rf;
+	@Inject protected EventBus eventBus;
+	
+	protected SingleSelectionModel<ImapFolder> selectionModel;
+	
+	protected void setSelectionModel(SingleSelectionModel<ImapFolder> selectionModel){
+		this.selectionModel = selectionModel;
+	}
 
 	/**
 	 * Get the {@link NodeInfo} that provides the children of the specified
 	 * value.
 	 */
+	@Override
 	public <T> NodeInfo<?> getNodeInfo(T value) {
+
+//		final ProvidesKey<ImapFolder> KEY_PROVIDER = new ProvidesKey<ImapFolder>() {
+//			@Override
+//			public Object getKey(ImapFolder item) {
+//				return item == null ? null : item.getFullName();
+//			}
+//		};
+//		final SingleSelectionModel<ImapFolder> selectionModel = new SingleSelectionModel<ImapFolder>(KEY_PROVIDER);
+//		selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
+//
+//			@Override
+//            public void onSelectionChange(SelectionChangeEvent event) {
+//	            ImapFolder folder = (ImapFolder)event.getSource();
+//
+//				eventBus.fireEvent(new LoadMessagesEvent(user, folder));
+//	            
+//            }});
 		return new DefaultNodeInfo<ImapFolder>(new ImapFolderListDataProvider((ImapFolder) value),
 		        new AbstractCell<ImapFolder>() {
 			        @Override
@@ -53,7 +79,7 @@ public class FolderTreeViewModel impleme
 					        sb.appendEscaped(value.getName());
 				        }
 			        }
-		        });
+		        }, selectionModel, null);
 	}
 
 	private class ImapFolderListDataProvider extends AsyncDataProvider<ImapFolder> {
@@ -67,7 +93,6 @@ public class FolderTreeViewModel impleme
 		@Override
 		public void addDataDisplay(HasData<ImapFolder> display) {
 			super.addDataDisplay(display);
-
 		}
 
 		@Override
@@ -90,6 +115,7 @@ public class FolderTreeViewModel impleme
 	 * Check if the specified value represents a leaf node. Leaf nodes cannot be
 	 * opened.
 	 */
+	@Override
 	public boolean isLeaf(Object value) {
 		if (value == null)
 			return false;

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=1522218&r1=1522217&r2=1522218&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 03:33:03 2013
@@ -570,15 +570,15 @@ public class MessagesCellTable extends D
 		});
 
 		addColumn(checkboxCol, header);
-		this.setColumnWidth(checkboxCol, 3, Unit.EM);
+		setColumnWidth(checkboxCol, 3, Unit.EM);
 		addColumn(fromCol, constants.mailTableFrom());
-		this.setColumnWidth(fromCol, 40, Unit.PCT);
+		setColumnWidth(fromCol, 40, Unit.PCT);
 		addColumn(subjectCol, constants.mailTableSubject());
-		this.setColumnWidth(subjectCol, 60, Unit.PCT);
+		setColumnWidth(subjectCol, 60, Unit.PCT);
 		addColumn(attachedCol, "Attached");// TODO i18n
-		this.setColumnWidth(attachedCol, 7, Unit.EM);
+		setColumnWidth(attachedCol, 7, Unit.EM);
 		addColumn(dateCol, constants.mailTableDate());
-		this.setColumnWidth(dateCol, 10, Unit.EM);
+		setColumnWidth(dateCol, 10, Unit.EM);
 		setRowCount(PAGE_SIZE, false);
 		setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
 		setSelectionModel(selectionModel, DefaultSelectionEventManager.<Message> createCheckboxManager(0));

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java?rev=1522218&r1=1522217&r2=1522218&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java Thu Sep 12 03:33:03 2013
@@ -96,6 +96,7 @@ import org.apache.hupa.shared.data.Messa
 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.LoadMessagesEvent;
 import org.apache.hupa.shared.events.LoginEvent;
 import org.apache.hupa.shared.events.LoginEventHandler;
 import org.apache.hupa.shared.events.LogoutEvent;
@@ -144,6 +145,7 @@ import com.google.gwt.user.client.ui.Tre
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.view.client.ProvidesKey;
+import com.google.gwt.view.client.SelectionChangeEvent;
 import com.google.gwt.view.client.SingleSelectionModel;
 import com.google.gwt.view.client.TreeViewModel;
 import com.google.inject.Inject;
@@ -189,12 +191,22 @@ public class WestView extends Composite 
     private TreeViewModel viewModel;
     
     @Inject
-    public WestView(FolderTreeViewModel viewModel, EventBus bus, PagingScrollTableRowDragController controllerProvider, HupaConstants constants, HupaMessages messages) {
+    public WestView(FolderTreeViewModel viewModel, final EventBus eventBus, PagingScrollTableRowDragController controllerProvider, HupaConstants constants, HupaMessages messages) {
     	this.viewModel = viewModel;
+    	selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
+
+			@Override
+            public void onSelectionChange(SelectionChangeEvent event) {
+	            @SuppressWarnings("unchecked")
+                SingleSelectionModel<ImapFolder> selectionModel =(SingleSelectionModel<ImapFolder>) event.getSource();
+				eventBus.fireEvent(new LoadMessagesEvent(user, selectionModel.getSelectedObject()));
+	            
+            }});
+    	viewModel.setSelectionModel(selectionModel);
         this.constants = constants;
         this.messages = messages;
         this.controller = controllerProvider;
-        this.bus = bus;
+        this.bus = eventBus;
         loader = new Loading(constants.loading());
 <<<<<<< HEAD
 <<<<<<< HEAD



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org