CardTextData.java 5.26 KB
package fi.codecrew.moya.model;

import java.awt.Color;
import java.awt.Font;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.eclipse.persistence.annotations.OptimisticLocking;
import org.eclipse.persistence.annotations.OptimisticLockingType;

import fi.codecrew.moya.enums.CardTextAlignment;
import fi.codecrew.moya.enums.CardTextDataType;
import fi.codecrew.moya.enums.CardTextStyle;

@Entity
@Table(name = "card_text_data")
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class CardTextData extends GenericEntity{

	private static final long serialVersionUID = 307145499023412008L;
	
	@Column(name="card_text_data_type", nullable=false)
    @Enumerated(EnumType.STRING)
	private CardTextDataType textDataType = CardTextDataType.UNKNOWN;
	
	@Column(name = "text_alignment", nullable = false)
	@Enumerated(EnumType.STRING)
	private CardTextAlignment textAlignment;
	
	@Column(name = "x", nullable = false)
	private int x;
	
	@Column(name = "y", nullable = false)
	private int y;
	
	@Column(name = "size", nullable = false, precision = 5, scale = 2)
	private BigDecimal size;
	
	@Column(name = "font_color_r", nullable = false)
	private int fontColorR;
	
	@Column(name = "font_color_g", nullable = false)
	private int fontColorG;
	
	@Column(name = "font_color_b", nullable = false)
	private int fontColorB;

	@Column(name = "font_name", nullable = false)
	private String fontName;
	
	@Column(name = "font_style", nullable = false)
	@Enumerated(EnumType.STRING)
	private CardTextStyle fontStyle;
	
	@Column(name = "text", nullable = true)
	private String text;
	
	@Column(name = "z_index", nullable = false)
	private int zIndex;
	

	@ManyToOne
	@JoinColumn(nullable = false, name = "card_templates_id")
	private CardTemplate cardTemplate; 
	
	public boolean isTypeStatic() {
		if(this.textDataType == CardTextDataType.STATIC)
			return true;
		return false;
	}
	
	public void setTextDataType(CardTextDataType field) {
		this.textDataType = field;
	}
	
	public CardTextDataType getTextDataType() {
		return this.textDataType;
	}
	
	public void setX(int x) {
		this.x = x;
	}
	
	public int getX() {
		return this.x;
	}
	
	public void setY(int y) {
		this.y = y;
	}
	
	public int getY() {
		return this.y;
	}
	
	public void setSize(BigDecimal size) {
		this.size = size;
	}
	
	public BigDecimal getSize() {
		return this.size;
	}
	
	public void setFontName(String font) {
		this.fontName = font;
	}
	
	public String getFontName() {
		return this.fontName;
	}
	
	public void setFontStyle(CardTextStyle fontStyle) {
		this.fontStyle = fontStyle;
	}
	
	public CardTextStyle getFontStyle() {
		return this.fontStyle;
	}
	
	public void setText(String text) {
		this.text = text;
	}
	
	public String getText() {
		return this.text;
	}
	
	public int getzIndex() {
		return zIndex;
	}

	public void setzIndex(int zIndex) {
		this.zIndex = zIndex;
	}

	public CardTextAlignment getTextAlignment() {
		return textAlignment;
	}

	public void setTextAlignment(CardTextAlignment textAlignment) {
		this.textAlignment = textAlignment;
	}

	public void setFont(Font font) {
		//this.font = font;
		this.fontName = font.getFontName();
		this.size = new BigDecimal(font.getSize());
		if(font.isBold() && font.isItalic())
			this.fontStyle = CardTextStyle.BOLDITALIC;
		else if(font.isItalic())
			this.fontStyle = CardTextStyle.ITALIC;
		else if(font.isPlain())
			this.fontStyle = CardTextStyle.PLAIN;
	}
	
	public Font getFont() {
		if(this.fontStyle == CardTextStyle.BOLD)
			return new Font(this.fontName, Font.BOLD, this.size.intValue());
		else if(this.fontStyle == CardTextStyle.ITALIC)
			return new Font(this.fontName, Font.ITALIC, this.size.intValue());
		else if(this.fontStyle == CardTextStyle.PLAIN)
			return new Font(this.fontName, Font.PLAIN, this.size.intValue());
		else
			return new Font(this.fontName, Font.PLAIN, this.size.intValue());
	}
	
	public void setCardTemplate(CardTemplate template) {
		this.cardTemplate = template;
	}
	
	public CardTemplate getCardTemplate() {
		return this.cardTemplate;
	}
	
	public LanEvent getEvent() {
		if(cardTemplate != null)
			return cardTemplate.getEvent();
		else
			return null;
	}
	
	public int getFontColorR() {
		return fontColorR;
	}

	public void setFontColorR(int fontColorR) {
		this.fontColorR = fontColorR;
	}

	public int getFontColorG() {
		return fontColorG;
	}

	public void setFontColorG(int fontColorG) {
		this.fontColorG = fontColorG;
	}

	public int getFontColorB() {
		return fontColorB;
	}

	public void setFontColorB(int fontColorB) {
		this.fontColorB = fontColorB;
	}
	
	public void setFontColor(int r, int g, int b) {
		this.fontColorR = r;
		this.fontColorG = g;
		this.fontColorB = b;
	}

	public String getColorHexCode() {
		String r = Integer.toHexString(fontColorR);
		String g = Integer.toHexString(fontColorG);
		String b = Integer.toHexString(fontColorB);
		
		return r + g + b;
 	}
	
	public void setColorHexCode(String colorHexCode) {
		Color color = null;
		try {
			color = Color.decode("#"+colorHexCode);
			fontColorR = color.getRed();
			fontColorG = color.getGreen();
			fontColorB = color.getBlue();
		}catch(Exception ex) {
			
		}
	}
}