LectureView.java 3.6 KB
package fi.codecrew.moya.web.lecture;

import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.ListDataModel;
import javax.inject.Named;

import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.LectureBeanLocal;
import fi.codecrew.moya.model.Lecture;
import fi.codecrew.moya.model.LectureGroup;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.cdiview.GenericCDIView;

@Named
@ConversationScoped
public class LectureView extends GenericCDIView {

	private static final long serialVersionUID = 1L;
	
	@EJB
	LectureBeanLocal lectureBean;
	
	@EJB
	EventBeanLocal eventBean;
	
	
	private LectureGroup currentLectureGroup;
	private Lecture currentLecture;
	
	private boolean creatingLecture = true;
	
	private boolean multicreate = false;
	
	private ListDataModel<Lecture> lectures;
	
	private Integer lecturegroupId = null;
	
	
	
	public void initView() {
		super.beginConversation();
	}

	
	public void saveLecture() {
		 FacesContext context = FacesContext.getCurrentInstance();
		 
		if(currentLecture == null) {
			// this should never happen, so no internatiolazion here.
			context.addMessage(null, new FacesMessage(I18n.get("error"),  "There was some internal error when saving lecture group, basicly there was no lecturegroup to save.") );
			return ;
		}
		
		currentLecture = lectureBean.saveLecture(currentLecture);
		currentLectureGroup = currentLecture.getLectureGroup();
		
		if(creatingLecture)
			context.addMessage(null, new FacesMessage(I18n.get("success"),  I18n.get("lecturegroup.create.success")) );
		else
			context.addMessage(null, new FacesMessage(I18n.get("success"),  I18n.get("lecturegroup.save.success")) );
		
		this.creatingLecture = false;
		
		
		lectures = null;
		
		if(isMulticreate()) {
			currentLecture = (Lecture) currentLecture.clone();
			
			currentLecture.setName("");
			currentLecture.setDescription("");
		} else {
			currentLecture = null;
		}
		
	}
	
	public void editCurrent() {
		if(lectures != null && lectures.isRowAvailable()) {
			this.creatingLecture = false;
			currentLecture = lectures.getRowData();
		}
	}
	
	public void createNew() {
		creatingLecture = true;
		currentLecture = null;
	}
	



	public Integer getLectureGroupId() {
		
		return lecturegroupId;
	}
	
	public void setLectureGroupId(Integer lectureGroupId) {
		
		this.lecturegroupId = lectureGroupId;
		
	}


	public ListDataModel<Lecture> getLectures() {
		
		if(lectures == null && getCurrentLectureGroup() != null) {
			lectures = new ListDataModel<Lecture>(getCurrentLectureGroup().getLectures());
		}
		
		return lectures;
	}


	public void setLectures(ListDataModel<Lecture> lectures) {
		this.lectures = lectures;
	}




	public boolean isMulticreate() {
		return multicreate;
	}




	public void setMulticreate(boolean multicreate) {
		this.multicreate = multicreate;
	}


	public Lecture getCurrentLecture() {
		if(currentLecture == null) {
			currentLecture = new Lecture(getCurrentLectureGroup());
		}
		
		return currentLecture;
	}


	public void setCurrentLecture(Lecture currentLecture) {
		this.currentLecture = currentLecture;
	}


	public LectureGroup getCurrentLectureGroup() {
		
		if(currentLectureGroup == null) {
			currentLectureGroup = lectureBean.findLectureGroup(lecturegroupId);
		}
		
		return currentLectureGroup;
	}


	public String getEditPanelTitle() {
		if(isCreatingLecture()) {
			return I18n.get("lecture.createLecture");
		} else {
			return I18n.get("lecture.saveLecture");
		}
	}


	public boolean isCreatingLecture() {
		return creatingLecture;
	}
	
	
	
	
}