LicenseView.java 2.92 KB
package fi.codecrew.moya.web.cdiview.license;

import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.model.ListDataModel;
import javax.inject.Inject;
import javax.inject.Named;

import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.LicenseBeanLocal;
import fi.codecrew.moya.beans.ProductBeanLocal;
import fi.codecrew.moya.enums.apps.LicensePermission;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.LicenseCode;
import fi.codecrew.moya.model.LicenseTarget;
import fi.codecrew.moya.model.Product;
import fi.codecrew.moya.web.annotations.SelectedUser;
import fi.codecrew.moya.web.cdiview.GenericCDIView;

@Named
@ConversationScoped
public class LicenseView extends GenericCDIView {

	private static final long serialVersionUID = -8346420143750551402L;

	@Inject
	@SelectedUser
	private EventUser user;

	@EJB
	EventBeanLocal eventBean;

	@EJB
	LicenseBeanLocal licenseBean;
	
	@EJB
	ProductBeanLocal productBean;

	private ListDataModel<LicenseTarget> licenses;
	private  ListDataModel<LicenseCode> licenseCodes;

	private LicenseTarget currentLicense;

	public void initAdminView() {

		if (super.requirePermissions(LicensePermission.MANAGE)) {
			if (licenses == null) {
				this.currentLicense = new LicenseTarget();
				this.currentLicense.setEvent(eventBean.getCurrentEvent());
				this.licenses = new ListDataModel<LicenseTarget>(licenseBean.findAll(eventBean.getCurrentEvent()));
				this.beginConversation();
			}
		}
	}

	public void initUserView() {
		if (super.requirePermissions(LicensePermission.VIEW_OWN_CODES)) {
			if (licenses == null) {
				this.licenseCodes = new ListDataModel<LicenseCode>(licenseBean.findUserCodes(user));
				this.beginConversation();
			}
		}
	}

	public String saveCurrentLicense() {
		licenseBean.saveOrCreateLicense(currentLicense);
		return null;
	}


	public String editSelected() {
		return null;
	}

	public String openSelectedCode() {
		/*if (gameCodesDataModel != null && gameCodesDataModel.isRowAvailable()) {
			LicenseCode code = gameCodesDataModel.getRowData();

			if (!licenseBean.accessCode(code, user)) {
				this.addFaceMessage("game.out");
			}
		}
*/
		return "todo";
	}

	public boolean isNoGameCodes() {
		//return (getGameCodes().getRowCount() <= 0);
		return false;
	}

	public ListDataModel<LicenseCode> getLicenseCodes() {
		return licenseCodes;
	}

	public void setLicenseCodes(ListDataModel<LicenseCode> licenseCodes) {
		this.licenseCodes = licenseCodes;
	}

	public ListDataModel<LicenseTarget> getLicenses() {
		return licenses;
	}

	public void setLicenses(ListDataModel<LicenseTarget> licenses) {
		this.licenses = licenses;
	}

	public LicenseTarget getCurrentLicense() {
		return currentLicense;
	}

	public void setCurrentLicense(LicenseTarget currentLicense) {
		this.currentLicense = currentLicense;
	}
	
	public List<Product> getProductsForLicenses() {
		return productBean.findPlaceProducts();
	}

}