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