Class RtfTableCell

    • Field Detail

      • setCenter

        private boolean setCenter
      • setRight

        private boolean setRight
      • id

        private int id
      • TABLE_CELL_PARAGRAPH

        private static final java.lang.String TABLE_CELL_PARAGRAPH
        See Also:
        Constant Field Values
      • TABLE_CELL_NESTED_PARAGRAPH

        private static final java.lang.String TABLE_CELL_NESTED_PARAGRAPH
        See Also:
        Constant Field Values
      • DEFAULT_CELL_WIDTH

        public static final int DEFAULT_CELL_WIDTH
        default cell width (in twips ??)
        See Also:
        Constant Field Values
      • cellWidth

        private int cellWidth
        cell width in twips
      • widthOffset

        private int widthOffset
      • vMerge

        private int vMerge
        cell merging has three states
      • hMerge

        private int hMerge
      • 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
    • Constructor Detail

      • RtfTableCell

        RtfTableCell​(RtfTableRow parent,
                     java.io.Writer w,
                     int cellWidth,
                     int idNum)
              throws java.io.IOException
        Create an RTF element as a child of given container
        Throws:
        java.io.IOException
      • RtfTableCell

        RtfTableCell​(RtfTableRow parent,
                     java.io.Writer w,
                     int cellWidth,
                     RtfAttributes attrs,
                     int idNum)
              throws java.io.IOException
        Create an RTF element as a child of given container
        Throws:
        java.io.IOException
    • Method Detail

      • newParagraph

        public RtfParagraph newParagraph​(RtfAttributes attrs)
                                  throws java.io.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:
        java.io.IOException - for I/O problems
      • newImage

        public RtfExternalGraphic newImage()
                                    throws java.io.IOException
        Start a new external graphic after closing current paragraph, list and table
        Specified by:
        newImage in interface IRtfExternalGraphicContainer
        Returns:
        new RtfExternalGraphic object
        Throws:
        java.io.IOException - for I/O problems
      • newParagraph

        public RtfParagraph newParagraph()
                                  throws java.io.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:
        java.io.IOException - for I/O problems
      • newList

        public RtfList newList​(RtfAttributes attrib)
                        throws java.io.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:
        java.io.IOException - for I/O problems
      • newTable

        public RtfTable newTable​(ITableColumnsInfo tc)
                          throws java.io.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:
        java.io.IOException - for I/O problems
      • newTable

        public RtfTable newTable​(RtfAttributes attrs,
                                 ITableColumnsInfo tc)
                          throws java.io.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:
        java.io.IOException - for I/O problems
      • writeCellDef

        int writeCellDef​(int offset)
                  throws java.io.IOException
        used by RtfTableRow to write the cell definition control words
        Parameters:
        offset - sum of the widths of preceeding cells in same row
        Returns:
        offset + width of this cell
        Throws:
        java.io.IOException
      • writeRtfContent

        protected void writeRtfContent()
                                throws java.io.IOException
        Overriden to avoid writing any it's a merged cell.
        Overrides:
        writeRtfContent in class RtfContainer
        Throws:
        java.io.IOException - for I/O problems
      • writeRtfPrefix

        protected void writeRtfPrefix()
                               throws java.io.IOException
        Called before writeRtfContent; overriden to avoid writing any it's a merged cell.
        Overrides:
        writeRtfPrefix in class RtfElement
        Throws:
        java.io.IOException - for I/O problems
      • writeRtfSuffix

        protected void writeRtfSuffix()
                               throws java.io.IOException
        The "cell" control word marks the end of a cell
        Overrides:
        writeRtfSuffix in class RtfElement
        Throws:
        java.io.IOException - for I/O problems
      • closeCurrentParagraph

        private void closeCurrentParagraph()
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • closeCurrentList

        private void closeCurrentList()
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • closeCurrentTable

        private void closeCurrentTable()
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • closeCurrentExternalGraphic

        private void closeCurrentExternalGraphic()
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • closeAll

        private void closeAll()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • 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
      • getCellWidth

        int getCellWidth()
        get cell width
      • 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)
      • paragraphNeedsPar

        boolean paragraphNeedsPar​(RtfParagraph p)
        true if the "par" control word must be written for given RtfParagraph (which is not the case for the last non-empty paragraph of the cell)
      • getTextrun

        public RtfTextrun getTextrun()
                              throws java.io.IOException
        Returns the current RtfTextrun object. Opens a new one if necessary.
        Specified by:
        getTextrun in interface IRtfTextrunContainer
        Returns:
        The RtfTextrun object
        Throws:
        java.io.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