Class Table

All Implemented Interfaces:
Cloneable, Constants, ColumnNumberManagerHolder, BreakPropertySet, CommonAccessibilityHolder, WritingModeTraitsGetter

Class modelling the fo:table object.
  • Constructor Details

    • Table

      public Table(FONode parent)
      Construct a Table instance with the given FONode as parent.
      Parameters:
      parent - FONode that is the parent of this object
  • Method Details

    • bind

      public void bind(PropertyList pList) throws FOPException
      Bind property values from the property list to the FO node. Must be overridden in all FObj subclasses that have properties applying to it.
      Overrides:
      bind in class TableFObj
      Parameters:
      pList - the PropertyList where the properties can be found.
      Throws:
      FOPException - if there is a problem binding the values
    • startOfNode

      public void startOfNode() throws FOPException
      Called after processNode() is called. Subclasses can do additional processing.
      Overrides:
      startOfNode in class FObj
      Throws:
      FOPException - FOP Exception
    • validateChildNode

      protected void validateChildNode(Locator loc, String nsURI, String localName) throws ValidationException
      Checks to make sure, during SAX processing of input document, that the incoming node is valid for this (parent) node (e.g., checking to see that fo:table is not an immediate child of fo:root) called from FOTreeBuilder.startElement(String, String, String, Attributes) before constructing the child FObj.
      XSL Content Model: (marker*,table-column*,table-header?,table-footer?,table-body+)
      Overrides:
      validateChildNode in class FONode
      Parameters:
      loc - location in the FO source file
      nsURI - namespace of incoming node
      localName - name of the incoming node (without namespace prefix)
      Throws:
      ValidationException - if incoming node not valid for parent
    • endOfNode

      public void endOfNode() throws FOPException
      Primarily used for making final content model validation checks and/or informing the FOEventHandler that the end of this FO has been reached. The default implementation simply calls FONode.finalizeNode(), without sending any event to the FOEventHandler.

      Note: the recommended way to override this method in subclasses is

      super.endOfNode(); // invoke finalizeNode()

      getFOEventHandler().endXXX(); // send endOfNode() notification

      Overrides:
      endOfNode in class FObj
      Throws:
      FOPException - FOP Exception
    • finalizeNode

      public void finalizeNode() throws FOPException
      Finalize this node. This method can be overridden by subclasses to perform finishing tasks (cleanup, validation checks, ...) without triggering endXXX() events in the FOEventHandler. The method is called by the default FONode.endOfNode() implementation.
      Overrides:
      finalizeNode in class FONode
      Throws:
      FOPException - in case there was an error
    • addChildNode

      protected void addChildNode(FONode child) throws FOPException
      Adds a node as a child of this node. The default implementation of this method just ignores any child node being added.
      Overrides:
      addChildNode in class FObj
      Parameters:
      child - child node to be added to the childNodes of this node
      Throws:
      FOPException - if there's a problem during processing
    • getCommonAccessibility

      public CommonAccessibility getCommonAccessibility()
      Returns the accessibility properties.
      Specified by:
      getCommonAccessibility in interface CommonAccessibilityHolder
      Returns:
      the accessibility properties
    • getTable

      public Table getTable()
      Convenience method to returns a reference to the base Table instance.
      Overrides:
      getTable in class TableFObj
      Returns:
      the base table instance
    • isAutoLayout

      public boolean isAutoLayout()
      Returns:
      true of table-layout="auto"
    • getColumns

      public List getColumns()
      Returns the list of table-column elements.
      Returns:
      a list of TableColumn elements, may contain null elements
    • getColumn

      public TableColumn getColumn(int index)
      Returns the column at the given index.
      Parameters:
      index - index of the column to be retrieved, 0-based
      Returns:
      the corresponding column (may be an implicitly created column)
    • getNumberOfColumns

      public int getNumberOfColumns()
      Returns the number of columns of this table.
      Returns:
      the number of columns, implicit or explicit, in this table
    • getTableHeader

      public TableHeader getTableHeader()
      Returns:
      the body for the table-header.
    • getTableFooter

      public TableFooter getTableFooter()
      Returns:
      the body for the table-footer.
    • omitHeaderAtBreak

      public boolean omitHeaderAtBreak()
      Returns:
      true if the table-header should be omitted at breaks
    • omitFooterAtBreak

      public boolean omitFooterAtBreak()
      Returns:
      true if the table-footer should be omitted at breaks
    • getInlineProgressionDimension

      public LengthRangeProperty getInlineProgressionDimension()
      Returns:
      the "inline-progression-dimension" FO trait.
    • getBlockProgressionDimension

      public LengthRangeProperty getBlockProgressionDimension()
      Returns:
      the "block-progression-dimension" FO trait.
    • getCommonMarginBlock

      public CommonMarginBlock getCommonMarginBlock()
      Returns:
      the Common Margin Properties-Block.
    • getCommonBorderPaddingBackground

      public CommonBorderPaddingBackground getCommonBorderPaddingBackground()
      Specified by:
      getCommonBorderPaddingBackground in class TableFObj
      Returns:
      the Common Border, Padding, and Background Properties.
    • getBreakAfter

      public int getBreakAfter()
      Specified by:
      getBreakAfter in interface BreakPropertySet
      Returns:
      the "break-after" FO trait.
    • getBreakBefore

      public int getBreakBefore()
      Specified by:
      getBreakBefore in interface BreakPropertySet
      Returns:
      the "break-before" FO trait.
    • getKeepWithNext

      public KeepProperty getKeepWithNext()
      Returns:
      the "keep-with-next" FO trait.
    • getKeepWithPrevious

      public KeepProperty getKeepWithPrevious()
      Returns:
      the "keep-with-previous" FO trait.
    • getKeepTogether

      public KeepProperty getKeepTogether()
      Returns:
      the "keep-together" FO trait.
    • mustKeepTogether

      public boolean mustKeepTogether()
      Convenience method to check if a keep-together constraint is specified.
      Returns:
      true if keep-together is active.
    • getBorderCollapse

      public int getBorderCollapse()
      Returns:
      the "border-collapse" FO trait.
    • isSeparateBorderModel

      public boolean isSeparateBorderModel()
      Returns:
      true if the separate border model is active
    • getBorderSeparation

      public LengthPairProperty getBorderSeparation()
      Returns:
      the "border-separation" FO trait.
    • getInlineProgressionDirection

      public Direction getInlineProgressionDirection()
      Specified by:
      getInlineProgressionDirection in interface WritingModeTraitsGetter
      Returns:
      the "inline-progression-direction" trait
    • getBlockProgressionDirection

      public Direction getBlockProgressionDirection()
      Specified by:
      getBlockProgressionDirection in interface WritingModeTraitsGetter
      Returns:
      the "block-progression-direction" trait
    • getColumnProgressionDirection

      public Direction getColumnProgressionDirection()
      Specified by:
      getColumnProgressionDirection in interface WritingModeTraitsGetter
      Returns:
      the "column-progression-direction" trait
    • getRowProgressionDirection

      public Direction getRowProgressionDirection()
      Specified by:
      getRowProgressionDirection in interface WritingModeTraitsGetter
      Returns:
      the "row-progression-direction" trait
    • getShiftDirection

      public Direction getShiftDirection()
      Specified by:
      getShiftDirection in interface WritingModeTraitsGetter
      Returns:
      the "shift-direction" trait
    • getWritingMode

      public WritingMode getWritingMode()
      Specified by:
      getWritingMode in interface WritingModeTraitsGetter
      Returns:
      the "writing-mode" trait
    • getExplicitWritingMode

      public boolean getExplicitWritingMode()
      Specified by:
      getExplicitWritingMode in interface WritingModeTraitsGetter
      Returns:
      the "explicit-writing-mode" trait
    • getWidowContentLimit

      public Length getWidowContentLimit()
      Returns:
      the "fox:widow-content-limit" extension FO trait
    • getOrphanContentLimit

      public Length getOrphanContentLimit()
      Returns:
      the "fox:orphan-content-limit" extension FO trait
    • getLocalName

      public String getLocalName()
      Returns the local name (i.e. without namespace prefix) of the node
      Specified by:
      getLocalName in class FONode
      Returns:
      the local name of this node
    • getNameId

      public int getNameId()
      Returns the Constants class integer value of this node
      Overrides:
      getNameId in class FONode
      Returns:
      Constants.FO_TABLE
    • clone

      public FONode clone(FONode parent, boolean removeChildren) throws FOPException
      Performs a shallow cloning operation, sets the clone's parent, and optionally cleans the list of child nodes
      Overrides:
      clone in class FObj
      Parameters:
      parent - the intended parent of the clone
      removeChildren - if true, clean the list of child nodes
      Returns:
      the cloned FO node
      Throws:
      FOPException - if there's a problem while cloning the node
    • getColumnNumberManager

      public ColumnNumberManager getColumnNumberManager()
      Returns the encapsulated ColumnNumberManage instance.
      Specified by:
      getColumnNumberManager in interface ColumnNumberManagerHolder
      Returns:
      a ColumnNumberManager instance
    • collectDelimitedTextRanges

      protected Stack<DelimitedTextRange> collectDelimitedTextRanges(Stack<DelimitedTextRange> ranges, DelimitedTextRange currentRange)
      Description copied from class: FONode
      Collect the sequence of delimited text ranges, where each new range is pushed onto RANGES, where default implementation collects ranges of child nodes.
      Overrides:
      collectDelimitedTextRanges in class FONode
      Parameters:
      ranges - a stack of delimited text ranges
      currentRange - the current range or null (if none)
      Returns:
      the (possibly) updated stack of delimited text ranges
    • isBidiBoundary

      protected boolean isBidiBoundary(boolean propagate)
      Overrides:
      isBidiBoundary in class FObj