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

Reply via email to