Class GridUnit

  • Direct Known Subclasses:
    EmptyGridUnit, PrimaryGridUnit

    public class GridUnit
    extends java.lang.Object
    This class represents one grid unit inside a table.
    • Field Detail

      • FIRST_IN_PART

        public static final int FIRST_IN_PART
        Indicates that the grid unit is in the first row of the table part (header, footer, body).
        See Also:
        Constant Field Values
      • LAST_IN_PART

        public static final int LAST_IN_PART
        Indicates that the grid unit is in the last row of the table part (header, footer, body).
        See Also:
        Constant Field Values
      • KEEP_WITH_NEXT_PENDING

        public static final int KEEP_WITH_NEXT_PENDING
        Indicates that the primary grid unit has a pending keep-with-next.
        See Also:
        Constant Field Values
      • KEEP_WITH_PREVIOUS_PENDING

        public static final int KEEP_WITH_PREVIOUS_PENDING
        Indicates that the primary grid unit has a pending keep-with-previous.
        See Also:
        Constant Field Values
      • cell

        protected TableCell cell
        Table cell which occupies this grid unit
      • row

        private TableRow row
        Table row occupied by this grid unit (may be null).
      • colSpanIndex

        private int colSpanIndex
        index of grid unit within cell in column direction
      • rowSpanIndex

        private int rowSpanIndex
        index of grid unit within cell in row direction
      • flags

        private byte flags
        flags for the grid unit
      • collapsingBorderModel

        protected CollapsingBorderModel collapsingBorderModel
        The border model helper associated with the table
    • Constructor Detail

      • GridUnit

        protected GridUnit​(Table table,
                           int colSpanIndex,
                           int rowSpanIndex)
        Creates a new grid unit.
        Parameters:
        table - the containing table
        colSpanIndex - index of this grid unit in the span, in column direction
        rowSpanIndex - index of this grid unit in the span, in row direction
      • GridUnit

        protected GridUnit​(TableCell cell,
                           int colSpanIndex,
                           int rowSpanIndex)
        Creates a new grid unit.
        Parameters:
        cell - table cell which occupies this grid unit
        colSpanIndex - index of this grid unit in the span, in column direction
        rowSpanIndex - index of this grid unit in the span, in row direction
      • GridUnit

        GridUnit​(PrimaryGridUnit primary,
                 int colSpanIndex,
                 int rowSpanIndex)
        Creates a new grid unit.
        Parameters:
        primary - the before-start grid unit of the cell containing this grid unit
        colSpanIndex - index of this grid unit in the span, in column direction
        rowSpanIndex - index of this grid unit in the span, in row direction
      • GridUnit

        private GridUnit​(int colSpanIndex,
                         int rowSpanIndex)
    • Method Detail

      • setBorders

        private void setBorders​(Table table)
      • setBordersFromCell

        protected void setBordersFromCell()
        Prepares the borders of this grid unit for upcoming resolution, in the collapsing model.
      • getCell

        public TableCell getCell()
        Returns the table cell associated with this grid unit.
        Returns:
        the table cell
      • getRow

        public TableRow getRow()
        Returns the fo:table-row element (if any) this grid unit belongs to.
        Returns:
        the row containing this grid unit, or null if there is no fo:table-row element in the corresponding table-part
      • getPrimary

        public PrimaryGridUnit getPrimary()
        Returns the before-start grid unit of the cell containing this grid unit.
        Returns:
        the before-start grid unit of the cell containing this grid unit.
      • isPrimary

        public boolean isPrimary()
        Is this grid unit the before-start grid unit of the cell?
        Returns:
        true if this grid unit is the before-start grid unit of the cell
      • isEmpty

        public boolean isEmpty()
        Does this grid unit belong to an empty cell?
        Returns:
        true if this grid unit belongs to an empty cell
      • isLastGridUnitColSpan

        public boolean isLastGridUnitColSpan()
        Returns:
        true if the grid unit is the last in column spanning direction
      • isLastGridUnitRowSpan

        public boolean isLastGridUnitRowSpan()
        Returns:
        true if the grid unit is the last in row spanning direction
      • getRowSpanIndex

        public int getRowSpanIndex()
        Returns:
        the index of the grid unit inside a cell in row direction
      • getColSpanIndex

        public int getColSpanIndex()
        Returns:
        the index of the grid unit inside a cell in column direction
      • getBorderStart

        public CommonBorderPaddingBackground.BorderInfo getBorderStart()
        Returns the resolved border-start of this grid unit, in the collapsing-border model.
        Returns:
        the corresponding border
      • resolveBorder

        void resolveBorder​(GridUnit other,
                           int side)
        Resolve collapsing borders for the given cell. Used in case of the collapsing border model.
        Parameters:
        other - neighbouring grid unit
        side - the side to resolve (one of CommonBorderPaddingBackground.BEFORE|AFTER|START|END)
      • integrateBorderSegment

        void integrateBorderSegment​(int side,
                                    TableFObj parent,
                                    boolean withNormal,
                                    boolean withLeadingTrailing,
                                    boolean withRest)
        For the given side, integrates in the conflict resolution the border segment of the given parent element.
        Parameters:
        side - the side to consider (either CommonBorderPaddingBackground.BEFORE or AFTER)
        parent - a table element whose corresponding border coincides on the given side
      • integrateBorderSegment

        void integrateBorderSegment​(int side,
                                    TableFObj parent)
        For the given side, integrates in the conflict resolution the border segment of the given parent element.
        Parameters:
        side - the side to consider (one of CommonBorderPaddingBackground.BEFORE|AFTER|START|END)
        parent - a table element whose corresponding border coincides on the given side
      • integrateBorderSegment

        void integrateBorderSegment​(int side,
                                    BorderSpecification segment)
        For the given side, integrates in the conflict resolution the given border segment.
        Parameters:
        side - the side to consider (one of CommonBorderPaddingBackground.START|END)
        segment - a border specification to integrate at the given side
      • integrateCompetingBorder

        void integrateCompetingBorder​(int side,
                                      ConditionalBorder competitor,
                                      boolean withNormal,
                                      boolean withLeadingTrailing,
                                      boolean withRest)
      • getFlag

        public boolean getFlag​(int which)
        Returns a flag for this GridUnit.
        Parameters:
        which - the requested flag
        Returns:
        the value of the flag
      • setFlag

        public void setFlag​(int which,
                            boolean value)
        Sets a flag on a GridUnit.
        Parameters:
        which - the flag to set
        value - the new value for the flag
      • setFlag

        public void setFlag​(int which)
        Sets the given flag on this grid unit.
        Parameters:
        which - the flag to set
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object