Author: dongxu
Date: Thu Sep 12 03:45:32 2013
New Revision: 1522243

URL: http://svn.apache.org/r1522243
Log:
bind FolderListActivity to Singleton, otherwise it might create its view 
several times

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/mapper/MainContentActivityMapper.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/FetchFoldersServiceImpl.java
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderServiceImpl.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=1522243&r1=1522242&r2=1522243&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 03:45:32 2013
@@ -473,6 +473,19 @@ public class AppGinModule extends Abstra
                
bind(MessageListFooterActivity.Displayable.class).to(MessageListFooterView.class);
                
bind(MessageContentActivity.Displayable.class).to(MessageContentView.class);
                bind(StatusActivity.Displayable.class).to(StatusView.class);
+               
+               bind(LoginActivity.class).in(Singleton.class);
+               bind(TopBarActivity.class).in(Singleton.class);
+               bind(LogoActivity.class).in(Singleton.class);
+               bind(NavigationActivity.class).in(Singleton.class);
+               bind(ToolBarActivity.class).in(Singleton.class);
+               bind(FolderListActivity.class).in(Singleton.class);
+               bind(MessageListActivity.class).in(Singleton.class);
+               bind(MessageListFooterActivity.class).in(Singleton.class);
+               bind(MessageContentActivity.class).in(Singleton.class);
+               bind(StatusActivity.class).in(Singleton.class);
+               
+               
 
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
                bind(TopActivity.Displayable.class).to(TopView.class);
@@ -524,7 +537,7 @@ public class AppGinModule extends Abstra
                bind(IMAPMessageActivity.class).in(Singleton.class);
 
                bind(MessagesCellTable.class).in(Singleton.class);
-               bind(FoldersTreeViewModel.class);
+               bind(FoldersTreeViewModel.class).in(Singleton.class);
                
bind(CellTree.Resources.class).to(CellTree.BasicResources.class);
                // Places
                
bind(PlaceHistoryMapper.class).to(AppPlaceHistoryMapper.class).in(

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MainContentActivityMapper.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MainContentActivityMapper.java?rev=1522243&r1=1522242&r2=1522243&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MainContentActivityMapper.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MainContentActivityMapper.java
 Thu Sep 12 03:45:32 2013
@@ -52,7 +52,7 @@ public class MainContentActivityMapper i
 
        public Activity getActivity(Place place) {
                if (place instanceof MailFolderPlace) {
-                       return 
messageListActivityProvider.get().with((MailFolderPlace)place);
+//                     return 
messageListActivityProvider.get().with((MailFolderPlace)place);
                } else if (place instanceof DefaultPlace) {
                        return loginActivityProvider.get();
                } else if(place instanceof MessageSendPlace){

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=1522243&r1=1522242&r2=1522243&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 03:45:32 2013
@@ -37,34 +37,36 @@ import com.google.gwt.view.client.Single
 import com.google.gwt.view.client.TreeViewModel;
 import com.google.inject.Inject;
 import com.google.web.bindery.requestfactory.shared.Receiver;
+import com.google.web.bindery.requestfactory.shared.ServerFailure;
 
 public class FoldersTreeViewModel implements TreeViewModel {
 
        protected User user;
        @Inject protected HupaRequestFactory rf;
        @Inject protected EventBus eventBus;
-       
-       
-       public FoldersTreeViewModel(){
 
-               selectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
-                       @SuppressWarnings("unchecked")
-                       @Override
-                       public void onSelectionChange(SelectionChangeEvent 
event) {
-                               SingleSelectionModel<ImapFolder> selectionModel 
= (SingleSelectionModel<ImapFolder>) event.getSource();
-                               eventBus.fireEvent(new LoadMessagesEvent(user, 
selectionModel.getSelectedObject()));
-                       }
-               });
-       }
+       public FoldersTreeViewModel() {
 
+               selectionModel
+                               .addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
+                                       @SuppressWarnings("unchecked")
+                                       @Override
+                                       public void 
onSelectionChange(SelectionChangeEvent event) {
+                                               
SingleSelectionModel<ImapFolder> selectionModel = 
(SingleSelectionModel<ImapFolder>) event
+                                                               .getSource();
+                                               eventBus.fireEvent(new 
LoadMessagesEvent(user,
+                                                               
selectionModel.getSelectedObject()));
+                                       }
+                               });
+       }
 
        private final SingleSelectionModel<ImapFolder> selectionModel = new 
