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