view src/main/java/de/mpiwg/web/jsf/PhaseTracker.java @ 0:7682c04c63a8

First commit of the source code!
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Tue, 10 Mar 2015 14:50:41 +0100
parents
children
line wrap: on
line source

package de.mpiwg.web.jsf;

import java.util.Map;

import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

import org.apache.commons.lang.StringUtils;

import de.mpiwg.web.SessionBean;

public class PhaseTracker implements PhaseListener {
	
	private static final long serialVersionUID = 312014196782070515L;

	@Override
	public void beforePhase(PhaseEvent event) {
		
		Map<String, String> params = event.getFacesContext().getExternalContext().getRequestParameterMap();
		String servletPath = event.getFacesContext().getExternalContext().getRequestServletPath();
		
		if(StringUtils.isNotEmpty(servletPath) && event.getPhaseId() == PhaseId.RESTORE_VIEW){
			
			if(servletPath.equals("/home/mainPage.xhtml")){
				SessionBean session = getSessionBean(event.getFacesContext());
				if(session != null){
					session.reloadBranches();
				}
			}else if(servletPath.equals("/home/branchEditor.xhtml") && true){
				String branchId = params.get("branchId");
				SessionBean session = getSessionBean(event.getFacesContext());
				if(StringUtils.isNotEmpty(branchId) && session != null){
					try {
						Long id = Long.parseLong(branchId);
						session.getBranchEditor().loadBranch(id);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}else if(servletPath.equals("/home/createNewFile.xhtml")){
				/*
				SessionBean session = getSessionBean(event.getFacesContext());
				session.getFileCreator().reset();
				*/
			}
			
		}
	}
	private SessionBean getSessionBean(FacesContext context){
		SessionBean bean = (SessionBean)context.getExternalContext().getSessionMap().get(SessionBean.BEAN_NAME);
		if(bean == null){
			bean = new SessionBean();
			context.getExternalContext().getSessionMap().put(SessionBean.BEAN_NAME, bean);
		}
		return bean;
	}

	@Override
	public void afterPhase(PhaseEvent event) {
		
	}

	@Override
    public PhaseId getPhaseId() {
		return PhaseId.ANY_PHASE;
    }

}