/*
+ * $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
package org.apache.fop.rtf.renderer;
import java.util.Stack;
-import org.apache.fop.rtf.rtflib.rtfdoc.*;
+import org.apache.fop.rtf.rtflib.rtfdoc.IRtfOptions;
+import org.apache.fop.rtf.rtflib.rtfdoc.RtfContainer;
/** A BuilderContext holds context information when building an RTF document
*/
-class BuilderContext
-{
- /** stack of RtfContainers */
- private final Stack m_containers = new Stack();
-
- /** stack of TableContexts */
- private final Stack m_tableContexts = new Stack();
-
- /** stack of IBuilders */
- private final Stack m_builders = new Stack();
-
- /** Rtf options */
- IRtfOptions m_options;
-
- BuilderContext(IRtfOptions rtfOptions)
- {
- m_options = rtfOptions;
- }
-
- /** find first object of given class from top of stack s
- * @return null if not found
- */
- private Object getObjectFromStack(Stack s,Class desiredClass)
- {
- Object result = null;
- final Stack copy = (Stack)s.clone();
- while(!copy.isEmpty()) {
- final Object o = copy.pop();
- if(desiredClass.isAssignableFrom(o.getClass())) {
- result = o;
- break;
- }
- }
- return result;
- }
-
- /* find the "nearest" IBuilder of given class /
- Object getBuilder(Class builderClass,boolean required)
- throws Exception
- {
- final IBuilder result = (IBuilder)getObjectFromStack(m_builders,builderClass);
- if(result == null && required) {
- throw new Exception(
- "IBuilder of class '" + builderClass.getName() + "' not found on builders stack"
- );
- }
- return result;
- }*/
-
- /** find the "nearest" container that implements the given interface on our stack
- * @param required if true, ConverterException is thrown if no container found
- * @param forWhichBuilder used in error message if container not found
- */
- RtfContainer getContainer(Class containerClass,boolean required,Object /*IBuilder*/ forWhichBuilder) throws Exception
- {
- // TODO what to do if the desired container is not at the top of the stack?
- // close top-of-stack container?
- final RtfContainer result = (RtfContainer)getObjectFromStack(m_containers,containerClass);
-
- if(result == null && required) {
- throw new Exception(
- "No RtfContainer of class '" + containerClass.getName()
- + "' available for '" + forWhichBuilder.getClass().getName() + "' builder"
- );
- }
-
- return result;
- }
-
- /** push an RtfContainer on our stack */
- void pushContainer(RtfContainer c)
- {
- m_containers.push(c);
- }
-
- /** in some cases an RtfContainer must be replaced by another one on the stack.
- * this happens when handling nested fo:blocks for example: after handling a nested block
- * the enclosing block must switch to a new paragraph container to handle what follows the nested block.
- * TODO: what happens to elements that are "more on top" than oldC on the stack? shouldn't they be closed
- * or something?
- */
- void replaceContainer(RtfContainer oldC,RtfContainer newC)
- throws Exception
- {
- // treating the Stack as a Vector allows such manipulations (yes, I hear you screaming ;-)
- final int index = m_containers.indexOf(oldC);
- if(index < 0) throw new Exception("container to replace not found:" + oldC);
- m_containers.setElementAt(newC,index);
- }
-
- /** pop the topmost RtfContainer from our stack */
- void popContainer()
- {
- m_containers.pop();
- }
-
- /* push an IBuilder to our stack /
- void pushBuilder(IBuilder b)
- {
- m_builders.push(b);
- }*/
-
- /** pop the topmost IBuilder from our stack and return previous builder on stack
- * @return null if builders stack is empty
-
- IBuilder popBuilderAndGetPreviousOne()
- {
- IBuilder result = null;
- m_builders.pop();
- if(!m_builders.isEmpty()) {
- result = (IBuilder)m_builders.peek();
- }
- return result;
- }
+class BuilderContext {
+ /** stack of RtfContainers */
+ private final Stack m_containers = new Stack();
+
+ /** stack of TableContexts */
+ private final Stack m_tableContexts = new Stack();
+
+ /** stack of IBuilders */
+ private final Stack m_builders = new Stack();
+
+ /** Rtf options */
+ IRtfOptions m_options;
+
+ BuilderContext(IRtfOptions rtfOptions) {
+ m_options = rtfOptions;
+ }
+
+ /** find first object of given class from top of stack s
+ * @return null if not found
+ */
+ private Object getObjectFromStack(Stack s, Class desiredClass) {
+ Object result = null;
+ final Stack copy = (Stack)s.clone();
+ while (!copy.isEmpty()) {
+ final Object o = copy.pop();
+ if (desiredClass.isAssignableFrom(o.getClass())) {
+ result = o;
+ break;
+ }
+ }
+ return result;
+ }
+
+ /* find the "nearest" IBuilder of given class /
+ Object getBuilder(Class builderClass,boolean required)
+ throws Exception
+ {
+ final IBuilder result = (IBuilder)getObjectFromStack(m_builders,builderClass);
+ if(result == null && required) {
+ throw new Exception(
+ "IBuilder of class '" + builderClass.getName() + "' not found on builders stack"
+ );
+ }
+ return result;
+ }*/
+
+ /** find the "nearest" container that implements the given interface on our stack
+ * @param required if true, ConverterException is thrown if no container found
+ * @param forWhichBuilder used in error message if container not found
+ */
+ RtfContainer getContainer(Class containerClass, boolean required,
+ Object /*IBuilder*/ forWhichBuilder) throws Exception {
+ // TODO what to do if the desired container is not at the top of the stack?
+ // close top-of-stack container?
+ final RtfContainer result = (RtfContainer)getObjectFromStack(m_containers,
+ containerClass);
+
+ if (result == null && required) {
+ throw new Exception(
+ "No RtfContainer of class '" + containerClass.getName()
+ + "' available for '" + forWhichBuilder.getClass().getName() + "' builder"
+ );
+ }
+
+ return result;
+ }
+
+ /** push an RtfContainer on our stack */
+ void pushContainer(RtfContainer c) {
+ m_containers.push(c);
+ }
+
+ /**
+ * In some cases an RtfContainer must be replaced by another one on the
+ * stack. This happens when handling nested fo:blocks for example: after
+ * handling a nested block the enclosing block must switch to a new
+ * paragraph container to handle what follows the nested block.
+ * TODO: what happens to elements that are "more on top" than oldC on the
+ * stack? shouldn't they be closed or something?
+ */
+ void replaceContainer(RtfContainer oldC, RtfContainer newC)
+ throws Exception {
+ // treating the Stack as a Vector allows such manipulations (yes, I hear you screaming ;-)
+ final int index = m_containers.indexOf(oldC);
+ if (index < 0) {
+ throw new Exception("container to replace not found:" + oldC);
+ }
+ m_containers.setElementAt(newC, index);
+ }
+
+ /** pop the topmost RtfContainer from our stack */
+ void popContainer() {
+ m_containers.pop();
+ }
+
+ /* push an IBuilder to our stack /
+ void pushBuilder(IBuilder b)
+ {
+ m_builders.push(b);
+ }*/
+
+ /** pop the topmost IBuilder from our stack and return previous builder on stack
+ * @return null if builders stack is empty
+
+ IBuilder popBuilderAndGetPreviousOne()
+ {
+ IBuilder result = null;
+ m_builders.pop();
+ if(!m_builders.isEmpty()) {
+ result = (IBuilder)m_builders.peek();
+ }
+ return result;
+ }
*/
- /** return the current TableContext */
- TableContext getTableContext()
- {
- return (TableContext)m_tableContexts.peek();
- }
-
- /** push a TableContext to our stack */
- void pushTableContext(TableContext tc)
- {
- m_tableContexts.push(tc);
- }
-
- /** pop a TableContext from our stack */
- void popTableContext()
- {
- m_tableContexts.pop();
- }
+ /** return the current TableContext */
+ TableContext getTableContext() {
+ return (TableContext)m_tableContexts.peek();
+ }
+
+ /** push a TableContext to our stack */
+ void pushTableContext(TableContext tc) {
+ m_tableContexts.push(tc);
+ }
+
+ /** pop a TableContext from our stack */
+ void popTableContext() {
+ m_tableContexts.pop();
+ }
+
}
\ No newline at end of file
/*
+ * $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*/
package org.apache.fop.rtf.renderer;
-import java.util.*;
+import java.util.Map;
+import java.util.HashMap;
//FOP
import org.apache.fop.apps.FOPException;
* for the JFOR project and is now integrated into FOP.
*/
-class FoUnitsConverter
-{
+class FoUnitsConverter {
private static final FoUnitsConverter m_instance = new FoUnitsConverter();
/** points to twips: 1 twip is 1/20 of a point */
/** conversion factors keyed by xsl:fo units names */
private static final Map m_twipFactors = new HashMap();
static {
- m_twipFactors.put("mm",new Float(MM_TO_TWIPS));
- m_twipFactors.put("cm",new Float(CM_TO_TWIPS));
- m_twipFactors.put("pt",new Float(POINT_TO_TWIPS));
- m_twipFactors.put("in",new Float(IN_TO_TWIPS));
+ m_twipFactors.put("mm", new Float(MM_TO_TWIPS));
+ m_twipFactors.put("cm", new Float(CM_TO_TWIPS));
+ m_twipFactors.put("pt", new Float(POINT_TO_TWIPS));
+ m_twipFactors.put("in", new Float(IN_TO_TWIPS));
}
/** singleton pattern */
- private FoUnitsConverter()
- {
+ private FoUnitsConverter() {
}
/** singleton pattern */
- static FoUnitsConverter getInstance()
- {
+ static FoUnitsConverter getInstance() {
return m_instance;
}
/** convert given value to RTF units
* @param foValue a value like "12mm"
* TODO: tested with "mm" units only, needs work to comply with FO spec
- * Why does it search for period instead of simply breaking last two
+ * Why does it search for period instead of simply breaking last two
* Characters into another units string? - Chris
*/
float convertToTwips(String foValue)
- throws FOPException
- {
+ throws FOPException {
foValue = foValue.trim();
// break value into number and units
final StringBuffer number = new StringBuffer();
final StringBuffer units = new StringBuffer();
- for(int i=0; i < foValue.length(); i++) {
+ for (int i = 0; i < foValue.length(); i++) {
final char c = foValue.charAt(i);
- if(Character.isDigit(c) || c == '.') {
+ if (Character.isDigit(c) || c == '.') {
number.append(c);
} else {
// found the end of the digits
}
}
- return numberToTwips(number.toString(),units.toString());
+ return numberToTwips(number.toString(), units.toString());
}
/** convert given value to twips according to given units */
- private float numberToTwips(String number,String units)
- throws FOPException
- {
+ private float numberToTwips(String number, String units)
+ throws FOPException {
float result = 0;
// convert number to integer
try {
- if(number != null && number.trim().length() > 0) {
+ if (number != null && number.trim().length() > 0) {
result = Float.valueOf(number).floatValue();
}
- } catch(Exception e) {
- throw new FOPException("number format error: cannot convert '" + number + "' to float value");
+ } catch (Exception e) {
+ throw new FOPException("number format error: cannot convert '"
+ + number + "' to float value");
}
// find conversion factor
- if(units != null && units.trim().length() > 0) {
+ if (units != null && units.trim().length() > 0) {
final Float factor = (Float)m_twipFactors.get(units.toLowerCase());
- if(factor == null) throw new FOPException("conversion factor not found for '" + units + "' units");
+ if (factor == null) {
+ throw new FOPException("conversion factor not found for '" + units + "' units");
+ }
result *= factor.floatValue();
}
}
/** convert a font size given in points like "12pt" */
- int convertFontSize(String size)
- throws FOPException
- {
+ int convertFontSize(String size) throws FOPException {
size = size.trim();
final String FONT_SUFFIX = "pt";
- if(!size.endsWith(FONT_SUFFIX)) {
- throw new FOPException("Invalid font size '" + size + "', must end with '" + FONT_SUFFIX + "'");
+ if (!size.endsWith(FONT_SUFFIX)) {
+ throw new FOPException("Invalid font size '" + size + "', must end with '"
+ + FONT_SUFFIX + "'");
}
float result = 0;
- size = size.substring(0,size.length() - FONT_SUFFIX.length());
+ size = size.substring(0, size.length() - FONT_SUFFIX.length());
try {
result = (Float.valueOf(size).floatValue());
- } catch(Exception e) {
+ } catch (Exception e) {
throw new FOPException("Invalid font size value '" + size + "'");
}
private RtfFile rtfFile;
private final OutputStream os;
- private final Logger log=new ConsoleLogger();
+ private final Logger log = new ConsoleLogger();
private RtfSection sect;
private RtfDocumentArea docArea;
private RtfParagraph para;
private boolean warned = false;
- private BuilderContext m_context=new BuilderContext(null);
+ private BuilderContext m_context = new BuilderContext(null);
private static final String ALPHA_WARNING = "WARNING: RTF renderer is "
+ "veryveryalpha at this time, see class org.apache.fop.rtf.renderer.RTFHandler";
attrBlockFontSize(bl, rtfAttr);
attrBlockFontWeight(bl, rtfAttr);
- IRtfParagraphContainer pc=(IRtfParagraphContainer)m_context.getContainer(IRtfParagraphContainer.class,true,null);
+ IRtfParagraphContainer pc =
+ (IRtfParagraphContainer)m_context.getContainer
+ (IRtfParagraphContainer.class, true, null);
para = pc.newParagraph(rtfAttr);
m_context.pushContainer(para);
// FIXME could we throw Exception in all FOInputHandler events?
log.error("startBlock: " + ioe.getMessage());
throw new Error("IOException: " + ioe);
- }
- catch(Exception e)
- {
+ } catch (Exception e) {
log.error("startBlock: " + e.getMessage());
throw new Error("Exception: " + e);
}
public void startTable(Table tbl) {
// create an RtfTable in the current table container
TableContext tableContext = new TableContext(m_context);
- RtfAttributes atts=new RtfAttributes();
+ RtfAttributes atts = new RtfAttributes();
- try
- {
- final IRtfTableContainer tc = (IRtfTableContainer)m_context.getContainer(IRtfTableContainer.class,true,null);
+ try {
+ final IRtfTableContainer tc =
+ (IRtfTableContainer)m_context.getContainer(IRtfTableContainer.class,
+ true, null);
m_context.pushContainer(tc.newTable(atts, tableContext));
- }
- catch(Exception e)
- {
+ } catch (Exception e) {
log.error("startTable:" + e.getMessage());
throw new Error(e.getMessage());
}
*/
public void startColumn(TableColumn tc) {
- try
- {
- Integer iWidth=new Integer(tc.getColumnWidth()/1000);
- m_context.getTableContext().setNextColumnWidth(iWidth.toString()+"pt");
- m_context.getTableContext().setNextColumnRowSpanning(new Integer(0),null);
- }
- catch(Exception e)
- {
+ try {
+ Integer iWidth = new Integer(tc.getColumnWidth() / 1000);
+ m_context.getTableContext().setNextColumnWidth(iWidth.toString() + "pt");
+ m_context.getTableContext().setNextColumnRowSpanning(new Integer(0), null);
+ } catch (Exception e) {
log.error("startColumn: " + e.getMessage());
throw new Error(e.getMessage());
}
* @param th TableColumn that is ending;
*/
- public void endColumn(TableColumn tc){
+ public void endColumn(TableColumn tc) {
}
/**
* @see org.apache.fop.fo.FOInputHandler#startBody(TableBody)
*/
public void startBody(TableBody tb) {
- try
- {
- RtfAttributes atts=TableAttributesConverter.convertRowAttributes (tb.properties, null, null);
+ try {
+ RtfAttributes atts = TableAttributesConverter.convertRowAttributes (tb.properties,
+ null, null);
- RtfTable tbl = (RtfTable)m_context.getContainer(RtfTable.class,true,this);
+ RtfTable tbl = (RtfTable)m_context.getContainer(RtfTable.class, true, this);
tbl.setHeaderAttribs(atts);
- }
- catch(Exception e)
- {
+ } catch (Exception e) {
log.error("startBody: " + e.getMessage());
throw new Error(e.getMessage());
}
* @see org.apache.fop.fo.FOInputHandler#endBody(TableBody)
*/
public void endBody(TableBody tb) {
- try
- {
- RtfTable tbl = (RtfTable)m_context.getContainer(RtfTable.class,true,this);
- tbl.setHeaderAttribs( null );
- }
- catch(Exception e)
- {
+ try {
+ RtfTable tbl = (RtfTable)m_context.getContainer(RtfTable.class, true, this);
+ tbl.setHeaderAttribs(null);
+ } catch (Exception e) {
log.error("endBody: " + e.getMessage());
throw new Error(e.getMessage());
}
* @see org.apache.fop.fo.FOInputHandler#startRow(TableRow)
*/
public void startRow(TableRow tr) {
- try
- {
+ try {
// create an RtfTableRow in the current RtfTable
- final RtfTable tbl = (RtfTable)m_context.getContainer(RtfTable.class,true,null);
+ final RtfTable tbl = (RtfTable)m_context.getContainer(RtfTable.class,
+ true, null);
RtfAttributes tblAttribs = tbl.getRtfAttributes();
RtfAttributes tblRowAttribs = new RtfAttributes();
- RtfAttributes atts=TableAttributesConverter.convertRowAttributes(tr.properties,null,tbl.getHeaderAttribs());
+ RtfAttributes atts = TableAttributesConverter.convertRowAttributes(tr.properties,
+ null, tbl.getHeaderAttribs());
- m_context.pushContainer(tbl.newTableRow( atts ));
+ m_context.pushContainer(tbl.newTableRow(atts));
// reset column iteration index to correctly access column widths
m_context.getTableContext().selectFirstColumn();
- }
- catch(Exception e)
- {
+ } catch (Exception e) {
log.error("startRow: " + e.getMessage());
throw new Error(e.getMessage());
}
* @see org.apache.fop.fo.FOInputHandler#startCell(TableCell)
*/
public void startCell(TableCell tc) {
- try
- {
- TableContext tctx=m_context.getTableContext();
- final RtfTableRow row = (RtfTableRow)m_context.getContainer(RtfTableRow.class,true,null);
+ try {
+ TableContext tctx = m_context.getTableContext();
+ final RtfTableRow row = (RtfTableRow)m_context.getContainer(RtfTableRow.class,
+ true, null);
//while the current column is in row-spanning, act as if
//a vertical merged cell would have been specified.
- while(tctx.getNumberOfColumns()>tctx.getColumnIndex() && tctx.getColumnRowSpanningNumber().intValue()>0)
- {
- row.newTableCellMergedVertically((int)tctx.getColumnWidth(),tctx.getColumnRowSpanningAttrs());
+ while (tctx.getNumberOfColumns() > tctx.getColumnIndex()
+ && tctx.getColumnRowSpanningNumber().intValue() > 0) {
+ row.newTableCellMergedVertically((int)tctx.getColumnWidth(),
+ tctx.getColumnRowSpanningAttrs());
tctx.selectNextColumn();
}
//get the width of the currently started cell
- float width=tctx.getColumnWidth();
+ float width = tctx.getColumnWidth();
// create an RtfTableCell in the current RtfTableRow
- RtfAttributes atts=TableAttributesConverter.convertCellAttributes(tc.properties,null);
- RtfTableCell cell=row.newTableCell((int)width, atts);
+ RtfAttributes atts = TableAttributesConverter.convertCellAttributes(tc.properties,
+ null);
+ RtfTableCell cell = row.newTableCell((int)width, atts);
//process number-rows-spanned attribute
- Property p=null;
- if ((p=tc.properties.get("number-rows-spanned")) != null && false)
- {
+ Property p = null;
+ if ((p = tc.properties.get("number-rows-spanned")) != null && false) {
// Start vertical merge
cell.setVMerge(RtfTableCell.MERGE_START);
// set the number of rows spanned
- tctx.setCurrentColumnRowSpanning(new Integer(p.getNumber().intValue()), cell.getRtfAttributes());
- }
- else
- {
- tctx.setCurrentColumnRowSpanning(new Integer(1),null);
+ tctx.setCurrentColumnRowSpanning(new Integer(p.getNumber().intValue()),
+ cell.getRtfAttributes());
+ } else {
+ tctx.setCurrentColumnRowSpanning(new Integer(1), null);
}
m_context.pushContainer(cell);
- }
- catch(Exception e)
- {
+ } catch (Exception e) {
log.error("startCell: " + e.getMessage());
throw new Error(e.getMessage());
}
}
}
- private void attrBlockFontSize(Block bl, RtfAttributes rtfAttr){
- int fopValue = bl.properties.get("font-size").getLength().getValue()/500;
- rtfAttr.set("fs",fopValue);
+ private void attrBlockFontSize(Block bl, RtfAttributes rtfAttr) {
+ int fopValue = bl.properties.get("font-size").getLength().getValue() / 500;
+ rtfAttr.set("fs", fopValue);
}
- private void attrBlockFontWeight(Block bl, RtfAttributes rtfAttr){
+ private void attrBlockFontWeight(Block bl, RtfAttributes rtfAttr) {
String fopValue = bl.properties.get("font-weight").getString();
- if(fopValue=="bold" || fopValue=="700"){
- rtfAttr.set("b",1);
- }
- else{
- rtfAttr.set("b",0);
+ if (fopValue == "bold" || fopValue == "700") {
+ rtfAttr.set("b", 1);
+ } else {
+ rtfAttr.set("b", 0);
}
}
/*
+ * $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
import org.apache.fop.fo.NumberProperty;
import org.apache.fop.datatypes.ColorType;
-import org.xml.sax.Attributes;
import org.apache.fop.rtf.rtflib.rtfdoc.RtfAttributes;
import org.apache.fop.rtf.rtflib.rtfdoc.ITableAttributes;
import org.apache.fop.rtf.rtflib.rtfdoc.RtfColorTable;
public class TableAttributesConverter {
- static Logger log=new ConsoleLogger();
+ private static Logger log = new ConsoleLogger();
//////////////////////////////////////////////////
// @@ Construction
Property p;
EnumProperty ep;
- RtfColorTable colorTable=RtfColorTable.getInstance();
+ RtfColorTable colorTable = RtfColorTable.getInstance();
- RtfAttributes attrib=null;
+ RtfAttributes attrib = null;
- if(defProps!=null)
- {
- attrib=convertCellAttributes(defProps,null);
- }
- else
- {
- attrib=new RtfAttributes();
+ if (defProps != null) {
+ attrib = convertCellAttributes(defProps, null);
+ } else {
+ attrib = new RtfAttributes();
}
- boolean isBorderPresent=false;
+ boolean isBorderPresent = false;
// Cell background color
- if ((p=props.getNearestSpecified("background-color"))!=null)
- {
- ColorType color=p.getColorType();
- if(color!=null)
- {
- if(color.getAlpha()!=0
- || color.getRed()!=0
- || color.getGreen()!=0
- || color.getBlue()!=0)
- {
+ if ((p = props.getNearestSpecified("background-color")) != null) {
+ ColorType color = p.getColorType();
+ if (color != null) {
+ if (color.getAlpha() != 0
+ || color.getRed() != 0
+ || color.getGreen() != 0
+ || color.getBlue() != 0) {
attrib.set(
ITableAttributes.CELL_COLOR_BACKGROUND,
RTFHandler.convertFOPColorToRTF(color));
}
- }
- else
- {
+ } else {
log.warn("Named color '" + p.toString() + "' not found. ");
}
}
// Cell borders :
- if ((p=props.getExplicit("border-color"))!=null){
- ListProperty listprop=(ListProperty)p;
- ColorType color=null;
- if(listprop.getList().get(0) instanceof NCnameProperty){
- color=new ColorType(((NCnameProperty)listprop.getList().get(0)).getNCname());
- }
- else if(listprop.getList().get(0) instanceof ColorTypeProperty){
- color=((ColorTypeProperty)listprop.getList().get(0)).getColorType();
+ if ((p = props.getExplicit("border-color")) != null) {
+ ListProperty listprop = (ListProperty)p;
+ ColorType color = null;
+ if (listprop.getList().get(0) instanceof NCnameProperty) {
+ color = new ColorType(((NCnameProperty)listprop.getList().get(0)).getNCname());
+ } else if (listprop.getList().get(0) instanceof ColorTypeProperty) {
+ color = ((ColorTypeProperty)listprop.getList().get(0)).getColorType();
}
attrib.set(
BorderAttributesConverter.BORDER_COLOR,
- colorTable.getColorNumber((int)color.getRed(),(int)color.getGreen(),(int)color.getBlue()).intValue());
+ colorTable.getColorNumber((int)color.getRed(), (int)color.getGreen(),
+ (int)color.getBlue()).intValue());
}
- if ((p=props.getExplicit("border-top-color"))!=null){
- ColorType color=p.getColorType();
+ if ((p = props.getExplicit("border-top-color")) != null) {
+ ColorType color = p.getColorType();
attrib.set(
BorderAttributesConverter.BORDER_COLOR,
- colorTable.getColorNumber((int)color.getRed(),(int)color.getGreen(),(int)color.getBlue()).intValue());
+ colorTable.getColorNumber((int)color.getRed(), (int)color.getGreen(),
+ (int)color.getBlue()).intValue());
}
- if((p=props.getExplicit("border-bottom-color"))!=null){
- ColorType color=p.getColorType();
+ if ((p = props.getExplicit("border-bottom-color")) != null) {
+ ColorType color = p.getColorType();
attrib.set(
BorderAttributesConverter.BORDER_COLOR,
- colorTable.getColorNumber((int)color.getRed(),(int)color.getGreen(),(int)color.getBlue()).intValue());
+ colorTable.getColorNumber((int)color.getRed(), (int)color.getGreen(),
+ (int)color.getBlue()).intValue());
}
- if((p=props.getExplicit("border-left-color"))!=null){
- ColorType color=p.getColorType();
+ if ((p = props.getExplicit("border-left-color")) != null) {
+ ColorType color = p.getColorType();
attrib.set(
BorderAttributesConverter.BORDER_COLOR,
- colorTable.getColorNumber((int)color.getRed(),(int)color.getGreen(),(int)color.getBlue()).intValue());
+ colorTable.getColorNumber((int)color.getRed(), (int)color.getGreen(),
+ (int)color.getBlue()).intValue());
}
- if((p=props.getExplicit("border-right-color"))!=null){
- ColorType color=p.getColorType();
+ if ((p = props.getExplicit("border-right-color")) != null) {
+ ColorType color = p.getColorType();
attrib.set(
BorderAttributesConverter.BORDER_COLOR,
- colorTable.getColorNumber((int)color.getRed(),(int)color.getGreen(),(int)color.getBlue()).intValue());
+ colorTable.getColorNumber((int)color.getRed(), (int)color.getGreen(),
+ (int)color.getBlue()).intValue());
}
// Border styles do not inherit from parent
- if((p=props.get("border-style"))!=null){
- log.warn("border-style not implemented. Please use border-style-left, ...-right, ...-top or ...-bottom");
+ if ((p = props.get("border-style")) != null) {
+ log.warn("border-style not implemented. Please use border-style-left, "
+ + "...-right, ...-top or ...-bottom");
/*
attrib.set(ITableAttributes.CELL_BORDER_LEFT, "\\"+convertAttributetoRtf(e.getEnum()));
attrib.set(ITableAttributes.CELL_BORDER_RIGHT, "\\"+convertAttributetoRtf(e.getEnum()));
isBorderPresent=true;
*/
}
- ep=(EnumProperty)props.get("border-top-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.CELL_BORDER_TOP, "\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
+ ep = (EnumProperty)props.get("border-top-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.CELL_BORDER_TOP, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
}
- ep=(EnumProperty)props.get("border-bottom-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.CELL_BORDER_BOTTOM,"\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
+ ep = (EnumProperty)props.get("border-bottom-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.CELL_BORDER_BOTTOM, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
}
- ep=(EnumProperty)props.get("border-left-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.CELL_BORDER_LEFT, "\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
+ ep = (EnumProperty)props.get("border-left-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.CELL_BORDER_LEFT, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
}
- ep=(EnumProperty)props.get("border-right-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.CELL_BORDER_RIGHT, "\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
+ ep = (EnumProperty)props.get("border-right-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.CELL_BORDER_RIGHT, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
}
- if((p=props.get("border-width"))!=null) {
- ListProperty listprop=(ListProperty)p;
- LengthProperty lengthprop=(LengthProperty)listprop.getList().get(0);
+ if ((p = props.get("border-width")) != null) {
+ ListProperty listprop = (ListProperty)p;
+ LengthProperty lengthprop = (LengthProperty)listprop.getList().get(0);
- Float f=new Float(lengthprop.getLength().getValue()/1000f);
+ Float f = new Float(lengthprop.getLength().getValue() / 1000f);
String sValue = f.toString() + "pt";
- attrib.set(BorderAttributesConverter.BORDER_WIDTH, (int)FoUnitsConverter.getInstance().convertToTwips(sValue));
- }
- else if(isBorderPresent){
+ attrib.set(BorderAttributesConverter.BORDER_WIDTH,
+ (int)FoUnitsConverter.getInstance().convertToTwips(sValue));
+ } else if (isBorderPresent) {
//if not defined, set default border width
//note 20 twips = 1 point
- attrib.set(BorderAttributesConverter.BORDER_WIDTH, (int)FoUnitsConverter.getInstance().convertToTwips("1pt"));
+ attrib.set(BorderAttributesConverter.BORDER_WIDTH,
+ (int)FoUnitsConverter.getInstance().convertToTwips("1pt"));
}
// Column spanning :
- NumberProperty n=(NumberProperty)props.get("number-columns-spanned");
- if(n!=null && n.getNumber().intValue()>1) {
+ NumberProperty n = (NumberProperty)props.get("number-columns-spanned");
+ if (n != null && n.getNumber().intValue() > 1) {
attrib.set(ITableAttributes.COLUMN_SPAN, n.getNumber().intValue());
}
*
* @throws ConverterException On convertion error
*/
- static RtfAttributes convertRowAttributes(PropertyList props, PropertyList defProps, RtfAttributes rtfatts)
+ static RtfAttributes convertRowAttributes(PropertyList props,
+ PropertyList defProps, RtfAttributes rtfatts)
throws FOPException {
Property p;
EnumProperty ep;
- RtfColorTable colorTable=RtfColorTable.getInstance();
+ RtfColorTable colorTable = RtfColorTable.getInstance();
- RtfAttributes attrib=null;
+ RtfAttributes attrib = null;
- if(defProps!=null)
- {
- attrib=convertRowAttributes(defProps,null,rtfatts);
- }
- else
- {
- if(rtfatts==null)
- attrib=new RtfAttributes();
- else
- attrib=rtfatts;
+ if (defProps != null) {
+ attrib = convertRowAttributes(defProps, null, rtfatts);
+ } else {
+ if (rtfatts == null) {
+ attrib = new RtfAttributes();
+ } else {
+ attrib = rtfatts;
+ }
}
String attrValue;
- boolean isBorderPresent=false;
+ boolean isBorderPresent = false;
//need to set a default width
//check for keep-together row attribute
- if ((p=props.get("keep-together.within-page"))!=null){
+ if ((p = props.get("keep-together.within-page")) != null) {
attrib.set(ITableAttributes.ROW_KEEP_TOGETHER);
}
- if ((p=props.get("keep-together"))!=null){
+ if ((p = props.get("keep-together")) != null) {
attrib.set(ITableAttributes.ROW_KEEP_TOGETHER);
}
//Check for keep-with-next row attribute.
- if ((p=props.get("keep-together"))!=null){
+ if ((p = props.get("keep-together")) != null) {
attrib.set(ITableAttributes.ROW_KEEP_WITH_NEXT);
}
//Check for keep-with-previous row attribute.
- if ((p=props.get("keep-with-previous"))!=null){
+ if ((p = props.get("keep-with-previous")) != null) {
attrib.set(ITableAttributes.ROW_KEEP_WITH_PREVIOUS);
}
//Check for height row attribute.
- if ((p=props.get("height"))!=null){
- Float f=new Float(p.getLength().getValue()/1000);
+ if ((p = props.get("height")) != null) {
+ Float f = new Float(p.getLength().getValue() / 1000);
attrValue = f.toString() + "pt";
- attrib.set(ITableAttributes.ROW_HEIGHT, (int)FoUnitsConverter.getInstance().convertToTwips(attrValue));
- }
-
- /* to write a border to a side of a cell one must write the directional side (ie. left, right) and the inside value
- * if one needs to be taken out ie if the cell lies on the edge of a table or not, the offending value will be taken out
- * by RtfTableRow. This is because you can't say BORDER_TOP and BORDER_HORIZONTAL if the cell lies at the
- * top of the table. Similarly using BORDER_BOTTOM and BORDER_HORIZONTAL will not work if the cell lies at th
- * bottom of the table. The same rules apply for left right and vertical.
-
- * Also, the border type must be written after every control word. Thus it is implemented that the border type is the value
- * of the border place.
+ attrib.set(ITableAttributes.ROW_HEIGHT,
+ (int)FoUnitsConverter.getInstance().convertToTwips(attrValue));
+ }
+
+ /* to write a border to a side of a cell one must write the directional
+ * side (ie. left, right) and the inside value if one needs to be taken
+ * out ie if the cell lies on the edge of a table or not, the offending
+ * value will be taken out by RtfTableRow. This is because you can't
+ * say BORDER_TOP and BORDER_HORIZONTAL if the cell lies at the top of
+ * the table. Similarly using BORDER_BOTTOM and BORDER_HORIZONTAL will
+ * not work if the cell lies at th bottom of the table. The same rules
+ * apply for left right and vertical.
+
+ * Also, the border type must be written after every control word. Thus
+ * it is implemented that the border type is the value of the border
+ * place.
*/
- if((p=props.get("border-style"))!=null){
- log.warn("border-style not implemented. Please use border-style-left, ...-right, ...-top or ...-bottom");
-
-// attrValue = new String(AbstractBuilder.getValue( attrs, "border-style", defAttrs ));
-// attrib.set(ITableAttributes.ROW_BORDER_LEFT,"\\"+BorderAttributesConverter.convertAttributetoRtf(attrValue));
-// attrib.set(ITableAttributes.ROW_BORDER_RIGHT,"\\"+BorderAttributesConverter.convertAttributetoRtf(attrValue));
-// attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL,"\\"+BorderAttributesConverter.convertAttributetoRtf(attrValue));
-// attrib.set(ITableAttributes.ROW_BORDER_VERTICAL,"\\"+BorderAttributesConverter.convertAttributetoRtf(attrValue));
-// attrib.set(ITableAttributes.ROW_BORDER_BOTTOM,"\\"+BorderAttributesConverter.convertAttributetoRtf(attrValue));
-// attrib.set(ITableAttributes.ROW_BORDER_TOP,"\\"+BorderAttributesConverter.convertAttributetoRtf(attrValue));
-// isBorderPresent=true;
- }
- ep=(EnumProperty)props.get("border-top-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.ROW_BORDER_TOP, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL,"\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
- }
- ep=(EnumProperty)props.get("border-bottom-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.ROW_BORDER_BOTTOM, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL,"\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
- }
- ep=(EnumProperty)props.get("border-left-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.ROW_BORDER_LEFT, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_VERTICAL, "\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
- }
- ep=(EnumProperty)props.get("border-right-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.ROW_BORDER_RIGHT, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_VERTICAL, "\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
- }
- ep=(EnumProperty)props.get("border-horizontal-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_TOP, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_BOTTOM, "\\"+convertAttributetoRtf(ep.getEnum()));
- isBorderPresent=true;
- }
- ep=(EnumProperty)props.get("border-vertical-style");
- if(ep!=null && ep.getEnum()!=Constants.NONE){
- attrib.set(ITableAttributes.ROW_BORDER_VERTICAL, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_LEFT, "\\"+convertAttributetoRtf(ep.getEnum()));
- attrib.set(ITableAttributes.ROW_BORDER_RIGHT, "\\"+convertAttributetoRtf(ep.getEnum()));
+ if ((p = props.get("border-style")) != null) {
+ log.warn("border-style not implemented. Please use border-style-left, "
+ + "...-right, ...-top or ...-bottom");
+/*
+ attrValue = new String(AbstractBuilder.getValue( attrs, "border-style", defAttrs ));
+ attrib.set(ITableAttributes.ROW_BORDER_LEFT,"\\"
+ + BorderAttributesConverter.convertAttributetoRtf(attrValue));
+ attrib.set(ITableAttributes.ROW_BORDER_RIGHT,"\\"
+ + BorderAttributesConverter.convertAttributetoRtf(attrValue));
+ attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL,"\\"
+ + BorderAttributesConverter.convertAttributetoRtf(attrValue));
+ attrib.set(ITableAttributes.ROW_BORDER_VERTICAL,"\\"
+ + BorderAttributesConverter.convertAttributetoRtf(attrValue));
+ attrib.set(ITableAttributes.ROW_BORDER_BOTTOM,"\\"
+ + BorderAttributesConverter.convertAttributetoRtf(attrValue));
+ attrib.set(ITableAttributes.ROW_BORDER_TOP,"\\"
+ + BorderAttributesConverter.convertAttributetoRtf(attrValue));
isBorderPresent=true;
- }
-
- if((p=props.get("border-width"))!=null){
- ListProperty listprop=(ListProperty)p;
- LengthProperty lengthprop=(LengthProperty)listprop.getList().get(0);
-
- Float f=new Float(lengthprop.getLength().getValue()/1000f);
+*/
+ }
+ ep = (EnumProperty)props.get("border-top-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.ROW_BORDER_TOP, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
+ }
+ ep = (EnumProperty)props.get("border-bottom-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.ROW_BORDER_BOTTOM, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
+ }
+ ep = (EnumProperty)props.get("border-left-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.ROW_BORDER_LEFT, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_VERTICAL, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
+ }
+ ep = (EnumProperty)props.get("border-right-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.ROW_BORDER_RIGHT, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_VERTICAL, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
+ }
+ ep = (EnumProperty)props.get("border-horizontal-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.ROW_BORDER_HORIZONTAL, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_TOP, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_BOTTOM, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
+ }
+ ep = (EnumProperty)props.get("border-vertical-style");
+ if (ep != null && ep.getEnum() != Constants.NONE) {
+ attrib.set(ITableAttributes.ROW_BORDER_VERTICAL, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_LEFT, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ attrib.set(ITableAttributes.ROW_BORDER_RIGHT, "\\"
+ + convertAttributetoRtf(ep.getEnum()));
+ isBorderPresent = true;
+ }
+
+ if ((p = props.get("border-width")) != null) {
+ ListProperty listprop = (ListProperty)p;
+ LengthProperty lengthprop = (LengthProperty)listprop.getList().get(0);
+
+ Float f = new Float(lengthprop.getLength().getValue() / 1000f);
String sValue = f.toString() + "pt";
- attrib.set(BorderAttributesConverter.BORDER_WIDTH, (int)FoUnitsConverter.getInstance().convertToTwips(sValue));
- }
- else if(isBorderPresent){
+ attrib.set(BorderAttributesConverter.BORDER_WIDTH,
+ (int)FoUnitsConverter.getInstance().convertToTwips(sValue));
+ } else if (isBorderPresent) {
//if not defined, set default border width
//note 20 twips = 1 point
- attrib.set(BorderAttributesConverter.BORDER_WIDTH, (int)FoUnitsConverter.getInstance().convertToTwips("1pt"));
+ attrib.set(BorderAttributesConverter.BORDER_WIDTH,
+ (int)FoUnitsConverter.getInstance().convertToTwips("1pt"));
}
return attrib;
}
-
+ /**
+ *
+ * @param iBorderStyle the border style to be converted
+ * @return String with the converted border style
+ */
public static String convertAttributetoRtf(int iBorderStyle) {
// Added by Normand Masse
// "solid" is interpreted like "thin"
- if (iBorderStyle==Constants.SOLID) {
+ if (iBorderStyle == Constants.SOLID) {
return BorderAttributesConverter.BORDER_SINGLE_THICKNESS;
/* } else if (iBorderStyle==Constants.THIN) {
return BorderAttributesConverter.BORDER_SINGLE_THICKNESS;
return BorderAttributesConverter.BORDER_DOUBLE_THICKNESS;
} else if (iBorderStyle==Constants. value.equals("shadowed")) {
return BorderAttributesConverter.BORDER_SHADOWED;*/
- } else if (iBorderStyle==Constants.DOUBLE) {
+ } else if (iBorderStyle == Constants.DOUBLE) {
return BorderAttributesConverter.BORDER_DOUBLE;
- } else if (iBorderStyle==Constants.DOTTED) {
+ } else if (iBorderStyle == Constants.DOTTED) {
return BorderAttributesConverter.BORDER_DOTTED;
- } else if (iBorderStyle==Constants.DASHED) {
+ } else if (iBorderStyle == Constants.DASHED) {
return BorderAttributesConverter.BORDER_DASH;
/* } else if (iBorderStyle==Constants value.equals("hairline")) {
return BorderAttributesConverter.BORDER_HAIRLINE;*/
/*
+ * $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*/
package org.apache.fop.rtf.renderer;
-import java.util.*;
+import java.util.ArrayList;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
* is now integrated into FOP.
*/
-class TableContext implements ITableColumnsInfo
-{
- private final Logger log=new ConsoleLogger();
+class TableContext implements ITableColumnsInfo {
+ private final Logger log = new ConsoleLogger();
private final BuilderContext m_context;
private final ArrayList m_colWidths = new ArrayList();
private int m_colIndex;
* For this purpose the attributes of a cell are stored in this array, as soon
* as a number-rows-spanned attribute has been found.
*/
- private final ArrayList m_colRowSpanningAttrs = new ArrayList(); //Added by Peter Herweg on 2002-06-29
+ private final ArrayList m_colRowSpanningAttrs = new ArrayList();
- private boolean m_bNextRowBelongsToHeader=false;
+ private boolean m_bNextRowBelongsToHeader = false;
- public void setNextRowBelongsToHeader(boolean bNextRowBelongsToHeader)
- {
- m_bNextRowBelongsToHeader=bNextRowBelongsToHeader;
+ public void setNextRowBelongsToHeader(boolean bNextRowBelongsToHeader) {
+ m_bNextRowBelongsToHeader = bNextRowBelongsToHeader;
}
- public boolean getNextRowBelongsToHeader()
- {
- return m_bNextRowBelongsToHeader;
- }
+ public boolean getNextRowBelongsToHeader() {
+ return m_bNextRowBelongsToHeader;
+ }
- TableContext(BuilderContext ctx)
- {
+ TableContext(BuilderContext ctx) {
m_context = ctx;
}
void setNextColumnWidth(String strWidth)
- throws Exception
- {
-
- m_colWidths.add( new Float(FoUnitsConverter.getInstance().convertToTwips(strWidth)));
+ throws Exception {
+ m_colWidths.add(new Float(FoUnitsConverter.getInstance().convertToTwips(strWidth)));
}
//Added by Peter Herweg on 2002-06-29
- RtfAttributes getColumnRowSpanningAttrs()
- {
+ RtfAttributes getColumnRowSpanningAttrs() {
return (RtfAttributes)m_colRowSpanningAttrs.get(m_colIndex);
}
//Added by Peter Herweg on 2002-06-29
- Integer getColumnRowSpanningNumber()
- {
+ Integer getColumnRowSpanningNumber() {
return (Integer)m_colRowSpanningNumber.get(m_colIndex);
}
//Added by Peter Herweg on 2002-06-29
void setCurrentColumnRowSpanning(Integer iRowSpanning, RtfAttributes attrs)
- throws Exception
- {
+ throws Exception {
- if(m_colIndex<m_colRowSpanningNumber.size())
- {
+ if (m_colIndex < m_colRowSpanningNumber.size()) {
m_colRowSpanningNumber.set(m_colIndex, iRowSpanning);
m_colRowSpanningAttrs.set(m_colIndex, attrs);
- }
- else
- {
+ } else {
m_colRowSpanningNumber.add(iRowSpanning);
m_colRowSpanningAttrs.add(m_colIndex, attrs);
}
}
//Added by Peter Herweg on 2002-06-29
- public void setNextColumnRowSpanning(Integer iRowSpanning, RtfAttributes attrs)
- {
+ public void setNextColumnRowSpanning(Integer iRowSpanning,
+ RtfAttributes attrs) {
m_colRowSpanningNumber.add(iRowSpanning);
m_colRowSpanningAttrs.add(m_colIndex, attrs);
}
* It decreases all values in m_colRowSpanningNumber by 1. If a value
* reaches 0 row-spanning is finished, and the value won't be decreased anymore.
*/
- public void decreaseRowSpannings()
- {
- for(int z=0;z<m_colRowSpanningNumber.size();++z)
- {
- Integer i=(Integer)m_colRowSpanningNumber.get(z);
+ public void decreaseRowSpannings() {
+ for (int z = 0; z < m_colRowSpanningNumber.size(); ++z) {
+ Integer i = (Integer)m_colRowSpanningNumber.get(z);
- if(i.intValue()>0)
- i=new Integer(i.intValue()-1);
+ if (i.intValue() > 0) {
+ i = new Integer(i.intValue() - 1);
+ }
- m_colRowSpanningNumber.set(z,i);
+ m_colRowSpanningNumber.set(z, i);
- if(i.intValue()==0)
- m_colRowSpanningAttrs.set(z,null);
+ if (i.intValue() == 0) {
+ m_colRowSpanningAttrs.set(z, null);
+ }
}
}
- /** reset the column iteration index, meant to be called when creating a new row
- * The 'public' modifier has been added by Boris Poudérous for 'number-columns-spanned' processing
+ /**
+ * Reset the column iteration index, meant to be called when creating a new row
+ * The 'public' modifier has been added by Boris Poudérous for
+ * 'number-columns-spanned' processing
*/
- public void selectFirstColumn()
- {
+ public void selectFirstColumn() {
m_colIndex = 0;
}
- /** increment the column iteration index
- * The 'public' modifier has been added by Boris Poudérous for 'number-columns-spanned' processing
+ /**
+ * Increment the column iteration index
+ * The 'public' modifier has been added by Boris Poudérous for
+ * 'number-columns-spanned' processing
*/
- public void selectNextColumn()
- {
+ public void selectNextColumn() {
m_colIndex++;
}
- /** get current column width according to column iteration index
- * @return INVALID_COLUMN_WIDTH if we cannot find the value
- * The 'public' modifier has been added by Boris Poudérous for 'number-columns-spanned' processing
+ /**
+ * Get current column width according to column iteration index
+ * @return INVALID_COLUMN_WIDTH if we cannot find the value
+ * The 'public' modifier has been added by Boris Poudérous for
+ * 'number-columns-spanned' processing
*/
- public float getColumnWidth()
- {
+ public float getColumnWidth() {
try {
return ((Float)m_colWidths.get(m_colIndex)).floatValue();
- } catch (IndexOutOfBoundsException ex) {
+ } catch (IndexOutOfBoundsException ex) {
// this code contributed by Trembicki-Guy, Ed <GuyE@DNB.com>
log.warn("fo:table-column width not defined, using " + INVALID_COLUM_WIDTH);
return INVALID_COLUM_WIDTH;
}
/** Added by Boris Poudérous on 07/22/2002 */
- public int getColumnIndex()
- {
+ public int getColumnIndex() {
return m_colIndex;
}
/** - end - */
/** Added by Boris Poudérous on 07/22/2002 */
- public int getNumberOfColumns()
- {
+ public int getNumberOfColumns() {
return m_colWidths.size();
}
/** - end - */