package org.jboss.seam.pdf.ui; import java.awt.GradientPaint; import java.awt.Paint; import java.awt.geom.Point2D; import javax.el.ValueExpression; import javax.faces.component.UIComponentBase; import javax.faces.context.FacesContext; import org.jboss.seam.pdf.ITextUtils; public class UIColor extends UIComponentBase { String color; String color2; String point; String point2; public void setColor(String color) { this.color = color; } public String getColor() { return (color != null) ? color : (String) evalExpression("color"); } public void setColor2(String color2) { this.color2 = color2; } public String getColor2() { return (color2 != null) ? color2 : (String) evalExpression("color2"); } public void setPoint(String point) { this.point = point; } public String getPoint() { return (point != null) ? point : (String) evalExpression("point"); } public void setPoint2(String point2) { this.point2 = point2; } public String getPoint2() { return (point2 != null) ? point2 : (String) evalExpression("point2"); } @Override public String getFamily() { return ITextComponent.COMPONENT_FAMILY; } public Object evalExpression(String el) { ValueExpression expr = getValueExpression(el); return (expr == null) ? null : expr.getValue(FacesContext.getCurrentInstance().getELContext()); } public Point2D pointValue(String string) { Point2D point = new Point2D.Float(); float[] vals = ITextUtils.stringToFloatArray(string); point.setLocation(vals[0], vals[1]); return point; } public Paint getPaint() { String c1 = getColor(); String c2 = getColor2(); if (c2 == null) { return ITextUtils.colorValue(c1); } else { return new GradientPaint(pointValue(getPoint()), ITextUtils.colorValue(c1), pointValue(getPoint()), ITextUtils.colorValue(c2)); } } }