Class Cell

  • All Implemented Interfaces:
    WithHorizontalAlignment, WithVerticalAlignment, Element, TextElementArray

    public class Cell
    extends TableRectangle
    implements TextElementArray, WithHorizontalAlignment, WithVerticalAlignment
    A Cell is a Rectangle containing other Elements.

    A Cell must be added to a Table. The Table will place the Cell in a Row.

    Example:

     Table table = new Table(3); table.setBorderWidth(1); table.setBorderColor(new Color(0, 0, 255));
     table.setCellpadding(5); table.setCellspacing(5);
     Cell cell = new Cell("header");
     cell.setHeader(true);
     cell.setColspan(3);
     table.addCell(cell);
     cell = new Cell("example cell with colspan 1 and rowspan 2");
     cell.setRowspan(2);
     cell.setBorderColor(new Color(255, 0, 0));
     table.addCell(cell); table.addCell("1.1"); table.addCell("2.1"); table.addCell("1.2"); table.addCell("2.2");
     
    See Also:
    Rectangle, Element, Table, Row
    • Field Detail

      • arrayList

        protected java.util.List<Element> arrayList
        The ArrayList of Elements that are part of the content of the Cell.
      • horizontalAlignment

        protected int horizontalAlignment
        The horizontal alignment of the cell content.
      • verticalAlignment

        protected int verticalAlignment
        The vertical alignment of the cell content.
      • width

        protected float width
        The width of the cell as a String. It can be an absolute value "100" or a percentage "20%".
      • percentage

        protected boolean percentage
      • colspan

        protected int colspan
        The colspan of the cell.
      • rowspan

        protected int rowspan
        The rowspan of the cell.
      • header

        protected boolean header
        Is this Cell a header?
      • maxLines

        protected int maxLines
        Maximum number of lines allowed in the cell. The default value of this property is not to limit the maximum number of lines (contributed by dperezcar@fcc.es)
      • useAscender

        protected boolean useAscender
        Indicates that the largest ascender height should be used to determine the height of the first line. Note that this only has an effect when rendered to PDF. Setting this to true can help with vertical alignment problems.
      • useDescender

        protected boolean useDescender
        Indicates that the largest descender height should be added to the height of the last line (so characters like y don't dip into the border). Note that this only has an effect when rendered to PDF.
      • useBorderPadding

        protected boolean useBorderPadding
        Adjusts the cell contents to compensate for border widths. Note that this only has an effect when rendered to PDF.
      • groupChange

        protected boolean groupChange
        Does this Cell force a group change?
      • leading

        float leading
        The leading of the content inside the cell.
      • showTruncation

        java.lang.String showTruncation
        If a truncation happens due to the maxLines property, then this text will be added to indicate a truncation has happened. Default value is null, and means avoiding marking the truncation. A useful value of this property could be e.g. "..." (contributed by dperezcar@fcc.es)
    • Constructor Detail

      • Cell

        public Cell()
        Constructs an empty Cell.
      • Cell

        public Cell​(boolean dummy)
        Constructs an empty Cell (for internal use only).
        Parameters:
        dummy - a dummy value
      • Cell

        public Cell​(java.lang.String content)
        Constructs a Cell with a certain content.

        The String will be converted into a Paragraph.

        Parameters:
        content - a String
      • Cell

        public Cell​(Element element)
             throws BadElementException
        Constructs a Cell with a certain Element.

        if the element is a ListItem, Row or Cell, an exception will be thrown.

        Parameters:
        element - the element
        Throws:
        BadElementException - when the creator was called with a ListItem, Row or Cell
    • Method Detail

      • getDummyCell

        private static Cell getDummyCell()
        Get dummy cell used when merging inner tables.
        Returns:
        a cell with colspan 3 and no border
      • process

        public boolean process​(ElementListener listener)
        Processes the element by adding it (or the different parts) to an ElementListener.
        Specified by:
        process in interface Element
        Overrides:
        process in class Rectangle
        Parameters:
        listener - an ElementListener
        Returns:
        true if the element was processed successfully
      • type

        public int type()
        Gets the type of the text element.
        Specified by:
        type in interface Element
        Overrides:
        type in class Rectangle
        Returns:
        a type
      • getChunks

        public java.util.ArrayList<Element> getChunks()
        Gets all the chunks in this element.
        Specified by:
        getChunks in interface Element
        Overrides:
        getChunks in class Rectangle
        Returns:
        an ArrayList
      • getHorizontalAlignment

        public int getHorizontalAlignment()
        Gets the horizontal alignment.
        Returns:
        a value
      • getVerticalAlignment

        public int getVerticalAlignment()
        Gets the vertical alignment.
        Returns:
        a value
      • getWidth

        public float getWidth()
        Gets the width.
        Overrides:
        getWidth in class Rectangle
        Returns:
        the width
      • setWidth

        public void setWidth​(float value)
        Sets the width.
        Parameters:
        value - the new value
      • setWidth

        public void setWidth​(java.lang.String value)
        Sets the width. It can be an absolute value "100" or a percentage "20%"
        Parameters:
        value - the new value
      • getWidthAsString

        public java.lang.String getWidthAsString()
        Gets the width as a String.
        Returns:
        a value
      • getColspan

        public int getColspan()
        Gets the colspan.
        Returns:
        a value
      • setColspan

        public void setColspan​(int value)
        Sets the colspan.
        Parameters:
        value - the new value
      • getRowspan

        public int getRowspan()
        Gets the rowspan.
        Returns:
        a value
      • setRowspan

        public void setRowspan​(int value)
        Sets the rowspan.
        Parameters:
        value - the new value
      • getLeading

        public float getLeading()
        Gets the leading.
        Returns:
        a value
      • setLeading

        public void setLeading​(float value)
        Sets the leading.
        Parameters:
        value - the new value
      • isHeader

        public boolean isHeader()
        Is this Cell a header?
        Returns:
        a value
      • setHeader

        public void setHeader​(boolean value)
        Sets header.
        Parameters:
        value - the new value
      • getMaxLines

        public int getMaxLines()
        Getter for maxLines
        Returns:
        the maxLines value
      • setMaxLines

        public void setMaxLines​(int value)
        Setter for maxLines
        Parameters:
        value - the maximum number of lines
      • getShowTruncation

        public java.lang.String getShowTruncation()
        Getter for showTruncation
        Returns:
        the showTruncation value
      • setShowTruncation

        public void setShowTruncation​(java.lang.String value)
        Setter for showTruncation
        Parameters:
        value - Can be null for avoiding marking the truncation.
      • isUseAscender

        public boolean isUseAscender()
        Gets the value of useAscender
        Returns:
        useAscender
      • setUseAscender

        public void setUseAscender​(boolean use)
        Sets the value of useAscender.
        Parameters:
        use - use ascender height if true
      • isUseDescender

        public boolean isUseDescender()
        gets the value of useDescender
        Returns:
        useDescender
      • setUseDescender

        public void setUseDescender​(boolean use)
        Sets the value of useDescender.
        Parameters:
        use - use descender height if true
      • isUseBorderPadding

        public boolean isUseBorderPadding()
        Gets the value of useBorderPadding.
        Returns:
        useBorderPadding
      • setUseBorderPadding

        public void setUseBorderPadding​(boolean use)
        Sets the value of useBorderPadding.
        Parameters:
        use - adjust layout for borders if true
      • getGroupChange

        public boolean getGroupChange()
        Does this Cell force a group change?
        Returns:
        a value
      • setGroupChange

        public void setGroupChange​(boolean value)
        Sets group change.
        Parameters:
        value - the new value
      • size

        public int size()
        Gets the number of Elements in the Cell.
        Returns:
        a size.
      • getElements

        public java.util.Iterator getElements()
        Gets an iterator of Elements.
        Returns:
        an Iterator.
      • clear

        public void clear()
        Clears all the Elements of this Cell.
      • isEmpty

        public boolean isEmpty()
        Checks if the Cell is empty.
        Returns:
        false if there are non-empty Elements in the Cell.
      • fill

        void fill()
        Makes sure there is at least 1 object in the Cell.

        Otherwise it might not be shown in the table.

      • isTable

        public boolean isTable()
        Checks if this Cell is a placeholder for a (nested) table.
        Returns:
        true if the only element in this cell is a table
      • addElement

        public void addElement​(Element element)
                        throws BadElementException
        Adds an element to this Cell.

        Remark: you can't add ListItems, Rows, Cells, JPEGs, GIFs or PNGs to a Cell.

        Parameters:
        element - The Element to add
        Throws:
        BadElementException - if the method was called with a ListItem, Row or Cell
      • add

        public boolean add​(Element o)
        Add an Object to this cell.
        Specified by:
        add in interface TextElementArray
        Parameters:
        o - the object to add
        Returns:
        always true
      • getTop

        public float getTop()
        This method throws an UnsupportedOperationException.
        Overrides:
        getTop in class Rectangle
        Returns:
        NA
      • setTop

        public void setTop​(int value)
        This method throws an UnsupportedOperationException.
        Parameters:
        value - NA
      • getBottom

        public float getBottom()
        This method throws an UnsupportedOperationException.
        Overrides:
        getBottom in class Rectangle
        Returns:
        NA
      • setBottom

        public void setBottom​(int value)
        This method throws an UnsupportedOperationException.
        Parameters:
        value - NA
      • getLeft

        public float getLeft()
        This method throws an UnsupportedOperationException.
        Overrides:
        getLeft in class Rectangle
        Returns:
        NA
      • setLeft

        public void setLeft​(int value)
        This method throws an UnsupportedOperationException.
        Parameters:
        value - NA
      • getRight

        public float getRight()
        This method throws an UnsupportedOperationException.
        Overrides:
        getRight in class Rectangle
        Returns:
        NA
      • setRight

        public void setRight​(int value)
        This method throws an UnsupportedOperationException.
        Parameters:
        value - NA
      • top

        public float top​(int margin)
        This method throws an UnsupportedOperationException.
        Parameters:
        margin - NA
        Returns:
        NA
      • bottom

        public float bottom​(int margin)
        This method throws an UnsupportedOperationException.
        Parameters:
        margin - NA
        Returns:
        NA
      • left

        public float left​(int margin)
        This method throws an UnsupportedOperationException.
        Parameters:
        margin - NA
        Returns:
        NA
      • right

        public float right​(int margin)
        This method throws an UnsupportedOperationException.
        Parameters:
        margin - NA
        Returns:
        NA