Package com.din.din.webapp.listeners

Source Code of com.din.din.webapp.listeners.LoginPhaseListener$LoginListener

package com.din.din.webapp.listeners;

import java.io.Serializable;

import javax.el.ELContext;
import javax.el.ValueExpression;
import javax.faces.application.Application;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

import com.din.din.webapp.beans.LoginBean;

public class LoginPhaseListener implements PhaseListener, Serializable {
  private static final long serialVersionUID = -7810269454786215551L;
 
  public PhaseId getPhaseId() {
    return PhaseId.RESTORE_VIEW;
  }

  public static void addListener(LoginListener listener) {
    FacesContext context = FacesContext.getCurrentInstance();
    if(context != null) {
      LoginBean sessionLoginInfo = getSessionLoginInfo(context);
      if(sessionLoginInfo != null) {
        sessionLoginInfo.addListener(listener);
      }
    }
  }
 
  public void beforePhase(PhaseEvent event) {
    FacesContext context;
    if (event.getPhaseId() == PhaseId.RESTORE_VIEW) {
      context = event.getFacesContext();
     
      LoginBean sessionLoginInfo = getSessionLoginInfo(context);
      if(sessionLoginInfo != null) {
        sessionLoginInfo.performCheck();
      }
    }
  }

  private static LoginBean getSessionLoginInfo(FacesContext context) {
    Application application = context.getApplication();
    ELContext elContext = context.getELContext();
    ValueExpression ve = application.getExpressionFactory()
        .createValueExpression(elContext,
            LoginBean.ACCESSOR, LoginBean.class);
   
    LoginBean sessionLoginInfo = (LoginBean)ve.getValue(elContext);
    return sessionLoginInfo;
  }
 
  public void afterPhase(PhaseEvent event) {
  }
 
  public interface LoginListener {
    public void onLogin();
    public void onLogoff();
  }
}
TOP

Related Classes of com.din.din.webapp.listeners.LoginPhaseListener$LoginListener

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.