CardView.java 4.08 KB
package fi.codecrew.moya.web.cdiview.user;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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

import org.primefaces.model.UploadedFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.annotations.SelectedUser;
import fi.codecrew.moya.web.cdiview.GenericCDIView;

@Named
@ConversationScoped
public class CardView extends GenericCDIView {

	private static final long serialVersionUID = -9115983838324313414L;

	private Integer templateId;
	private CardTemplate cardTemplate;
	@EJB
	private transient CardTemplateBeanLocal cfbean;

	@EJB
	private transient EventBeanLocal eventBean;
	@Inject
	@SelectedUser
	private transient EventUser user;

	private Integer cardid;

	private List<CardTemplate> cardTemplates;

	private transient UploadedFile templateImage;

	private static final Logger logger = LoggerFactory.getLogger(CardView.class);

	public void initCardCreate() {
		if (super.requirePermissions(UserPermission.WRITE_ROLES))
		{
			setCardTemplate(new CardTemplate(eventBean.getCurrentEvent()));
			super.beginConversation();
		}
	}

	public String saveImage()
	{
		try {
			logger.info("Templateimage: {}", getTemplateImage());
			byte[] contents = null;
			UploadedFile file = getTemplateImage();
			if (file.getContents() != null) {
				contents = file.getContents();
			} else {
				contents = new byte[(int) file.getSize()];
				try {
					file.getInputstream().read(contents);
				} catch (IOException e) {
					logger.warn("Error reading file from stream", e);
					contents = null;
				}
			}

			if (contents == null) {
				super.addFaceMessage("eventProperty.errorUploadingFile");
				return null;
			}
			cardTemplate = cfbean.saveImage(cardTemplate, contents);
		} catch (IOException e) {
			logger.info("Error converting template image", e);
			super.addFaceMessage("template.uploadFailed", e.getMessage());
		}
		return null;
	}

	public List<CardTemplate> getTemplatesWithNull() {
		ArrayList<CardTemplate> retlist = new ArrayList<CardTemplate>();
		CardTemplate dummytempl = new CardTemplate();
		dummytempl.setName(I18n.get("cardTemplate.emptyCardTemplate"));
		retlist.add(dummytempl);
		retlist.addAll(cfbean.findAll());

		return retlist;
	}

	public void initCardTemplate()
	{
		if (super.requirePermissions(UserPermission.WRITE_ROLES))
		{
			setCardTemplate(cfbean.find(templateId));
			super.beginConversation();
		}
	}

	public void initCardTemplatelist()
	{
		if (super.requirePermissions(UserPermission.WRITE_ROLES))
		{
			cardTemplates = eventBean.getCurrentEvent().getCardTemplates();
		}
	}

	public Integer getCardid() {
		return cardid;
	}

	public void setCardid(Integer cardid) {
		this.cardid = cardid;
	}

	public String createTemplate() {
		cfbean.create(getCardTemplate());
		cardTemplates = getCardTemplate().getEvent().getCardTemplates();
		return "/useradmin/listCardTemplates";
	}

	public String saveTemplate()
	{
		cardTemplate = cfbean.save(cardTemplate);
		return null;
	}

	public EventUser getUser() {
		return user;
	}

	public void setUser(EventUser user) {
		this.user = user;
	}

	public List<CardTemplate> getCardTemplates() {
		return cardTemplates;
	}

	public void setCardTemplates(List<CardTemplate> cardTemplates) {
		this.cardTemplates = cardTemplates;
	}

	public Integer getTemplateId() {
		return templateId;
	}

	public void setTemplateId(Integer templateId) {
		this.templateId = templateId;
	}

	public CardTemplate getCardTemplate() {
		return cardTemplate;
	}

	public void setCardTemplate(CardTemplate cardTemplate) {
		this.cardTemplate = cardTemplate;
	}

	public UploadedFile getTemplateImage() {
		return templateImage;
	}

	public void setTemplateImage(UploadedFile templateImage) {
		this.templateImage = templateImage;
	}

}