CardTemplateDataEditView.java 6.96 KB
package fi.codecrew.moya.web.cdiview.card;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.enums.CardObjectDataType;
import fi.codecrew.moya.enums.CardTemplateDataType;
import fi.codecrew.moya.enums.CardTextAlignment;
import fi.codecrew.moya.enums.CardTextDataType;
import fi.codecrew.moya.enums.CardTextStyle;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.CardObjectData;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.CardTextData;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.user.UserView;

@Named
@ConversationScoped
public class CardTemplateDataEditView extends GenericCDIView {
	
	private static final long serialVersionUID = -9115983838324313414L;
	private static final Logger logger = LoggerFactory.getLogger(CardTemplateDataEditView.class);
	
	private Integer templateId = 0;
	private Integer cardTextDataId = 0;
	private Integer cardObjectDataId = 0;
	
	private CardTemplateDataType createObjectType = CardTemplateDataType.UNKNOWN;
	
	private CardTemplate cardTemplate;

	private CardTextData cardTextData;
	private CardObjectData cardObjectData;

	private String fontColorHex;
	
	

	@EJB
	private transient CardTemplateBeanLocal cfbean;
	
	public void initView() {
		if (super.requirePermissions(UserPermission.VIEW_ALL))
		{
			if(cardTemplate == null) {
				if(createObjectType != CardTemplateDataType.UNKNOWN && cardObjectDataId == 0 && cardTextDataId == 0) {
					if(createObjectType == CardTemplateDataType.TEXT_DATA) {
						setCardTextData(new CardTextData());
						logger.info("create object is Text Data");
					}
					else if(createObjectType == CardTemplateDataType.OBJECT_DATA) {
						setCardObjectData(new CardObjectData());
						logger.info("create object is Object Data");
					}
				} else if(cardObjectDataId != 0){
					setCardObjectData(cfbean.findObjectData(cardObjectDataId));
					logger.info("CardObjectData {}", cardObjectData);
				} else if(cardTextDataId != 0) {
					setCardTextData(cfbean.findTextData(cardTextDataId));
					logger.info("CardTextData {}", cardTextData);
				}
				
				if(templateId != 0) {
					setCardTemplate(cfbean.find(templateId));
					logger.info("CardTemplate {}", cardTemplate);

					if(cardTextData != null)
						cardTextData.setCardTemplate(cardTemplate);
					else if(cardObjectData != null)
						cardObjectData.setCardTemplate(cardTemplate);
				} else if(cardTextData != null) {
					setCardTemplate(cardTextData.getCardTemplate());
				} else if(cardObjectData != null) {
					setCardTemplate(cardObjectData.getCardTemplate());
				}
				super.beginConversation();
			}
		}
	}
	
	public void initCardTextData() {
		if (super.requirePermissions(UserPermission.VIEW_ALL))
		{
			if(cardTextData == null) {
				setCardTextData(cfbean.findTextData(cardTextDataId));
				super.beginConversation();
			}
		}
	}
	
	public void initCardObjectData() {
		if (super.requirePermissions(UserPermission.VIEW_ALL))
		{
			if(cardObjectData == null) {
				setCardObjectData(cfbean.findObjectData(cardObjectDataId));
				super.beginConversation();
			}
		}
	}
	
	public void initCardTemplate() {
		if (super.requirePermissions(UserPermission.VIEW_ALL))
		{
			if(cardTemplate == null) {
				setCardTemplate(cfbean.find(templateId));
				if(cardTextData != null)
					cardTextData.setCardTemplate(cardTemplate);
				else if(cardObjectData != null)
					cardObjectData.setCardTemplate(cardTemplate);

				super.beginConversation();
			}
		}
	}
	
	public void initCardTextDataCreate() {
		if (super.requirePermissions(UserPermission.VIEW_ALL))
		{
			if(cardTextData == null) {
				setCardTextData(new CardTextData());
				//cardTextData.setMeta(Json.createObjectBuilder().build());
				super.beginConversation();
			}
		}
	}
	
	public void initCardTextObjectCreate() {
		if (super.requirePermissions(UserPermission.VIEW_ALL))
		{
			if(cardObjectData == null) {
				setCardObjectData(new CardObjectData());
				//cardObjectData.setMeta(Json.createObjectBuilder().build());
				super.beginConversation();
			}
		}
	}
	
	public void initCreateObjectType() {
		if (super.requirePermissions(UserPermission.VIEW_ALL))
		{
			/*
			if(createObjectType != CardTemplateDataType.UNKNOWN) {
				if(createObjectType == 1)
					setCardTextData(new CardTextData());
				else if(createObjectType == 2)
					setCardObjectData(new CardObjectData());
				super.beginConversation();
			}*/
		}
	}
	
	public String localisedLabel(String text, String type) {
		return I18n.get(text + type);
	}
	
	public String getFontColorHex() {
		return fontColorHex;
	}

	public void setFontColorHex(String fontColorHex) {
		this.fontColorHex = fontColorHex;
	}
	
	public String saveTextData() {
		//if(cardTextData.getMeta() == null)
		//	cardTextData.setMeta(Json.createObjectBuilder().build());
		cardTextData = cfbean.save(cardTextData);
		return null;
	}
	
	public String saveObjectData() {
		cardObjectData = cfbean.save(cardObjectData);
		return null;
	}
	
	public CardTextData getCardTextData() {
		return cardTextData;
	}

	public void setCardTextData(CardTextData cardTextData) {
		this.cardTextData = cardTextData;
	}

	public CardObjectData getCardObjectData() {
		return cardObjectData;
	}

	public void setCardObjectData(CardObjectData cardObjectData) {
		this.cardObjectData = cardObjectData;
	}
	
	public Integer getCardTextDataId() {
		return cardTextDataId;
	}

	public void setCardTextDataId(Integer cardTextDataId) {
		this.cardTextDataId = cardTextDataId;
	}

	public Integer getCardObjectDataId() {
		return cardObjectDataId;
	}

	public void setCardObjectDataId(Integer cardObjectDataId) {
		this.cardObjectDataId = cardObjectDataId;
	}

	public CardTemplateDataType getCreateObjectType() {
		return createObjectType;
	}

	public void setCreateObjectType(CardTemplateDataType createObjectType) {
		this.createObjectType = createObjectType;
	}
	
	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 List<CardObjectDataType> getCardObjectDataTypes() {
		return new ArrayList<CardObjectDataType>(Arrays.asList(CardObjectDataType.values()));
	}

	public List<CardTextDataType> getCardTextDataTypes() {
		List<CardTextDataType> types = new ArrayList<CardTextDataType>(Arrays.asList(CardTextDataType.values()));
		return types;
	}
	
	public List<CardTextStyle> getFontStyles() {
		return new ArrayList<CardTextStyle>(Arrays.asList(CardTextStyle.values()));
	}

	public List<CardTextAlignment> getTextAlignments() {
		return new ArrayList<CardTextAlignment>(Arrays.asList(CardTextAlignment.values()));
	}
}