Class RtfTableCell

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

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

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

  • Field Details

    • DEFAULT_CELL_WIDTH

      public static final int DEFAULT_CELL_WIDTH
      default cell width (in twips ??)
      See Also:
    • NO_MERGE

      public static final int NO_MERGE
      cell merging: this cell is not merged
      See Also:
    • MERGE_START

      public static final int MERGE_START
      cell merging: this cell is the start of a range of merged cells
      See Also:
    • 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:
  • Method Details

    • 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