Author: dongxu
Date: Thu Sep 12 04:19:18 2013
New Revision: 1522330

URL: http://svn.apache.org/r1522330
Log:
prepare to make composeView's reload work

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/ComposeActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ComposeActivityMapper.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=1522330&r1=1522329&r2=1522330&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:19:18 2013
@@ -30,6 +30,7 @@ import org.apache.hupa.client.activity.T
 import org.apache.hupa.client.mapper.ActivityManagerInitializer;
 import org.apache.hupa.client.place.ComposePlace;
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.place.ContactPlace;
 import org.apache.hupa.client.place.FolderPlace;
 import org.apache.hupa.client.place.HupaPlace;
@@ -64,6 +65,10 @@ import org.apache.hupa.client.bundles.Hu
 >>>>>>> scrub login view code, use css by a unique way 
 =======
 >>>>>>> could change main panel dynamically currently by clicking the compose 
 >>>>>>> button
+=======
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.MailFolderPlace;
+>>>>>>> prepare to make composeView's reload work
 import org.apache.hupa.client.rf.CheckSessionRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
 import org.apache.hupa.client.ui.HupaLayoutable;
@@ -292,28 +297,39 @@ public class HupaController {
        private final class PlaceChangHandler implements 
PlaceChangeEvent.Handler {
                @Override
                public void onPlaceChange(PlaceChangeEvent event) {
-                       adjustLayout(event);
                        checkSession();
+                       adjustLayout(event);
                }
        }
 
        private void adjustLayout(PlaceChangeEvent event) {
                Place place = event.getNewPlace();
+               
                if (place instanceof ComposePlace) {
+                       if(((ComposePlace)place).getParameters() != null){
                        hupaLayout.switchToCompose();
+                       }else{
+                               this.placeController.goTo(new 
DefaultPlace("@"));
+                       }
                } else {
                        hupaLayout.switchToMessage();
                }
        }
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 >>>>>>> move new theme ui from experiment to hupa evo
 =======
+=======
+       private User user;
+       
+>>>>>>> prepare to make composeView's reload work
        private void checkSession() {
                CheckSessionRequest checkSession = 
requestFactory.sessionRequest();
                checkSession.getUser().fire(new Receiver<User>() {
                        @Override
                        public void onSuccess(User user) {
+                               HupaController.this.user = user;
                                if (user == null) {
                                        RootLayoutPanel.get().clear();
                                        
RootLayoutPanel.get().add(loginLayout.get());

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=1522330&r1=1522329&r2=1522330&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:19:18 2013
@@ -137,6 +137,7 @@ public class ComposeActivity extends App
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
        private Type type = Type.NEW;
 <<<<<<< HEAD
 >>>>>>> make send text mail work excellently
@@ -151,6 +152,8 @@ public class ComposeActivity extends App
 =======
        private User user;
 >>>>>>> fixed issue#46 and issue#32
+=======
+>>>>>>> prepare to make composeView's reload work
        private ComposePlace place;
 >>>>>>> coping with reply and forward sending message
 
@@ -421,14 +424,22 @@ public class ComposeActivity extends App
        @Override
        public String mayStop(){
                super.mayStop();
-               return null;
-//             return "Do you want to leave this page?";
+               if(noContent()){
+                       return null;
+               }
+               return "Do you want to leave this page?";
        }
        
        @Override
        public void onStop(){
                super.onStop();
-//             placeController.goTo(new DefaultPlace("@"));
+               if(!noContent()){
+                       placeController.goTo(new DefaultPlace("@"));
+               }
+       }
+
+       private boolean noContent() {
+               return "".equals(display.getMessage().getText()) && 
"".equals(display.getSubject().getText());
        }
        
        @Override
@@ -440,8 +451,8 @@ public class ComposeActivity extends App
                if (place == null)
                        return;
                Message oldMessage = place.getParameters().getOldmessage();
-               if (user != null)
-                       display.getFromList().addItem(user.getName());
+               if (place.getParameters().getUser() != null)
+                       
display.getFromList().addItem(place.getParameters().getUser().getName());
                display.getMessageHTML().setHTML(
                                wrapMessage(oldMessage, 
place.getParameters().getOldDetails(), place.getToken()));
                if ("forward".equals(place.getToken())) {
@@ -471,10 +482,10 @@ public class ComposeActivity extends App
                                        list.addAll(oldMessage.getTo());
                                if (oldMessage.getCc() != null)
                                        list.addAll(oldMessage.getCc());
-                               list = removeEmailFromList(list, 
user.getName());
+                               list = removeEmailFromList(list, 
place.getParameters().getUser().getName());
                                
display.getCc().setText(Util.listToString(list));
                                if (oldMessage.getTo() != null) {
-                                       
oldMessage.getTo().remove(user.getName());
+                                       
oldMessage.getTo().remove(place.getParameters().getUser().getName());
                                }
                                display.getTo().setText(oldMessage.getFrom());
                        }
@@ -524,12 +535,7 @@ public class ComposeActivity extends App
                return ret;
        }
        private void bindTo(EventBus eventBus) {
-               eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
-                       @Override
-                       public void onLogin(LoginEvent event) {
-                               user = event.getUser();
-                       }
-               });
+
                
registerHandler(display.getSendClick().addClickHandler(sendClickHandler));
 
                registerHandler(display.getCcClick().addClickHandler(new 
ClickHandler() {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ComposeActivityMapper.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ComposeActivityMapper.java?rev=1522330&r1=1522329&r2=1522330&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ComposeActivityMapper.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ComposeActivityMapper.java
 Thu Sep 12 04:19:18 2013
@@ -21,36 +21,46 @@ package org.apache.hupa.client.mapper;
 
 import org.apache.hupa.client.activity.ComposeActivity;
 import org.apache.hupa.client.place.ComposePlace;
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.MailFolderPlace;
 
 import com.google.gwt.activity.shared.Activity;
 import com.google.gwt.activity.shared.ActivityMapper;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.RunAsyncCallback;
 import com.google.gwt.place.shared.Place;
+import com.google.gwt.place.shared.PlaceController;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 
 public class ComposeActivityMapper implements ActivityMapper {
        private final Provider<ComposeActivity> composeActivityProvider;
 
+       @Inject protected PlaceController placeController;
+
        @Inject
        public ComposeActivityMapper(Provider<ComposeActivity> 
composeActivityProvider) {
                this.composeActivityProvider = composeActivityProvider;
        }
 
        public Activity getActivity(final Place place) {
-               return new ActivityAsyncProxy() {
-                       @Override
-                       protected void doAsync(RunAsyncCallback callback) {
-                               GWT.runAsync(callback);
-                       }
-
-                       @Override
-                       protected Activity createInstance() {
-                               if (place instanceof ComposePlace)
-                                       return 
composeActivityProvider.get().with((ComposePlace) place);
-                               return composeActivityProvider.get();
-                       }
-               };
+               if (!(place instanceof ComposePlace))
+                       return null;
+               return composeActivityProvider.get().with((ComposePlace)place);
+//             return new ActivityAsyncProxy() {
+//                     @Override
+//                     protected void doAsync(RunAsyncCallback callback) {
+//                             GWT.runAsync(callback);
+//                     }
+//
+//                     @Override
+//                     protected Activity createInstance() {
+//                             ComposePlace composePlace = (ComposePlace) 
place;
+//                             if (composePlace.getParameters() == null) {
+//                                     placeController.goTo(new 
MailFolderPlace(""));
+//                             }
+//                             return 
composeActivityProvider.get().with(composePlace);
+//                     }
+//             };
        }
 }



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