Author: norman.richards(a)jboss.com
Date: 2009-12-01 14:18:09 -0500 (Tue, 01 Dec 2009)
New Revision: 11710
Added:
branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ui/UIMultiColumnText.java
Modified:
branches/community/Seam_2_2/src/pdf/META-INF/faces-config.xml
branches/community/Seam_2_2/src/pdf/META-INF/seam-pdf.taglib.xml
branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ITextUtils.java
Log:
JBSEAM-4493
Modified: branches/community/Seam_2_2/src/pdf/META-INF/faces-config.xml
===================================================================
--- branches/community/Seam_2_2/src/pdf/META-INF/faces-config.xml 2009-12-01 10:55:16 UTC
(rev 11709)
+++ branches/community/Seam_2_2/src/pdf/META-INF/faces-config.xml 2009-12-01 19:18:09 UTC
(rev 11710)
@@ -168,7 +168,11 @@
<component-class>org.jboss.seam.pdf.ui.UIForm</component-class>
</component>
-
+ <component>
+
<component-type>org.jboss.seam.pdf.ui.UIMultiColumnText</component-type>
+
<component-class>org.jboss.seam.pdf.ui.UIMultiColumnText</component-class>
+ </component>
+
<!--
<render-kit>
<render-kit-id>PDF</render-kit-id>
Modified: branches/community/Seam_2_2/src/pdf/META-INF/seam-pdf.taglib.xml
===================================================================
--- branches/community/Seam_2_2/src/pdf/META-INF/seam-pdf.taglib.xml 2009-12-01 10:55:16
UTC (rev 11709)
+++ branches/community/Seam_2_2/src/pdf/META-INF/seam-pdf.taglib.xml 2009-12-01 19:18:09
UTC (rev 11710)
@@ -237,4 +237,11 @@
</component>
</tag>
+ <tag>
+ <tag-name>textcolumn</tag-name>
+ <component>
+
<component-type>org.jboss.seam.pdf.ui.UIMultiColumnText</component-type>
+ </component>
+ </tag>
+
</facelet-taglib>
Modified: branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ITextUtils.java
===================================================================
--- branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ITextUtils.java 2009-12-01
10:55:16 UTC (rev 11709)
+++ branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ITextUtils.java 2009-12-01
19:18:09 UTC (rev 11710)
@@ -7,6 +7,7 @@
import com.lowagie.text.ElementTags;
import com.lowagie.text.PageSize;
import com.lowagie.text.Rectangle;
+import com.lowagie.text.pdf.PdfWriter;
public class ITextUtils
{
@@ -129,4 +130,19 @@
return values;
}
+
+ public static int runDirection(String direction)
+ {
+ if (direction == null || direction.equalsIgnoreCase("default")) {
+ return PdfWriter.RUN_DIRECTION_DEFAULT;
+ } else if (direction.equalsIgnoreCase("rtl")) {
+ return PdfWriter.RUN_DIRECTION_RTL;
+ } else if (direction.equalsIgnoreCase("ltr")) {
+ return PdfWriter.RUN_DIRECTION_LTR;
+ } else if (direction.equalsIgnoreCase("no-bidi")) {
+ return PdfWriter.RUN_DIRECTION_NO_BIDI;
+ } else {
+ throw new RuntimeException("unknown run direction " + direction);
+ }
+ }
}
Added: branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ui/UIMultiColumnText.java
===================================================================
--- branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ui/UIMultiColumnText.java
(rev 0)
+++
branches/community/Seam_2_2/src/pdf/org/jboss/seam/pdf/ui/UIMultiColumnText.java 2009-12-01
19:18:09 UTC (rev 11710)
@@ -0,0 +1,92 @@
+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;
+ }
+
+}
Show replies by date