Author: dongxu
Date: Thu Sep 12 04:32:57 2013
New Revision: 1522360

URL: http://svn.apache.org/r1522360
Log:
pull all folders for label settings

Modified:
    
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/rf/FetchFoldersRequest.java
    
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/LabelListView.java
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersService.java
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersServiceImpl.java
    
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java

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=1522360&r1=1522359&r2=1522360&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:32:57 2013
@@ -353,6 +353,7 @@ public class AppGinModule extends Abstra
                
bind(ComposeToolBarActivity.Displayable.class).to(ComposeToolBarView.class);
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
                bind(ComposeActivity.Displayable.class).to(ComposeView.class);
                
bind(SearchBoxActivity.Displayable.class).to(SearchBoxView.class);
                
@@ -369,6 +370,9 @@ public class AppGinModule extends Abstra
 =======
 //             
bind(ComposeActivity.Displayable.class).to(ComposeView.class).in(Singleton.class);
 >>>>>>> fixed issue#62
+=======
+               bind(ComposeActivity.Displayable.class).to(ComposeView.class);
+>>>>>>> pull all folders for label settings
                
                
bind(LabelListActivity.Displayable.class).to(LabelListView.class).in(Singleton.class);
 >>>>>>> make label settings prototype

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/FetchFoldersRequest.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/FetchFoldersRequest.java?rev=1522360&r1=1522359&r2=1522360&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/FetchFoldersRequest.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/FetchFoldersRequest.java
 Thu Sep 12 04:32:57 2013
@@ -32,8 +32,12 @@ import com.google.web.bindery.requestfac
 @Service(value = FetchFoldersService.class, locator = 
IocRfServiceLocator.class)
 public interface FetchFoldersRequest extends RequestContext {
 <<<<<<< HEAD
+<<<<<<< HEAD
        Request<List<ImapFolder>> fetch(ImapFolder imapFolder, Boolean 
recursive);
 =======
        Request<List<ImapFolder>> fetch(ImapFolder imapFolder);
 >>>>>>> Fix issue #15.
+=======
+       Request<List<ImapFolder>> fetch(ImapFolder imapFolder, Boolean 
recursive);
+>>>>>>> pull all folders for label settings
 }

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=1522360&r1=1522359&r2=1522360&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:32:57 2013
@@ -97,7 +97,7 @@ public class FoldersTreeViewModel implem
         */
        @Override
        public <T> NodeInfo<?> getNodeInfo(T value) {
-               return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider((ImapFolder) value), new FolderCell(
+               return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider(rf, (ImapFolder) value), new FolderCell(
                                ClickEvent.getType().getName()), 
selectionModel, null);
        }
 
@@ -158,11 +158,13 @@ public class FoldersTreeViewModel implem
                }
        }
 
