Package net.relatedwork.client.tools.login

Source Code of net.relatedwork.client.tools.login.LoginControlsPresenter$MyView

package net.relatedwork.client.tools.login;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Label;
import com.google.inject.Inject;
import com.google.web.bindery.event.shared.EventBus;
import com.gwtplatform.dispatch.shared.DispatchAsync;
import com.gwtplatform.mvp.client.Presenter;
import com.gwtplatform.mvp.client.View;
import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit;
import com.gwtplatform.mvp.client.proxy.Proxy;
import com.gwtplatform.mvp.client.proxy.RevealContentEvent;
import net.relatedwork.client.layout.HeaderPresenter;
import net.relatedwork.client.tools.events.LoginEvent;
import net.relatedwork.client.tools.events.LoginEvent.LoginHandler;
import net.relatedwork.client.tools.events.LogoutEvent;
import net.relatedwork.client.tools.events.LogoutEvent.LogoutHandler;
import net.relatedwork.client.tools.session.SessionInformation;
import net.relatedwork.client.tools.session.SessionInformationManager;

public class LoginControlsPresenter
    extends
    Presenter<LoginControlsPresenter.MyView, LoginControlsPresenter.MyProxy> {

  public interface MyView extends View {
    public Label getLoginStatus();
    public Anchor getRwLoginLink();
    public Anchor getRwLogoutLink();   
    public void setRwLoginLink(Anchor rwLoginLink);
   
    public void hideLoginLink();
    public void hideLogoutLink();
  }

  @ProxyCodeSplit
  public interface MyProxy extends Proxy<LoginControlsPresenter> {
  }

    @Inject SessionInformationManager sessionInformationManager;

    @Inject
  public LoginControlsPresenter(final EventBus eventBus, final MyView view,
      final MyProxy proxy) {
    super(eventBus, view, proxy);
  }

  @Override
  protected void revealInParent() {
    RevealContentEvent.fire(this, HeaderPresenter.TYPE_LoginControls, this);
  }

  @Inject LoginPopupPresenter loginPopupPresenter;
  @Inject DispatchAsync dispatcher;

  @Override
  protected void onReveal() {
    super.onReveal();
    updateLabel();
    // Logged out per default
    getView().hideLogoutLink();
   
  }
 
  @Override
  protected void onBind() {
    super.onBind();

    // Bind LoginPopup to LoginLink
    registerHandler(getView().getRwLoginLink().addClickHandler(
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {
            event.preventDefault(); // do not follow the link!
            addToPopupSlot(loginPopupPresenter);
         
        }));

    // Bind Logout Event
    registerHandler(getView().getRwLogoutLink().addClickHandler(
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {
            event.preventDefault(); // do not follow the link!
            getEventBus().fireEvent(new LogoutEvent());
//            Window.alert("Logout");
         
        }));

   
    // On LoginEvents update Label
    registerHandler(getEventBus().addHandler(LoginEvent.getType(), new LoginHandler() {
     
      @Override
      public void onLogin(LoginEvent event) {
        // Hide Login button and updatet Label
        getView().hideLoginLink();
        updateLabel();
      }
    }));
   
    // On LoginEvents update Label
    registerHandler(getEventBus().addHandler(LogoutEvent.getType(), new LogoutHandler(){
      @Override
      public void onLogout(LogoutEvent event) {
        getView().hideLogoutLink();
        updateLabel();
      }
    }));

  }

 
  private void updateLabel() {
    SessionInformation session = sessionInformationManager.get();
//    Window.alert("UpdatingLabel " + session.getSessionId());
    getView().getLoginStatus().setText(
        "Username:" + session.getUsername() + " -- " +
        "SessionId:" + session.getSessionId() );
  }
 
}
TOP

Related Classes of net.relatedwork.client.tools.login.LoginControlsPresenter$MyView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.