Author: dongxu
Date: Thu Sep 12 03:54:37 2013
New Revision: 1522270

URL: http://svn.apache.org/r1522270
Log:
add logout support

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/TopBarActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/DefaultPlace.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/LoginView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.ui.xml
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.ui.xml

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=1522270&r1=1522269&r2=1522270&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 03:54:37 2013
@@ -264,7 +264,7 @@ public class HupaController {
        private final class PlaceChangHandler implements 
PlaceChangeEvent.Handler {
                @Override
                public void onPlaceChange(PlaceChangeEvent event) {
-                       log.fine("place changed to " + event.getNewPlace());
+//                     log.fine("place changed to " + event.getNewPlace());
                        // if (placeChange(event)) {
                        // checkSession();
                        // }
@@ -279,7 +279,6 @@ public class HupaController {
                                        if 
(!(RootLayoutPanel.get().getLayoutData() instanceof HupaLayoutable)) {
                                                RootLayoutPanel.get().clear();
                                                
RootLayoutPanel.get().add(hupaLayout.get());
-                                               
RootLayoutPanel.get().setLayoutData(hupaLayout);
 
                                        }
                                } else if (newPlace instanceof DefaultPlace) {
@@ -288,7 +287,6 @@ public class HupaController {
                                        if 
(!(RootLayoutPanel.get().getLayoutData() instanceof LoginLayoutable)) {
                                                RootLayoutPanel.get().clear();
                                                
RootLayoutPanel.get().add(loginLayout.get());
-                                               
RootLayoutPanel.get().setLayoutData(loginLayout);
                                        }
                                }
                                currentPlace = newPlace;
@@ -334,7 +332,7 @@ public class HupaController {
                                if (!sessionValid) {
                                        RootLayoutPanel.get().clear();
                                        
RootLayoutPanel.get().add(loginLayout.get());
-                                       log.fine("session invalid");
+//                                     log.fine("session invalid");
 //                                     HupaController.this.placeController
 //                                                     .goTo(new 
DefaultPlace());
 

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=1522270&r1=1522269&r2=1522270&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 03:54:37 2013
@@ -20,6 +20,7 @@
 package org.apache.hupa.client.activity;
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.place.DefaultPlace;
 import org.apache.hupa.client.rf.CheckSessionRequest;
 import org.apache.hupa.client.rf.LogoutUserRequest;
@@ -132,21 +133,80 @@ public class TopBarActivity extends AppB
                return user;
        }
 =======
+=======
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.rf.LogoutUserRequest;
+import org.apache.hupa.client.ui.LoginLayoutable;
+>>>>>>> add logout support
 import org.apache.hupa.client.ui.WidgetDisplayable;
+import org.apache.hupa.shared.domain.LogoutUserResult;
+import org.apache.hupa.shared.domain.User;
+import org.apache.hupa.shared.events.LoginEvent;
+import org.apache.hupa.shared.events.LoginEventHandler;
+import org.apache.hupa.shared.events.LogoutEvent;
 
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
+import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.RootLayoutPanel;
 import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
 
 public class TopBarActivity extends AppBaseActivity {
 
+       @Inject private Displayable display;
+       @Inject private LoginLayoutable loginLayout;
+       private User user;
+
        @Override
        public void start(AcceptsOneWidget container, EventBus eventBus) {
                container.setWidget(display.asWidget());
+               bindTo(eventBus);
        }
 
+<<<<<<< HEAD
        @Inject private Displayable display;
        
        public interface Displayable extends WidgetDisplayable {}
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
+=======
+       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();
+                                       }
+                               }));
+       }
+
+       private void doLogout() {
+               if (user != null) {
+                       LogoutUserRequest req = requestFactory.logoutRequest();
+                       req.logout().fire(new Receiver<LogoutUserResult>() {
+                               @Override
+                               public void onSuccess(LogoutUserResult 
response) {
+                                       eventBus.fireEvent(new 
LogoutEvent(response.getUser()));
+                                       RootLayoutPanel.get().clear();
+                                       
RootLayoutPanel.get().add(loginLayout.get());
+                                       
TopBarActivity.this.placeController.goTo(new DefaultPlace());
+                               }
+                       });
+               }
+       }
+
+       public interface Displayable extends WidgetDisplayable {
+               HasClickHandlers getLogoutClick();
+
+               HTMLPanel getUserLabel();
+       }
+>>>>>>> add logout support
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/DefaultPlace.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/DefaultPlace.java?rev=1522270&r1=1522269&r2=1522270&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/DefaultPlace.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/DefaultPlace.java
 Thu Sep 12 03:54:37 2013
