package org.jboss.seam.pdf.ui;
import java.io.IOException;
import javax.faces.context.FacesContext;
import org.jboss.seam.pdf.ITextUtils;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.MultiColumnText;
public class UIMultiColumnText
extends ITextComponent
{
float left = 36;
float right = PageSize.LETTER.getWidth()-36;
String direction = "default";
MultiColumnText multiColumnText = null;
public float getLeft()
{
return (Float) valueBinding("left", left);
}
public void setLeft(float left)
{
this.left = left;
}
public float getRight()
{
return (Float) valueBinding("right", right);
}
public void setRight(float right)
{
this.right = right;
}
public String getDirection()
{
return (String) valueBinding("direction", direction);
}
public void setDirection(String direction)
{
this.direction = direction;
}
@Override
public void createITextObject(FacesContext context) throws IOException, DocumentException
{
multiColumnText = new MultiColumnText();
multiColumnText.addSimpleColumn(getLeft(), getRight());
multiColumnText.setRunDirection(ITextUtils.runDirection(getDirection()));
}
@Override
public Object getITextObject()
{
return multiColumnText;
}
@Override
public void handleAdd(Object other)
{
if (other instanceof Element) {
try {
multiColumnText.addElement((Element)other);
} catch (DocumentException e) {
throw new RuntimeException(e);
}
} else {
throw new RuntimeException("UIMultiColumnText only supports Element children");
}
}
@Override
public void removeITextObject()
{
multiColumnText = null;
}
}