package com.ese.ils.beta.beans; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ApplicationScoped; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.SessionScoped; import javax.faces.bean.ViewScoped; import javax.faces.event.ActionEvent; import org.icefaces.application.PortableRenderer; import org.icefaces.application.PushRenderer; import com.ese.ils.beta.model.Question; import com.ese.ils.beta.service.PanicButtonLocalServiceUtil; import com.ese.ils.beta.service.QuestionLocalServiceUtil; import com.icesoft.faces.async.render.SessionRenderer; import com.liferay.portal.kernel.exception.SystemException; /** * dient zur Anzeige der Statistiken in der Dozentensicht * @author julien hofer * */ @ManagedBean @ApplicationScoped public class CountQuestionBean implements Serializable{ private static final long serialVersionUID = -1271860679500305862L; //Injection @ManagedProperty(value="#{moduleModelBean}") private transient ModuleModelBean moduleModelBean; public CountQuestionBean(){ PushRenderer.addCurrentSession("question"); } List<String> questions = new ArrayList<String>(); List<String> lastTenQuestions = new ArrayList<String>(); long moduleId; String questionCount = "NO QUESTIONS YET"; String panicCount = "NO PANIC"; String frageText; /** * zaehlt die Anzahl der Fragen und akutalisiert <code>dozentview.xhtml</code> * @param event */ public void countQuestions(ActionEvent event) { System.out.println("counting Questions..."); selectModule(event); List<Question> questions = QuestionLocalServiceUtil.fetchQuestionItems(moduleId); int lastQuestionIndex = questions.size(); Question lastQuestion = questions.get(lastQuestionIndex -1); frageText = lastQuestion.getQuestionText(); System.out.println(frageText); SessionRenderer.render("question"); fetchLastTenQuestions(); try { questionCount = ""+QuestionLocalServiceUtil.getQuestionsCount(); } catch (SystemException e) { System.out.println("Beim holen des Question Counts " + "ist ein Fehler aufgetreten!"); e.printStackTrace(); } System.out.println("Anzahl der Fragen: " + questionCount); } /** * Methode zaehlt die Anzahl der Panic Button und rendert die Statistik Sicht im Dozentenview * durch Ajax Push. * @param event */ public void countPanic(ActionEvent event) { try { panicCount = ""+PanicButtonLocalServiceUtil.getPanicButtonsCount(); } catch (SystemException e) { e.printStackTrace(); } System.out.println("Anzahl der PANIC: " + panicCount); SessionRenderer.render("question"); } /** * Methode holt aus der Datenbank die letzten Zehn Fragen fuer die jeweilige <code>moduleId</code>. * @param moduleId */ public void fetchLastTenQuestions () { List<Question> questionList = QuestionLocalServiceUtil.fetchQuestionItems(moduleId); lastTenQuestions.clear(); if(questionList.size()>10){ for (int i=questionList.size()-10;i < questionList.size();i++) { Question question; question = questionList.get(i); lastTenQuestions.add(question.getQuestionText()); } System.out.println(lastTenQuestions.toString()); } } public void selectModule(ActionEvent event) { moduleId = Long.valueOf(moduleModelBean.getModuleId()); } // GETTERS UND SETTER public void setQuestionCount(String questionCount) { this.questionCount = questionCount; } public String getQuestionCount() { return questionCount; } // Panic Button Count public String getPanicCount() { return panicCount; } public void setPanicCount(String panicCount) { this.panicCount = panicCount; } public String getFrageText() { return frageText; } public void setFrageText(String frageText) { this.frageText = frageText; } public List<String> getLastTenQuestions() { return lastTenQuestions; } public void setLastTenQuestions(List<String> lastTenQuestions) { this.lastTenQuestions = lastTenQuestions; } public ModuleModelBean getModuleModelBean() { return moduleModelBean; } public void setModuleModelBean(ModuleModelBean moduleModelBean) { this.moduleModelBean = moduleModelBean; } public long getModuleId() { return moduleId; } public void setModuleId(long moduleId) { this.moduleId = moduleId; } }