-       class ImapFolderListDataProvider extends AsyncDataProvider<ImapFolder> {
+       public class ImapFolderListDataProvider extends 
AsyncDataProvider<ImapFolder> {
 
+               private HupaRequestFactory rf;
                private ImapFolder folder;
 
-               public ImapFolderListDataProvider(ImapFolder folder) {
+               public ImapFolderListDataProvider(HupaRequestFactory rf, 
ImapFolder folder) {
+                       this.rf = rf;
                        this.folder = folder;
                }
 
@@ -173,7 +175,7 @@ public class FoldersTreeViewModel implem
 
                @Override
                protected void onRangeChanged(HasData<ImapFolder> display) {
-                       rf.fetchFoldersRequest().fetch(folder).fire(new 
Receiver<List<ImapFolder>>() {
+                       rf.fetchFoldersRequest().fetch(folder, 
Boolean.FALSE).fire(new Receiver<List<ImapFolder>>() {
                                @Override
                                public void onSuccess(List<ImapFolder> 
response) {
                                        if (response == null || response.size() 
== 0) {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java?rev=1522360&r1=1522359&r2=1522360&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java
 Thu Sep 12 04:32:57 2013
@@ -20,6 +20,7 @@
 package org.apache.hupa.client.ui;
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 import java.util.ArrayList;
 import java.util.List;
 
@@ -181,52 +182,90 @@ public class LabelListView extends Compo
        interface LabelListUiBinder extends UiBinder<DockLayoutPanel, 
LabelListView> {
 =======
 import java.util.Arrays;
+=======
+import java.util.ArrayList;
+>>>>>>> pull all folders for label settings
 import java.util.List;
 
 import org.apache.hupa.client.activity.LabelListActivity;
+import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.shared.domain.ImapFolder;
 
 import com.google.gwt.cell.client.TextCell;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.cellview.client.CellList;
-import 
com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
 import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HTMLPanel;
 import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.view.client.SelectionChangeEvent;
-import com.google.gwt.view.client.SingleSelectionModel;
+import com.google.gwt.view.client.AsyncDataProvider;
+import com.google.gwt.view.client.HasData;
+import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
+import com.google.web.bindery.requestfactory.shared.ServerFailure;
 
 public class LabelListView extends Composite implements 
LabelListActivity.Displayable {
 
        @UiField SimplePanel thisView;
 
-       public LabelListView() {
+       @Inject
+       public LabelListView(HupaRequestFactory rf) {
                initWidget(binder.createAndBindUi(this));
-               thisView.setWidget(createTabList());
+               ImapLabelListDataProvider data = new 
ImapLabelListDataProvider(rf);
+               CellList<String> cellList = new CellList<String>(new 
TextCell());
+               data.addDataDisplay(cellList);
+               thisView.setWidget(cellList);
        }
 
-       private static final List<String> TABS = Arrays.asList("Mock-Inbox", 
"Mock-Junk", "Mock-Draft", "Mock-Delete");
+       public class ImapLabelListDataProvider extends 
AsyncDataProvider<String> {
 
-       private CellList<String> createTabList() {
-               TextCell textCell = new TextCell();
-               CellList<String> cellList = new CellList<String>(textCell);
-               
cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
-               final SingleSelectionModel<String> selectionModel = new 
SingleSelectionModel<String>();
-               cellList.setSelectionModel(selectionModel);
-               selectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
-                       public void onSelectionChange(SelectionChangeEvent 
event) {
-                               String selected = 
selectionModel.getSelectedObject();
-                               if (selected != null) {
-                                       // Window.alert("You selected: " + 
selected);
+               private HupaRequestFactory rf;
+
+               public ImapLabelListDataProvider(HupaRequestFactory rf) {
+                       this.rf = rf;
+               }
+
+               @Override
+               public void addDataDisplay(HasData<String> display) {
+                       super.addDataDisplay(display);
+               }
+
+               @Override
+               protected void onRangeChanged(HasData<String> display) {
+                       rf.fetchFoldersRequest().fetch(null, 
Boolean.TRUE).fire(new Receiver<List<ImapFolder>>() {
+                               @Override
+                               public void onSuccess(List<ImapFolder> 
response) {
+                                       if (response == null || response.size() 
== 0) {
+                                               updateRowCount(-1, true);
+                                       } else {
+                                               List<String> fn = new 
ArrayList<String>();
+                                               for (ImapFolder a : response) {
+                                                       fillCellList(fn, a);
+                                               }
+                                               updateRowData(0, fn);
+                                       }
                                }
-                       }
-               });
-               cellList.setRowCount(TABS.size(), true);
 
-               // Push the data into the widget.
-               cellList.setRowData(0, TABS);
-               return cellList;
+                               private void fillCellList(List<String> fn, 
ImapFolder a) {
+                                       fn.add(a.getFullName());
+                                       if(a.getHasChildren()){
+                                               for(ImapFolder subFolder : 
a.getChildren()){
+                                                       fillCellList(fn, 
subFolder);
+                                               }
+                                       }
+                               }
+
+                               @Override
+                               public void onFailure(ServerFailure error) {
+                                       if (error.isFatal()) {
+                                               throw new 
RuntimeException(error.getMessage());
+                                       }
+                               }
+
+                       });
+
+               }
+
        }
 
        interface LabelListUiBinder extends UiBinder<SimplePanel, 
LabelListView> {

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersService.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersService.java?rev=1522360&r1=1522359&r2=1522360&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersService.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersService.java
 Thu Sep 12 04:32:57 2013
@@ -39,6 +39,10 @@ public interface FetchFoldersService {
 import org.apache.hupa.shared.exception.HupaException;
 
 public interface FetchFoldersService {
+<<<<<<< HEAD
        List<ImapFolder> fetch(ImapFolder folder) throws MessagingException, 
HupaException;
 >>>>>>> re-add server unit tests
+=======
+       List<ImapFolder> fetch(ImapFolder folder, Boolean recursive) throws 
MessagingException, HupaException;
+>>>>>>> pull all folders for label settings
 }

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersServiceImpl.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersServiceImpl.java?rev=1522360&r1=1522359&r2=1522360&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersServiceImpl.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersServiceImpl.java
 Thu Sep 12 04:32:57 2013
@@ -29,6 +29,9 @@ import org.apache.hupa.shared.data.ImapF
 import org.apache.hupa.shared.domain.ImapFolder;
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> pull all folders for label settings
 import org.apache.hupa.shared.domain.User;
 import org.apache.hupa.shared.exception.HupaException;
 =======
@@ -44,16 +47,22 @@ public class FetchFoldersServiceImpl ext
        @Override
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> pull all folders for label settings
        public List<ImapFolder> fetch(ImapFolder imapFolder, Boolean recursive) 
throws MessagingException, HupaException {
                if(recursive){
                        return this.pullAll();
                }
+<<<<<<< HEAD
 =======
        public List<ImapFolder> fetch(ImapFolder imapFolder) throws 
MessagingException {
 >>>>>>> Fix issue #15.
 =======
        public List<ImapFolder> fetch(ImapFolder imapFolder) throws 
MessagingException, HupaException{
 >>>>>>> re-add server unit tests
+=======
+>>>>>>> pull all folders for label settings
                try {
                        Folder folder = null;
                        IMAPStore store = cache.get(getUser());
@@ -74,6 +83,9 @@ public class FetchFoldersServiceImpl ext
                }
        }
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> pull all folders for label settings
        
        public List<ImapFolder> pullAll() throws MessagingException, 
HupaException {
                User user = getUser();
@@ -147,13 +159,17 @@ public class FetchFoldersServiceImpl ext
 
                return iFolder;
        }
+<<<<<<< HEAD
 =======
 >>>>>>> Fix issue #15.
+=======
+>>>>>>> pull all folders for label settings
 
        /**
         * Create a new IMAPFolder from the given Folder
         * 
 <<<<<<< HEAD
+<<<<<<< HEAD
         * @param folder
         *            Current folder
         * @return imapFolder Created IMAPFolder
@@ -166,10 +182,16 @@ public class FetchFoldersServiceImpl ext
        private ImapFolder createImapFolder(Folder folder) throws HupaException 
{
 =======
         * @param folder Current folder
+=======
+        * @param folder
+        *            Current folder
+>>>>>>> pull all folders for label settings
         * @return imapFolder Created IMAPFolder
-        * @throws HupaException 
-        * @throws Exception If an error occurs
-        * @throws MessagingException If an error occurs
+        * @throws HupaException
+        * @throws Exception
+        *             If an error occurs
+        * @throws MessagingException
+        *             If an error occurs
         */
 <<<<<<< HEAD
        private ImapFolder createImapFolder(Folder folder) {
@@ -199,10 +221,14 @@ public class FetchFoldersServiceImpl ext
                        iFolder.setSubscribed(folder.isSubscribed());
                        
iFolder.setUnseenMessageCount(folder.getUnreadMessageCount());
 <<<<<<< HEAD
+<<<<<<< HEAD
                        if (folder.list().length != 0) {
 =======
                        if(folder.list().length != 0){
 >>>>>>> Fix issue #15.
+=======
+                       if (folder.list().length != 0) {
+>>>>>>> pull all folders for label settings
                                iFolder.setHasChildren(true);
                        }
                } catch (MessagingException e) {

Modified: 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java?rev=1522360&r1=1522359&r2=1522360&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java
 (original)
+++ 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/service/FetchFolderServiceTest.java
 Thu Sep 12 04:32:57 2013
@@ -41,10 +41,14 @@ public class FetchFolderServiceTest exte
                httpSession.removeAttribute(SConsts.USER_SESS_ATTR);
                try {
 <<<<<<< HEAD
+<<<<<<< HEAD
                        fetchFoldersService.fetch(new ImapFolderImpl(), false);
 =======
                        fetchFoldersService.fetch(new ImapFolderImpl());
 >>>>>>> re-add server unit tests
+=======
+                       fetchFoldersService.fetch(new ImapFolderImpl(), false);
+>>>>>>> pull all folders for label settings
                        fail("Invalid session");
                } catch (InvalidSessionException e) {
                } catch (Exception e) {
@@ -57,10 +61,14 @@ public class FetchFolderServiceTest exte
                httpSession.setAttribute(SConsts.USER_SESS_ATTR, testUser);
                try {
 <<<<<<< HEAD
+<<<<<<< HEAD
                        List<ImapFolder> folders = 
fetchFoldersService.fetch(null, false);
 =======
                        List<ImapFolder> folders = 
fetchFoldersService.fetch(null);
 >>>>>>> re-add server unit tests
+=======
+                       List<ImapFolder> folders = 
fetchFoldersService.fetch(null, false);
+>>>>>>> pull all folders for label settings
                        assertTrue(folders.isEmpty());
                } catch (Exception e) {
                        e.printStackTrace();



---------------------------------------------------------------------
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