LectureGroupView.java 3.07 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.enums.apps.LecturePermission;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.LectureGroup;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.cdiview.GenericCDIView;

@Named
@ConversationScoped
public class LectureGroupView extends GenericCDIView {

	private static final long serialVersionUID = 1L;

	@EJB
	LectureBeanLocal lectureBean;

	@EJB
	EventBeanLocal eventBean;

	private LectureGroup currentLectureGroup;

	private boolean creatingLectureGroup = true;

	private ListDataModel<LectureGroup> lectureGroupModel = null;

	public void initView() {
		if (super.requirePermissions(LecturePermission.MANAGE)) {
			super.beginConversation();
		}
	}

	public void saveLectureGroup() {
		FacesContext context = FacesContext.getCurrentInstance();

		if (currentLectureGroup == 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;
		}

		currentLectureGroup = lectureBean.saveLectureGroup(currentLectureGroup);

		if (creatingLectureGroup)
			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.creatingLectureGroup = false;

		lectureGroupModel = null;

	}

	public void editCurrent() {
		if (lectureGroupModel != null && lectureGroupModel.isRowAvailable()) {
			this.creatingLectureGroup = false;
			currentLectureGroup = lectureGroupModel.getRowData();
		}
	}

	public void createNew() {
		currentLectureGroup = null;
		setCreatingLectureGroup(true);
	}

	public ListDataModel<LectureGroup> getLectureGroups() {
		if (lectureGroupModel == null) {
			lectureGroupModel = new ListDataModel<LectureGroup>(lectureBean.getLectureGroups());
		}

		return lectureGroupModel;
	}

	public boolean isCreatingLectureGroup() {
		return creatingLectureGroup;
	}

	public void setCreatingLectureGroup(boolean creatingLectureGroup) {
		this.creatingLectureGroup = creatingLectureGroup;
	}

	public LectureGroup getCurrentLectureGroup() {

		if (currentLectureGroup == null) {
			currentLectureGroup = new LectureGroup(eventBean.getCurrentEvent());
		}

		return currentLectureGroup;
	}

	public void setCurrentLectureGroup(LectureGroup currentLectureGroup) {
		this.currentLectureGroup = currentLectureGroup;

		this.creatingLectureGroup = false;
	}

	public String getEditPanelTitle() {
		if (isCreatingLectureGroup()) {
			return I18n.get("lectureGroup.createLectureGroup");
		} else {
			return I18n.get("lectureGroup.saveLectureGroup");
		}
	}

}