package com.ese.ils.beta.beans;
import java.io.Serializable;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import com.ese.ils.beta.util.DeComposer;
/**
* Steuert hauptsaechlich die Navigation der Erweiterten Vorlesung
* Haelt diverse Zustaende fuer enthaltene Sichten
* Verarbeitet URL-Parameter zur Folienanzeige per QR-Code
* @author eduard walter
*
*/
@ManagedBean
@ViewScoped
public class NavigationBackingBean implements Serializable {
private static final long serialVersionUID = 6593472404995047481L;
private boolean homeStatus = true;
private boolean moduleSelectionStatus = false;
private boolean moduleHomeStatus = false;
private boolean slideViewerStatus = false;
private boolean moduleInfoStatus = false;
private boolean favoriteSelectionStatus = false;
private boolean questionSelectionStatus = false;
private boolean questionEditorStatus = false;
private boolean questionViewerStatus = false;
private boolean slideUploadStatus = false;
String urlParam = null;
@ManagedProperty(value = "#{slideBackingBean}")
private transient SlideBackingBean slideBackingBean;
public NavigationBackingBean() {
urlParam = slideRequest();
if (urlParam != null) {
homeStatus = false;
slideViewerStatus = true;
}
}
/**
* Liefer den "slide"-Parameter einer URL
* @return String urlParam
*/
public String slideRequest() {
FacesContext context = FacesContext.getCurrentInstance();
Map<String, Object> requests = context.getExternalContext()
.getRequestMap();
for (String requestName : requests.keySet()) {
if (requests.get(requestName) instanceof HttpServletRequestWrapper) {
HttpServletRequest request = (HttpServletRequest) ((HttpServletRequestWrapper) requests
.get(requestName)).getRequest();
if (request.getParameter("slide") != null) {
urlParam = request.getParameter("slide");
}
}
}
return urlParam;
}
public boolean isHomeStatus() {
return homeStatus;
}
public void setHomeStatus(boolean homeStatus) {
this.homeStatus = homeStatus;
}
public boolean isModuleSelectionStatus() {
return moduleSelectionStatus;
}
public void setModuleSelectionStatus(boolean moduleSelectionStatus) {
this.moduleSelectionStatus = moduleSelectionStatus;
}
public boolean isModuleHomeStatus() {
return moduleHomeStatus;
}
public void setModuleHomeStatus(boolean moduleHomeStatus) {
this.moduleHomeStatus = moduleHomeStatus;
}
public boolean isSlideViewerStatus() {
return slideViewerStatus;
}
public void setSlideViewerStatus(boolean slideViewerStatus) {
this.slideViewerStatus = slideViewerStatus;
}
public SlideBackingBean getSlideBackingBean() {
return slideBackingBean;
}
public void setSlideBackingBean(SlideBackingBean slideBackingBean) {
this.slideBackingBean = slideBackingBean;
if (urlParam != null) {
slideBackingBean.showSlide(urlParam);
slideBackingBean.getModuleModelBean().setModuleId(DeComposer.slideIdToModuleId(urlParam));
}
}
public boolean isModuleInfoStatus() {
return moduleInfoStatus;
}
public void setModuleInfoStatus(boolean moduleInfoStatus) {
this.moduleInfoStatus = moduleInfoStatus;
}
public boolean isFavoriteSelectionStatus() {
return favoriteSelectionStatus;
}
public void setFavoriteSelectionStatus(boolean favoriteSelectionStatus) {
this.favoriteSelectionStatus = favoriteSelectionStatus;
}
public boolean isQuestionSelectionStatus() {
return questionSelectionStatus;
}
public void setQuestionSelectionStatus(boolean questionSelectionStatus) {
this.questionSelectionStatus = questionSelectionStatus;
}
public boolean isQuestionEditorStatus() {
return questionEditorStatus;
}
public void setQuestionEditorStatus(boolean questionEditorStatus) {
this.questionEditorStatus = questionEditorStatus;
}
public boolean isQuestionViewerStatus() {
return questionViewerStatus;
}
public void setQuestionViewerStatus(boolean questionViewerStatus) {
this.questionViewerStatus = questionViewerStatus;
}
public boolean isSlideUploadStatus() {
return slideUploadStatus;
}
public void setSlideUploadStatus(boolean slideUploadStatus) {
this.slideUploadStatus = slideUploadStatus;
}
}