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:45:32 UTC

svn commit: r1522243 - in /james/hupa/trunk: client/src/main/java/org/apache/hupa/client/ioc/ client/src/main/java/org/apache/hupa/client/mapper/ client/src/main/java/org/apache/hupa/client/ui/ server/src/main/java/org/apache/hupa/server/service/

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