com.lowagie.text.rtf.table

## Class RtfCell

- java.lang.Object
- - com.lowagie.text.Rectangle
  - - com.lowagie.text.Cell
    - - com.lowagie.text.rtf.table.RtfCell

- All Implemented Interfaces:
    Element, RtfBasicElement, RtfExtendedElement, RtfElementInterface, TextElementArray

      public class RtfCell
      extends Cell
      implements RtfExtendedElement

  The RtfCell wraps a Cell, but can also be added directly to a Table. The RtfCell is an extension of Cell, that supports a multitude of different borderstyles.
  Version:
    $Id$
  Author:
    Mark Hall (Mark.Hall@mail.room3b.eu), Steffen Stundzig, Benoit Wiart, Thomas Bickel (tmb99@inode.at)
  See Also:
    `RtfBorder`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private RtfColor` | `backgroundColor` The background color of this RtfCell
    `private RtfBorderGroup` | `borders` The borders of this RtfCell
    `private int` | `cellPadding` The padding of this RtfCell
    `private float` | `cellPaddingBottom`
    `private float` | `cellPaddingLeft`
    `private float` | `cellPaddingRight`
    `private float` | `cellPaddingTop`
    `private int` | `cellRight` The right margin of this RtfCell
    `private int` | `cellWidth` The width of this RtfCell
    `private java.util.ArrayList` | `content` The content of this RtfCell
    `private boolean` | `deleted` Whether this RtfCell is a placeholder for a removed table cell.
    `private RtfDocument` | `document` The RtfDocument this RtfCell belongs to
    `private boolean` | `inHeader` Whether this RtfCell is in a header
    `private static int` | `MERGE_NONE` This cell is not merged
    `private static int` | `MERGE_VERT_CHILD` This cell is a child cell of a vertical merge operation
    `private static int` | `MERGE_VERT_PARENT` This cell is the parent cell of a vertical merge operation
    `private int` | `mergeType` The merge type of this RtfCell
    `private RtfRow` | `parentRow` The parent RtfRow of this RtfCell
    `private boolean` | `usePadding` Whether to use generic padding or individual padding values (cellPaddingLeft, cellPaddingTop, cellPaddingBottom, cellPaddingRight)

    - ### Fields inherited from class com.lowagie.text.Cell

      `arrayList, colspan, groupChange, header, horizontalAlignment, maxLines, percentage, rowspan, useAscender, useBorderPadding, useDescender, verticalAlignment, width`

    - ### Fields inherited from class com.lowagie.text.Rectangle

      `border, borderColor, borderColorBottom, borderColorLeft, borderColorRight, borderColorTop, borderWidth, borderWidthBottom, borderWidthLeft, borderWidthRight, borderWidthTop, BOTTOM, BOX, LEFT, llx, lly, NO_BORDER, RIGHT, rotation, TOP, UNDEFINED, urx, ury, useVariableBorders`

    - ### Fields inherited from interface com.lowagie.text.rtf.RtfBasicElement

      `CLOSE_GROUP, COMMA_DELIMITER, DELIMITER, OPEN_GROUP, TWIPS_FACTOR`

    - ### Fields inherited from interface com.lowagie.text.Element

      `ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, HEADER, IMGRAW, IMGTEMPLATE, JBIG2, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE, YMARK`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `RtfCell()` Constructs an empty RtfCell
    `protected` | `RtfCell(boolean deleted)` Constructs a deleted RtfCell.
    `` | `RtfCell(Element element)` Constructs a RtfCell based upon an Element
    `protected` | `RtfCell(RtfDocument doc, RtfRow row, Cell cell)` Constructs a RtfCell based on a Cell.
    `protected` | `RtfCell(RtfDocument doc, RtfRow row, PdfPCell cell)` Constructs a RtfCell based on a Cell.
    `` | `RtfCell(java.lang.String content)` Constructs a RtfCell based upon a String

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected RtfBorderGroup` | `getBorders()` Gets the borders of this RtfCell
    `protected int` | `getCellpadding()` Gets the cell padding of this RtfCell
    `protected int` | `getCellRight()` Gets the right margin of this RtfCell
    `protected int` | `getCellWidth()` Gets the cell width of this RtfCell
    `protected RtfColor` | `getRtfBackgroundColor()` Get the background color of this RtfCell
    `private void` | `importCell(Cell cell)` Imports the Cell properties into the RtfCell
    `private void` | `importCell(PdfPCell cell)` Imports the Cell properties into the RtfCell
    `private byte[]` | `intToByteArray(int i)` Transforms an integer into its String representation and then returns the bytes of that string.
    `boolean` | `isDeleted()` Checks whether this RtfCell is a placeholder for a table cell that has been removed due to col/row spanning.
    `boolean` | `isInHeader()` Gets whether this `RtfCell` is in a header
    `void` | `setBorders(RtfBorderGroup borderGroup)` Set the borders of this RtfCell
    `protected void` | `setCellMergeChild(RtfCell mergeParent)` Merge this cell into the parent cell.
    `protected void` | `setCellRight(int cellRight)` Sets the right margin of this cell.
    `protected void` | `setCellWidth(int cellWidth)` Sets the cell width of this RtfCell.
    `void` | `setInHeader(boolean inHeader)` Sets whether this RtfCell is in a header
    `void` | `setInTable(boolean inTable)` Unused
    `void` | `setRtfDocument(RtfDocument doc)` Sets the RtfDocument this RtfCell belongs to
    `void` | `writeContent(java.io.OutputStream result)` Write the content of this RtfCell
    `void` | `writeDefinition(java.io.OutputStream result)` Write the cell definition part of this RtfCell

    - ### Methods inherited from class com.lowagie.text.Cell

      `add, addElement, bottom, clear, createPdfPCell, getBottom, getChunks, getColspan, getElements, getGroupChange, getHorizontalAlignment, getLeading, getLeft, getMaxLines, getRight, getRowspan, getShowTruncation, getTop, getVerticalAlignment, getWidth, getWidthAsString, isEmpty, isHeader, isTable, isUseAscender, isUseBorderPadding, isUseDescender, left, process, right, setBottom, setColspan, setGroupChange, setHeader, setHorizontalAlignment, setHorizontalAlignment, setLeading, setLeft, setMaxLines, setRight, setRowspan, setShowTruncation, setTop, setUseAscender, setUseBorderPadding, setUseDescender, setVerticalAlignment, setVerticalAlignment, setWidth, setWidth, size, top, type`

    - ### Methods inherited from class com.lowagie.text.Rectangle

      `cloneNonPositionParameters, disableBorderSide, enableBorderSide, getBackgroundColor, getBorder, getBorderColor, getBorderColorBottom, getBorderColorLeft, getBorderColorRight, getBorderColorTop, getBorderWidth, getBorderWidthBottom, getBorderWidthLeft, getBorderWidthRight, getBorderWidthTop, getBottom, getGrayFill, getHeight, getLeft, getRight, getRotation, getTop, hasBorder, hasBorders, isContent, isNestable, isUseVariableBorders, normalize, rectangle, rotate, setBackgroundColor, setBorder, setBorderColor, setBorderColorBottom, setBorderColorLeft, setBorderColorRight, setBorderColorTop, setBorderWidth, setBorderWidthBottom, setBorderWidthLeft, setBorderWidthRight, setBorderWidthTop, setBottom, setGrayFill, setLeft, setRight, setTop, setUseVariableBorders, softCloneNonPositionParameters, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface com.lowagie.text.Element

      `isContent, isNestable, toString`

- - ### Field Detail

    - #### MERGE_NONE

          private static final int MERGE_NONE

      This cell is not merged
      See Also:
        Constant Field Values

    - #### MERGE_VERT_PARENT

          private static final int MERGE_VERT_PARENT

      This cell is the parent cell of a vertical merge operation
      See Also:
        Constant Field Values

    - #### MERGE_VERT_CHILD

          private static final int MERGE_VERT_CHILD

      This cell is a child cell of a vertical merge operation
      See Also:
        Constant Field Values

    - #### parentRow

          private RtfRow parentRow

      The parent RtfRow of this RtfCell

    - #### content

          private java.util.ArrayList content

      The content of this RtfCell

    - #### cellRight

          private int cellRight

      The right margin of this RtfCell

    - #### cellWidth

          private int cellWidth

      The width of this RtfCell

    - #### borders

          private RtfBorderGroup borders

      The borders of this RtfCell

    - #### backgroundColor

          private RtfColor backgroundColor

      The background color of this RtfCell

    - #### cellPadding

          private int cellPadding

      The padding of this RtfCell

    - #### mergeType

          private int mergeType

      The merge type of this RtfCell

    - #### document

          private RtfDocument document

      The RtfDocument this RtfCell belongs to

    - #### inHeader

          private boolean inHeader

      Whether this RtfCell is in a header

    - #### deleted

          private boolean deleted

      Whether this RtfCell is a placeholder for a removed table cell.

    - #### usePadding

          private boolean usePadding

      Whether to use generic padding or individual padding values (cellPaddingLeft, cellPaddingTop, cellPaddingBottom, cellPaddingRight)

    - #### cellPaddingLeft

          private float cellPaddingLeft

    - #### cellPaddingTop

          private float cellPaddingTop

    - #### cellPaddingBottom

          private float cellPaddingBottom

    - #### cellPaddingRight

          private float cellPaddingRight

  - ### Constructor Detail

    - #### RtfCell

          public RtfCell()

      Constructs an empty RtfCell

    - #### RtfCell

          public RtfCell(java.lang.String content)

      Constructs a RtfCell based upon a String
      Parameters:
        `content` - The String to base the RtfCell on

    - #### RtfCell

          public RtfCell(Element element)
                  throws BadElementException

      Constructs a RtfCell based upon an Element
      Parameters:
        `element` - The Element to base the RtfCell on
      Throws:
        `BadElementException` - If the Element is not valid

    - #### RtfCell

          protected RtfCell(boolean deleted)

      Constructs a deleted RtfCell.
      Parameters:
        `deleted` - Whether this RtfCell is actually deleted.

    - #### RtfCell

          protected RtfCell(RtfDocument doc,
                 RtfRow row,
                 Cell cell)

      Constructs a RtfCell based on a Cell.
      Parameters:
        `doc` - The RtfDocument this RtfCell belongs to
        `row` - The RtfRow this RtfCell lies in
        `cell` - The Cell to base this RtfCell on

    - #### RtfCell

          protected RtfCell(RtfDocument doc,
                 RtfRow row,
                 PdfPCell cell)

      Constructs a RtfCell based on a Cell.
      Parameters:
        `doc` - The RtfDocument this RtfCell belongs to
        `row` - The RtfRow this RtfCell lies in
        `cell` - The PdfPCell to base this RtfCell on
      Since:
        2.1.3

  - ### Method Detail

    - #### importCell

          private void importCell(Cell cell)

      Imports the Cell properties into the RtfCell
      Parameters:
        `cell` - The Cell to import

    - #### importCell

          private void importCell(PdfPCell cell)

      Imports the Cell properties into the RtfCell
      Parameters:
        `cell` - The PdfPCell to import
      Since:
        2.1.3

    - #### writeDefinition

          public void writeDefinition(java.io.OutputStream result)
                               throws java.io.IOException

      Write the cell definition part of this RtfCell
      Specified by:
        `writeDefinition` in interface `RtfExtendedElement`
      Parameters:
        `result` - The `OutputStream` to write the element definition to
      Throws:
        `java.io.IOException`

    - #### writeContent

          public void writeContent(java.io.OutputStream result)
                            throws java.io.IOException

      Write the content of this RtfCell
      Specified by:
        `writeContent` in interface `RtfBasicElement`
      Parameters:
        `result` - The `OutputStream` to write the content to
      Throws:
        `java.io.IOException`

    - #### setCellRight

          protected void setCellRight(int cellRight)

      Sets the right margin of this cell. Used in merge operations
      Parameters:
        `cellRight` - The right margin to use

    - #### getCellRight

          protected int getCellRight()

      Gets the right margin of this RtfCell
      Returns:
        The right margin of this RtfCell.

    - #### setCellWidth

          protected void setCellWidth(int cellWidth)

      Sets the cell width of this RtfCell. Used in merge operations.
      Parameters:
        `cellWidth` - The cell width to use

    - #### getCellWidth

          protected int getCellWidth()

      Gets the cell width of this RtfCell
      Returns:
        The cell width of this RtfCell

    - #### getCellpadding

          protected int getCellpadding()

      Gets the cell padding of this RtfCell
      Returns:
        The cell padding of this RtfCell

    - #### getBorders

          protected RtfBorderGroup getBorders()

      Gets the borders of this RtfCell
      Returns:
        The borders of this RtfCell

    - #### setBorders

          public void setBorders(RtfBorderGroup borderGroup)

      Set the borders of this RtfCell
      Parameters:
        `borderGroup` - The RtfBorderGroup to use as borders

    - #### getRtfBackgroundColor

          protected RtfColor getRtfBackgroundColor()

      Get the background color of this RtfCell
      Returns:
        The background color of this RtfCell

    - #### setCellMergeChild

          protected void setCellMergeChild(RtfCell mergeParent)

      Merge this cell into the parent cell.
      Parameters:
        `mergeParent` - The RtfCell to merge with

    - #### setRtfDocument

          public void setRtfDocument(RtfDocument doc)

      Sets the RtfDocument this RtfCell belongs to
      Specified by:
        `setRtfDocument` in interface `RtfBasicElement`
      Parameters:
        `doc` - The RtfDocument to use

    - #### setInTable

          public void setInTable(boolean inTable)

      Unused
      Specified by:
        `setInTable` in interface `RtfBasicElement`
      Parameters:
        `inTable` -

    - #### setInHeader

          public void setInHeader(boolean inHeader)

      Sets whether this RtfCell is in a header
      Specified by:
        `setInHeader` in interface `RtfBasicElement`
      Parameters:
        `inHeader` - `True` if this RtfCell is in a header, `false` otherwise

    - #### isInHeader

          public boolean isInHeader()

      Gets whether this `RtfCell` is in a header
      Returns:
        `True` if this `RtfCell` is in a header, `false` otherwise
      Since:
        2.1.0

    - #### intToByteArray

          private byte[] intToByteArray(int i)

      Transforms an integer into its String representation and then returns the bytes of that string.
      Parameters:
        `i` - The integer to convert
      Returns:
        A byte array representing the integer

    - #### isDeleted

          public boolean isDeleted()

      Checks whether this RtfCell is a placeholder for a table cell that has been removed due to col/row spanning.
      Returns:
        `True` if this RtfCell is deleted, `false` otherwise.