SingleSelectionModel<ImapFolder>(
-               new ProvidesKey<ImapFolder>() {
-                       @Override
-                       public Object getKey(ImapFolder item) {
-                               return item == null ? null : item.getFullName();
-                       }
-               });
+                       new ProvidesKey<ImapFolder>() {
+                               @Override
+                               public Object getKey(ImapFolder item) {
+                                       return item == null ? null : 
item.getFullName();
+                               }
+                       });
 
        /**
         * Get the {@link NodeInfo} that provides the children of the specified
@@ -72,18 +74,21 @@ public class FoldersTreeViewModel implem
         */
        @Override
        public <T> NodeInfo<?> getNodeInfo(T value) {
-               return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider((ImapFolder) value),
-                       new AbstractCell<ImapFolder>() {
-                               @Override
-                               public void render(Context context, ImapFolder 
value, SafeHtmlBuilder sb) {
-                                       if (value != null) {
-                                               
sb.appendEscaped(value.getName());
-                                       }
-                               }
-                       }, selectionModel, null);
+               System.out.println("-=-=-=-=-"+value);
+               return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider(
+                               (ImapFolder) value), new 
AbstractCell<ImapFolder>() {
+                       @Override
+                       public void render(Context context, ImapFolder value,
+                                       SafeHtmlBuilder sb) {
+                               if (value != null) {
+                                       sb.appendEscaped(value.getName());
+                               }
+                       }
+               }, selectionModel, null);
        }
 
-       private class ImapFolderListDataProvider extends 
AsyncDataProvider<ImapFolder> {
+       private class ImapFolderListDataProvider extends
+                       AsyncDataProvider<ImapFolder> {
 
                public ImapFolderListDataProvider(ImapFolder folder) {
                        this.folder = folder;
@@ -91,18 +96,33 @@ public class FoldersTreeViewModel implem
 
                ImapFolder folder;
 
+        @Override
+        public void addDataDisplay(HasData<ImapFolder> display) {
+                super.addDataDisplay(display);
+        }
+
                @Override
                protected void onRangeChanged(HasData<ImapFolder> display) {
-                       System.out.println(display.getVisibleItemCount() + 
"---" 
+display.getRowCount()+"="+display.getVisibleItems()+"="+display.getVisibleRange());
-                       rf.fetchFoldersRequest().fetch(folder).fire(new 
Receiver<List<ImapFolder>>() {
-                               @Override
-                               public void onSuccess(List<ImapFolder> 
response) {
-                                       if (response == null || response.size() 
== 0) {
-                                               updateRowCount(-1, true);
-                                       } else
-                                               updateRowData(0, response);
-                               }
-                       });
+                       System.out.println("display -"+display);
+                       rf.fetchFoldersRequest().fetch(folder)
+                                       .fire(new Receiver<List<ImapFolder>>() {
+                                               @Override
+                                               public void 
onSuccess(List<ImapFolder> response) {
+                                                       
System.out.println("list of folders-"+response);
+                                                       if (response == null || 
response.size() == 0) {
+                                                               
updateRowCount(-1, true);
+                                                       } else {
+                                                               
updateRowData(0, response);
+                                                       }
+                                               }
+                                               @Override
+                                               public void 
onFailure(ServerFailure error) {
+                                                       if (error.isFatal()) {
+                                                               throw new 
RuntimeException(error.getMessage());
+                                                       }
+                                               }
+
+                                       });
 
                }
 

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=1522243&r1=1522242&r2=1522243&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 03:45:32 2013
@@ -167,20 +167,29 @@ public class FetchFoldersServiceImpl ext
 =======
         * @param folder Current folder
         * @return imapFolder Created IMAPFolder
+        * @throws HupaException 
         * @throws Exception If an error occurs
         * @throws MessagingException If an error occurs
         */
+<<<<<<< HEAD
        private ImapFolder createImapFolder(Folder folder) {
 >>>>>>> Fix issue #15.
+=======
+       private ImapFolder createImapFolder(Folder folder) throws HupaException 
{
+>>>>>>> bind FolderListActivity to Singleton, otherwise it might create its 
view several times
                String fullName = folder.getFullName();
                String delimiter;
                ImapFolder iFolder = null;
                try {
 <<<<<<< HEAD
+<<<<<<< HEAD
                        System.out.println("Creating folder2: " + fullName + " 
for user: " + this.getUser());
 =======
                        System.out.println("Creating folder: " + fullName + " 
for user: ");
 >>>>>>> Fix issue #15.
+=======
+                       System.out.println("Creating folder2: " + fullName + " 
for user: " + this.getUser());
+>>>>>>> bind FolderListActivity to Singleton, otherwise it might create its 
view several times
                        delimiter = String.valueOf(folder.getSeparator());
                        iFolder = new ImapFolderImpl(fullName);
                        iFolder.setDelimiter(delimiter);

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderServiceImpl.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderServiceImpl.java?rev=1522243&r1=1522242&r2=1522243&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderServiceImpl.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderServiceImpl.java
 Thu Sep 12 03:45:32 2013
@@ -97,6 +97,7 @@ public class ImapFolderServiceImpl exten
                ImapFolder iFolder = null;
 
                try {
+<<<<<<< HEAD
                        delimiter = String.valueOf(folder.getSeparator());
                        iFolder = new ImapFolderImpl(fullName);
                        iFolder.setDelimiter(delimiter);
@@ -230,6 +231,8 @@ public class ImapFolderServiceImpl exten
 
                try {
                        System.out.println("Creating folder: " + fullName + " 
for user: ");
+=======
+>>>>>>> bind FolderListActivity to Singleton, otherwise it might create its 
view several times
                        delimiter = String.valueOf(folder.getSeparator());
                        iFolder = new ImapFolderImpl(fullName);
                        iFolder.setDelimiter(delimiter);



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