Class Cell

  • All Implemented Interfaces:
    Element, TextElementArray

    public class Cell
    extends Rectangle
    implements TextElementArray
    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

        private java.util.ArrayList arrayList
        The ArrayList of Elements that are part of the content of the Cell.
      • horizontalAlignment

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

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

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

        private boolean percentage
      • colspan

        private int colspan
        The colspan of the cell.
      • rowspan

        private int rowspan
        The rowspan of the cell.
      • leading

        private float leading
        The leading of the content inside the cell.
      • header

        private boolean header
        Is this Cell a header?
      • maxLines

        private 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)
      • showTruncation

        private 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)
      • useAscender

        private 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

        private 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

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

        private boolean groupChange
        Does this Cell force a group change?
    • Constructor Detail

      • Cell

        public Cell()
        Constructs an empty Cell.
      • Cell

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

        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

      • 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 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
      • setHorizontalAlignment

        public void setHorizontalAlignment​(int value)
        Sets the horizontal alignment.
        Parameters:
        value - the new value
      • setHorizontalAlignment

        public void setHorizontalAlignment​(java.lang.String alignment)
        Sets the alignment of this cell. This methods allows you to set the alignment as a String.
        Parameters:
        alignment - the new alignment as a String
      • getVerticalAlignment

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

        public void setVerticalAlignment​(int value)
        Sets the vertical alignment.
        Parameters:
        value - the new value
      • setVerticalAlignment

        public void setVerticalAlignment​(java.lang.String alignment)
        Sets the alignment of this paragraph.
        Parameters:
        alignment - the new alignment as a String
      • 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
      • getWidth

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public boolean isUseBorderPadding()
        Gets the value of useBorderPadding.
        Returns:
        useBorderPadding
      • 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

        private 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

        private 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

        private 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​(java.lang.Object o)
        Add an Object to this cell.
        Specified by:
        add in interface TextElementArray
        Parameters:
        o - the object to add
        Returns:
        always true
      • getDummyCell

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

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

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

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

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

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

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

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

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