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 06:18:58 UTC

svn commit: r1522329 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client: ./ activity/ ioc/ mapper/ place/ ui/

Author: dongxu
Date: Thu Sep 12 04:18:58 2013
New Revision: 1522329

URL: http://svn.apache.org/r1522329
Log:
fixed issue#46 and issue#32

Modified:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java
    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/TopBarActivityMapper.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java Thu Sep 12 04:18:58 2013
@@ -69,6 +69,8 @@ import org.apache.hupa.client.rf.HupaReq
 import org.apache.hupa.client.ui.HupaLayoutable;
 import org.apache.hupa.client.ui.LoginLayoutable;
 import org.apache.hupa.client.ui.LoginView;
+import org.apache.hupa.shared.domain.User;
+import org.apache.hupa.shared.events.LoginEvent;
 
 >>>>>>> move new theme ui from experiment to hupa evo
 import com.google.gwt.dom.client.StyleInjector;
@@ -113,14 +115,16 @@ import com.google.web.bindery.requestfac
 
 public class HupaController {
 
-	@Inject private PlaceHistoryHandler placeHistoryHandler;
+	private PlaceController placeController;
+	private PlaceHistoryHandler placeHistoryHandler;
 	@Inject private HupaLayoutable hupaLayout;
-	@Inject private PlaceController placeController;
 	@Inject private HupaRequestFactory requestFactory;
 	@Inject private LoginLayoutable loginLayout;
+	private EventBus eventBus;
 
 	@Inject
 <<<<<<< HEAD
+<<<<<<< HEAD
 	public HupaController(EventBus eventBus) {
 >>>>>>> move new theme ui from experiment to hupa evo
 =======
@@ -131,6 +135,15 @@ public class HupaController {
 =======
 			ActivityManagerInitializer initializeActivityManagerByGin) {
 >>>>>>> use GinFactoryModuleBuilder to inject multiple displayable instances of some activities
+=======
+	public HupaController(PlaceController placeController,
+			PlaceHistoryHandler placeHistoryHandler,
+			EventBus eventBus, 
+			ActivityManagerInitializer initializeActivityManagerByGin) {
+		this.placeController = placeController;
+		this.placeHistoryHandler = placeHistoryHandler;
+		this.eventBus = eventBus;
+>>>>>>> fixed issue#46 and issue#32
 		eventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceChangHandler());
 	}
 
@@ -268,7 +281,6 @@ public class HupaController {
 =======
 >>>>>>> cope with issue #36, the default place and and the mail folder place, we would always come up with the default place whenever giving a empty string token
 		placeHistoryHandler.handleCurrentHistory();
-		checkSession();
 	}
 
 	private void bindCss() {
@@ -281,6 +293,7 @@ public class HupaController {
 		@Override
 		public void onPlaceChange(PlaceChangeEvent event) {
 			adjustLayout(event);
+			checkSession();
 		}
 	}
 
@@ -298,15 +311,16 @@ public class HupaController {
 =======
 	private void checkSession() {
 		CheckSessionRequest checkSession = requestFactory.sessionRequest();
-		checkSession.isValid().fire(new Receiver<Boolean>() {
+		checkSession.getUser().fire(new Receiver<User>() {
 			@Override
-			public void onSuccess(Boolean sessionValid) {
-				if (!sessionValid) {
+			public void onSuccess(User user) {
+				if (user == null) {
 					RootLayoutPanel.get().clear();
 					RootLayoutPanel.get().add(loginLayout.get());
 				} else {
 					RootLayoutPanel.get().clear();
 					RootLayoutPanel.get().add(hupaLayout.get());
+                    eventBus.fireEvent(new LoginEvent(user));
 				}
 			}
 
@@ -316,6 +330,24 @@ public class HupaController {
 				RootLayoutPanel.get().add(loginLayout.get());
 			}
 		});
+//		checkSession.isValid().fire(new Receiver<Boolean>() {
+//			@Override
+//			public void onSuccess(Boolean sessionValid) {
+//				if (!sessionValid) {
+//					RootLayoutPanel.get().clear();
+//					RootLayoutPanel.get().add(loginLayout.get());
+//				} else {
+//					RootLayoutPanel.get().clear();
+//					RootLayoutPanel.get().add(hupaLayout.get());
+//				}
+//			}
+//
+//			@Override
+//			public void onFailure(ServerFailure error) {
+//				RootLayoutPanel.get().clear();
+//				RootLayoutPanel.get().add(loginLayout.get());
+//			}
+//		});
 	}
 >>>>>>> integrate them as a whole one - first: make the default place work
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java Thu Sep 12 04:18:58 2013
@@ -111,6 +111,10 @@ public abstract class AppBaseActivity ex
 		registrations.add(handlerRegistration);
 	}
 
+	public String mayStop() {
+		return null;
+	}
+
 	public void onCancel() {
 	}
 >>>>>>> scrub code

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java Thu Sep 12 04:18:58 2013
@@ -67,6 +67,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.hupa.client.place.ComposePlace;
+import org.apache.hupa.client.place.DefaultPlace;
 import org.apache.hupa.client.rf.SendForwardMessageRequest;
 import org.apache.hupa.client.rf.SendMessageRequest;
 import org.apache.hupa.client.rf.SendReplyMessageRequest;
@@ -135,6 +136,7 @@ public class ComposeActivity extends App
 	private List<MessageAttachment> attachments = new ArrayList<MessageAttachment>();
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 	private Type type = Type.NEW;
 <<<<<<< HEAD
 >>>>>>> make send text mail work excellently
@@ -146,6 +148,9 @@ public class ComposeActivity extends App
 =======
 	static private User user;
 >>>>>>> beautify the multiuploader
+=======
+	private User user;
+>>>>>>> fixed issue#46 and issue#32
 	private ComposePlace place;
 >>>>>>> coping with reply and forward sending message
 
@@ -412,6 +417,24 @@ public class ComposeActivity extends App
 		bindTo(eventBus);
 		fillHeader();
 	}
+	
+	@Override
+	public String mayStop(){
+		super.mayStop();
+		return null;
+//		return "Do you want to leave this page?";
+	}
+	
+	@Override
+	public void onStop(){
+		super.onStop();
+//		placeController.goTo(new DefaultPlace("@"));
+	}
+	
+	@Override
+	public void onCancel(){
+		
+	}
 
 	private void fillHeader() {
 		if (place == null)

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java Thu Sep 12 04:18:58 2013
@@ -485,7 +485,8 @@ public class LoginActivity extends Abstr
 			public void onSuccess(User response) {
 				RootLayoutPanel.get().clear();
 				RootLayoutPanel.get().add(hupaLayout.get());
-				placeController.goTo(new MailFolderPlace(response.getSettings().getDraftsFolderName()));
+//				placeController.goTo(new MailFolderPlace(response.getSettings().getDraftsFolderName()));
+				placeController.goTo(new MailFolderPlace(response));
 				eventBus.fireEvent(new LoginEvent(response));
 				display.setLoading(false);
 			}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java Thu Sep 12 04:18:58 2013
@@ -168,26 +168,45 @@ public class TopBarActivity extends AppB
 
 	@Override
 	public void start(AcceptsOneWidget container, EventBus eventBus) {
-		eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
-			public void onLogin(LoginEvent event) {
-				user = event.getUser();
-			}
-		});
 		container.setWidget(display.asWidget());
 		bindTo(eventBus);
-		if (user != null && !isOccupied()) {
-			display.getUserLabel().add(new HTML(user.getName()));
+		if (isNotOccupied()) {
+			try {
+				checkSessionUser();
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
 		}
+
 	}
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 	@Inject private Displayable display;
 	
 	public interface Displayable extends WidgetDisplayable {}
 >>>>>>> integrate all of the views to their corresponding activities and mappers
 =======
+=======
+	private void checkSessionUser() {
+		CheckSessionRequest checkSession = requestFactory.sessionRequest();
+		checkSession.getUser().fire(new Receiver<User>() {
+			@Override
+			public void onSuccess(User user) {
+				if (user != null) {
+					display.getUserLabel().add(new HTML(user.getName()));
+					eventBus.fireEvent(new LoginEvent(user));
+				}
+			}
+		});
+	}
+>>>>>>> fixed issue#46 and issue#32
 	private void bindTo(EventBus eventBus) {
-
+		eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+			public void onLogin(LoginEvent event) {
+				user = event.getUser();
+			}
+		});
 		registerHandler(display.getLogoutClick().addClickHandler(new ClickHandler() {
 			public void onClick(ClickEvent event) {
 				doLogout();
@@ -217,13 +236,13 @@ public class TopBarActivity extends AppB
 		}
 	}
 
-	private boolean isOccupied() {
+	private boolean isNotOccupied() {
 		return display.getUserLabel().getWidgetCount() < 1;
 	}
 
 	public interface Displayable extends WidgetDisplayable {
 		HasClickHandlers getLogoutClick();
-
+		void showUserName(String userName);
 		HTMLPanel getUserLabel();
 	}
 >>>>>>> add logout support

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=1522329&r1=1522328&r2=1522329&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:18:58 2013
@@ -162,6 +162,7 @@ import org.apache.hupa.client.mapper.App
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.mapper.CachingTopActivityMapper;
 <<<<<<< HEAD
 <<<<<<< HEAD
@@ -213,6 +214,9 @@ import org.apache.hupa.client.mapper.Com
 >>>>>>> make compose panel managed by activity manager, there is a problem here that whether the hidden view will be lazy loaded regarding the code split mechnism
 =======
 =======
+=======
+import org.apache.hupa.client.mapper.CachingTopBarActivityMapper;
+>>>>>>> fixed issue#46 and issue#32
 import org.apache.hupa.client.mapper.ComposeActivityMapper;
 >>>>>>> make send text mail work excellently
 import org.apache.hupa.client.mapper.ComposeToolBarActivityMapper;
@@ -326,6 +330,7 @@ public class AppGinModule extends Abstra
 		// Activities
 		bind(LoginActivity.Displayable.class).to(LoginView.class);
 <<<<<<< HEAD
+<<<<<<< HEAD
 		bind(TopBarActivity.Displayable.class).to(TopBarView.class).in(Singleton.class);
 		bind(LogoActivity.Displayable.class).to(LogoView.class).in(Singleton.class);
 		bind(NotificationActivity.Displayable.class).to(NotificationView.class).in(Singleton.class);
@@ -501,6 +506,10 @@ public class AppGinModule extends Abstra
 =======
 		bind(TopBarActivity.Displayable.class).to(TopBarView.class);
 		bind(LogoActivity.Displayable.class).to(LogoView.class);
+=======
+		bind(TopBarActivity.Displayable.class).to(TopBarView.class).in(Singleton.class);
+		bind(LogoActivity.Displayable.class).to(LogoView.class).in(Singleton.class);
+>>>>>>> fixed issue#46 and issue#32
 		bind(NavigationActivity.Displayable.class).to(NavigationView.class);
 		bind(ToolBarActivity.Displayable.class).to(ToolBarView.class);
 		// bind(FolderListActivity.Displayable.class).to(FolderListView.class);
@@ -641,7 +650,7 @@ public class AppGinModule extends Abstra
 	@Provides
 	@Singleton
 	@Named("TopBarRegion")
-	public ActivityManager getTopBarActivityMapper(TopBarActivityMapper activityMapper, EventBus eventBus) {
+	public ActivityManager getTopBarActivityMapper(CachingTopBarActivityMapper activityMapper, EventBus eventBus) {
 		return new ActivityManager(activityMapper, eventBus);
 	}
 

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java Thu Sep 12 04:18:58 2013
@@ -79,8 +79,12 @@ public class TopBarActivityMapper extend
 =======
 =======
 	@Override
+<<<<<<< HEAD
 	Activity getAppActivity(Place place) {
 >>>>>>> try to fix some issues by reorganize the activity mapper and place controller
+=======
+	Activity getAppActivity(final Place place) {
+>>>>>>> fixed issue#46 and issue#32
 		return new ActivityAsyncProxy() {
 			@Override
 			protected void doAsync(RunAsyncCallback callback) {

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java Thu Sep 12 04:18:58 2013
@@ -19,11 +19,14 @@
 
 package org.apache.hupa.client.place;
 
+import org.apache.hupa.shared.domain.User;
+
 import com.google.gwt.place.shared.PlaceTokenizer;
 import com.google.gwt.place.shared.Prefix;
 
 public class MailFolderPlace extends AbstractPlace {
 
+	private User user;
 	private String uid;
 	private String fullName;
 	private static final String DELIMITER = "/";
@@ -43,6 +46,16 @@ public class MailFolderPlace extends Abs
 		}
 	}
 
+	public MailFolderPlace(User user) {
+		String token = user.getSettings().getInboxFolderName();
+		if (isMessagePlace(token)) {
+			initPlace4Message(token);
+		} else {
+			initPlace4Folder(token);
+		}
+		this.user = user;
+	}
+
 	private boolean isMessagePlace(String token) {
 		return token.contains(DELIMITER) && isEndWIthDigit(token);
 	}
@@ -69,6 +82,9 @@ public class MailFolderPlace extends Abs
 		return fullName;
 	}
 
+	public User getUser(){
+		return user;
+	}
 	// the main place use empty string such that colon'd disappear
 	@Prefix("")
 	public static class Tokenizer implements PlaceTokenizer<MailFolderPlace> {

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java?rev=1522329&r1=1522328&r2=1522329&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java Thu Sep 12 04:18:58 2013
@@ -141,6 +141,11 @@ public class TopBarView extends Composit
 	public HTMLPanel getUserLabel() {
 		return userLabel;
 	}
+	
+	@Override
+	public void showUserName(String userName){
+		userLabel.add(new HTML(userName));
+	}
 
 	interface TopBarUiBinder extends UiBinder<DockLayoutPanel, TopBarView> {
 	}



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org