@@ -68,7 +68,7 @@ import com.google.gwt.place.shared.Prefi
 
 public class DefaultPlace extends AbstractPlace {
 
-  @Prefix("!")
+  @Prefix("")
   public static class Tokenizer implements PlaceTokenizer<DefaultPlace> {
 
     @Override

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=1522270&r1=1522269&r2=1522270&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 03:54:37 2013
@@ -28,7 +28,7 @@ import com.google.gwt.place.shared.Prefi
 public class MailFolderPlace extends AbstractPlace {
 
        // this can remove the colon ":"
-       private static final String PREFIX = "";
+       private static final String PREFIX = "folder";
        private User user;
        private String folderName = "";
 

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.java?rev=1522270&r1=1522269&r2=1522270&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.java 
(original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.java 
Thu Sep 12 03:54:37 2013
@@ -269,6 +269,8 @@ public class LoginView extends Composite
 
        interface Style extends CssResource {
                String loading();
+               String hidden();
+               String display();
        }
 
        @Inject
@@ -472,8 +474,12 @@ public class LoginView extends Composite
                        message.addStyleName(style.display());
                } else {
                        message.removeStyleName(style.loading());
+<<<<<<< HEAD
                        message.removeStyleName(style.display());
                        message.addStyleName(style.hidden());
+=======
+                       message.removeStyleName(style.hidden());
+>>>>>>> add logout support
                }
 =======
 =======

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.ui.xml?rev=1522270&r1=1522269&r2=1522270&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LoginView.ui.xml
 Thu Sep 12 03:54:37 2013
@@ -154,6 +154,13 @@
                        white-space: nowrap;
                        text-align: center;
                        cursor: default;
+               }
+               
+               .hidden {
+                       display: none;
+               }
+               
+               .display {
                        display: inline-block;
                }
                
@@ -173,9 +180,7 @@
                </g:FlowPanel>
                <g:FlowPanel ui:field="boxBottom" styleName="{style.boxBottom}">
                        <g:FlowPanel ui:field="messageBox" 
addStyleNames="{style.message}">
-                               <g:HTMLPanel ui:field="message" 
addStyleNames="{style.notice}">You have successfully
-                                       terminated the
-                                       session. Good bye!
+                               <g:HTMLPanel ui:field="message" 
addStyleNames="{style.notice}{style.hidden}">
                                </g:HTMLPanel>
                        </g:FlowPanel>
                </g:FlowPanel>

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=1522270&r1=1522269&r2=1522270&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 03:54:37 2013
@@ -24,6 +24,7 @@ package org.apache.hupa.client.ui;
 import org.apache.hupa.client.activity.TopBarActivity;
 
 import com.google.gwt.core.client.GWT;
+<<<<<<< HEAD
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.resources.client.CssResource;
@@ -67,6 +68,20 @@ public class TopBarView extends Composit
 =======
 public class TopBarView extends Composite implements 
TopBarActivity.Displayable{
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
+=======
+import com.google.gwt.event.dom.client.HasClickHandlers;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Anchor;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DockLayoutPanel;
+import com.google.gwt.user.client.ui.HTMLPanel;
+
+public class TopBarView extends Composite implements 
TopBarActivity.Displayable {
+
+       @UiField Anchor logout;
+       @UiField HTMLPanel userLabel;
+>>>>>>> add logout support
 
        public TopBarView() {
                initWidget(binder.createAndBindUi(this));
@@ -108,6 +123,16 @@ public class TopBarView extends Composit
 =======
 >>>>>>> make login page as one part of the overall layout & splite layout to 
 >>>>>>> little one
 
+       @Override
+       public HasClickHandlers getLogoutClick() {
+               return logout;
+       }
+
+       @Override
+       public HTMLPanel getUserLabel() {
+               return userLabel;
+       }
+
        interface TopBarUiBinder extends UiBinder<DockLayoutPanel, TopBarView> {
        }
 

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.ui.xml?rev=1522270&r1=1522269&r2=1522270&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.ui.xml
 Thu Sep 12 03:54:37 2013
@@ -124,9 +124,8 @@
                </g:west>
                <g:center>
                        <g:FlowPanel>
-                               <g:Anchor addStyleNames="{style.right} 
{style.logout}">Logout</g:Anchor>
-                               <g:HTMLPanel tag="span" 
addStyleNames="{style.right} {style.username}">echo...@gmail.com
-                               </g:HTMLPanel>
+                               <g:Anchor ui:field="logout" 
addStyleNames="{style.right} {style.logout}">Logout</g:Anchor>
+                               <g:HTMLPanel ui:field="userLabel" tag="span" 
addStyleNames="{style.right} {style.username}" />
                        </g:FlowPanel>
                </g:center>
 >>>>>>> make login page as one part of the overall layout & splite layout to 
 >>>>>>> little one



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