org.apache.fop.render.rtf.rtflib.rtfdoc

## Class RtfTableCell

- java.lang.Object
- - org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement
  - - org.apache.fop.render.rtf.rtflib.rtfdoc.RtfContainer
    - - org.apache.fop.render.rtf.rtflib.rtfdoc.RtfTableCell

- All Implemented Interfaces:
    IRtfExternalGraphicContainer, IRtfListContainer, IRtfParagraphContainer, IRtfTableContainer, IRtfTextrunContainer

      public class RtfTableCell
      extends RtfContainer
      implements IRtfParagraphContainer, IRtfListContainer, IRtfTableContainer, IRtfExternalGraphicContainer, IRtfTextrunContainer

  A cell in an RTF table, container for paragraphs, lists, etc.

  This work was authored by Bertrand Delacretaz (bdelacretaz@codeconsult.ch).

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_CELL_WIDTH` default cell width (in twips ??)
    `static int` | `MERGE_START` cell merging: this cell is the start of a range of merged cells
    `static int` | `MERGE_WITH_PREVIOUS` cell merging: this cell is part of (but not the start of) a range of merged cells
    `static int` | `NO_MERGE` cell merging: this cell is not merged

    - ### Fields inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement

      `attrib, parent, writer`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `finish()` The last paragraph break was just stored before, now the control word is really switched
    `int` | `getHMerge()`
    `RtfTableRow` | `getRow()` Get the parent row.
    `RtfTextrun` | `getTextrun()` Returns the current RtfTextrun object.
    `int` | `getVMerge()`
    `boolean` | `isEmpty()` A table cell always contains "useful" content, as it is here to take some space in a row.
    `RtfExternalGraphic` | `newImage()` Start a new external graphic after closing current paragraph, list and table
    `RtfList` | `newList(RtfAttributes attrib)` Start a new list after closing current paragraph, list and table
    `RtfParagraph` | `newParagraph()` Start a new paragraph with default attributes after closing current paragraph, list and table
    `RtfParagraph` | `newParagraph(RtfAttributes attrs)` Start a new paragraph after closing current current paragraph, list and table
    `RtfTable` | `newTable(ITableColumnsInfo tc)` Start a new nested table after closing current paragraph, list and table
    `RtfTable` | `newTable(RtfAttributes attrs, ITableColumnsInfo tc)` Start a new nested table after closing current paragraph, list and table
    `void` | `setHMerge(int mergeStatus)` Set horizontal cell merging status
    `void` | `setLastParagraph(RtfParagraphBreak parBreak)` The table cell decides whether or not a newly added paragraph break will be used to write the cell-end control word.
    `void` | `setVMerge(int mergeStatus)`
    `protected void` | `writeRtfContent()` Overriden to avoid writing any it's a merged cell.
    `protected void` | `writeRtfPrefix()` Called before writeRtfContent; overriden to avoid writing any it's a merged cell.
    `protected void` | `writeRtfSuffix()` The "cell" control word marks the end of a cell

    - ### Methods inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfContainer

      `addChild, findChildren, getChildCount, getChildren, okToWriteRtf, setChildren, setOptions, toString`

    - ### Methods inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement

      `close, getParentOfClass, getRtfAttributes, newLine, writeAttributes, writeControlWord, writeControlWordNS, writeExceptionInRtf, writeGroupMark, writeOneAttribute, writeOneAttributeNS, writeRtf, writeStarControlWord, writeStarControlWordNS`

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

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

- - ### Field Detail

    - #### DEFAULT_CELL_WIDTH

          public static final int DEFAULT_CELL_WIDTH

      default cell width (in twips ??)
      See Also:
        Constant Field Values

    - #### NO_MERGE

          public static final int NO_MERGE

      cell merging: this cell is not merged
      See Also:
        Constant Field Values

    - #### MERGE_START

          public static final int MERGE_START

      cell merging: this cell is the start of a range of merged cells
      See Also:
        Constant Field Values

    - #### MERGE_WITH_PREVIOUS

          public static final int MERGE_WITH_PREVIOUS

      cell merging: this cell is part of (but not the start of) a range of merged cells
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### newParagraph

          public RtfParagraph newParagraph(RtfAttributes attrs)
                                    throws IOException

      Start a new paragraph after closing current current paragraph, list and table
      Specified by:
        `newParagraph` in interface `IRtfParagraphContainer`
      Parameters:
        `attrs` - attributes of new RtfParagraph
      Returns:
        new RtfParagraph object
      Throws:
        `IOException` - for I/O problems

    - #### newImage

          public RtfExternalGraphic newImage()
                                      throws IOException

      Start a new external graphic after closing current paragraph, list and table
      Specified by:
        `newImage` in interface `IRtfExternalGraphicContainer`
      Returns:
        new RtfExternalGraphic object
      Throws:
        `IOException` - for I/O problems

    - #### newParagraph

          public RtfParagraph newParagraph()
                                    throws IOException

      Start a new paragraph with default attributes after closing current paragraph, list and table
      Specified by:
        `newParagraph` in interface `IRtfParagraphContainer`
      Returns:
        new RtfParagraph object
      Throws:
        `IOException` - for I/O problems

    - #### newList

          public RtfList newList(RtfAttributes attrib)
                          throws IOException

      Start a new list after closing current paragraph, list and table
      Specified by:
        `newList` in interface `IRtfListContainer`
      Parameters:
        `attrib` - attributes for new RtfList
      Returns:
        new RtfList object
      Throws:
        `IOException` - for I/O problems

    - #### newTable

          public RtfTable newTable(ITableColumnsInfo tc)
                            throws IOException

      Start a new nested table after closing current paragraph, list and table
      Specified by:
        `newTable` in interface `IRtfTableContainer`
      Parameters:
        `tc` - table column info for new RtfTable
      Returns:
        new RtfTable object
      Throws:
        `IOException` - for I/O problems

    - #### newTable

          public RtfTable newTable(RtfAttributes attrs,
                                   ITableColumnsInfo tc)
                            throws IOException

      Start a new nested table after closing current paragraph, list and table
      Specified by:
        `newTable` in interface `IRtfTableContainer`
      Parameters:
        `attrs` - attributes of new RtfTable
        `tc` - table column info for new RtfTable
      Returns:
        new RtfTable object
      Throws:
        `IOException` - for I/O problems

    - #### writeRtfContent

          protected void writeRtfContent()
                                  throws IOException

      Overriden to avoid writing any it's a merged cell.
      Overrides:
        `writeRtfContent` in class `RtfContainer`
      Throws:
        `IOException` - for I/O problems

    - #### writeRtfPrefix

          protected void writeRtfPrefix()
                                 throws IOException

      Called before writeRtfContent; overriden to avoid writing any it's a merged cell.
      Overrides:
        `writeRtfPrefix` in class `RtfElement`
      Throws:
        `IOException` - for I/O problems

    - #### writeRtfSuffix

          protected void writeRtfSuffix()
                                 throws IOException

      The "cell" control word marks the end of a cell
      Overrides:
        `writeRtfSuffix` in class `RtfElement`
      Throws:
        `IOException` - for I/O problems

    - #### setVMerge

          public void setVMerge(int mergeStatus)

      Parameters:
        `mergeStatus` - vertical cell merging status to set

    - #### getVMerge

          public int getVMerge()

      Returns:
        vertical cell merging status

    - #### setHMerge

          public void setHMerge(int mergeStatus)

      Set horizontal cell merging status
      Parameters:
        `mergeStatus` - mergeStatus to set

    - #### getHMerge

          public int getHMerge()

      Returns:
        horizontal cell merging status

    - #### isEmpty

          public boolean isEmpty()

      A table cell always contains "useful" content, as it is here to take some space in a row. Use containsText() to find out if there is really some useful content in the cell. TODO: containsText could use the original isEmpty implementation?
      Overrides:
        `isEmpty` in class `RtfContainer`
      Returns:
        false (always)

    - #### getTextrun

          public RtfTextrun getTextrun()
                                throws IOException

      Returns the current RtfTextrun object. Opens a new one if necessary.
      Specified by:
        `getTextrun` in interface `IRtfTextrunContainer`
      Returns:
        The RtfTextrun object
      Throws:
        `IOException` - Thrown when an IO-problem occurs

    - #### getRow

          public RtfTableRow getRow()

      Get the parent row.
      Returns:
        The parent row.

    - #### setLastParagraph

          public void setLastParagraph(RtfParagraphBreak parBreak)

      The table cell decides whether or not a newly added paragraph break will be used to write the cell-end control word. For nested tables it is not necessary.
      Parameters:
        `parBreak` - the paragraph break element

    - #### finish

          public void finish()

      The last paragraph break was just stored before, now the control word is really switched

Copyright © 2023 Apache Software Foundation. All rights reserved.