Interface AuthorTableColumnWidthProvider

    • Method Detail

      • getCellWidth

        java.util.List<WidthRepresentation> getCellWidth​(AuthorElement cellElement,
                                                         int colNumberStart,
                                                         int colSpan)
        Get the width representation for the cell represented by the cellElement.
        For example for a CALS table cell the list with the width representations is obtained by computing the column span and then determining the WidthRepresentation for each column the cell spans across.
        Parameters:
        cellElement - The node that represents a table cell in CSS.
        colNumberStart - The column number the cell starts at.
        colSpan - The column span of the cell.
        Returns:
        The list with the WidthRepresentation of the specified cell element or null if the cell width cannot be computed. If the cell spans over multiple columns then the returned list will contain one WidthRepresentation for each column the cell spans over.
      • init

        void init​(AuthorElement tableElement)
        This method is called when starting to compute the layout for a table. Its intended to extract information from the element representing the table only once, not on every getColSpan() or getRowSpan() call.
        Example: for a DocBook table we identify and cache the 'colspec' and 'spanspec' elements from that table. A new instance of the table column width provider is used for every table in a document so cached data cannot be reused between different tables.
        Parameters:
        tableElement - The element representing a table (it has the CSS display property set on 'table').
      • commitColumnWidthModifications

        void commitColumnWidthModifications​(AuthorDocumentController authorDocumentController,
                                            WidthRepresentation[] colWidths,
                                            java.lang.String tableCellsTagName)
                                     throws AuthorOperationException
        Updates the column widths in the document and in the column layout model.
        For example, for the DocBook CALS tables the method updates the columns width specifications in the source document by setting the colwidth attribute value of the colspec elements. New colspec elements will be added if needed.
        Parameters:
        authorDocumentController - The AuthorDocumentController used to commit the table modifications in the document.
        colWidths - The new column WidthRepresentation to set. The column widths must be ordered according to the corresponding column numbers.
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. 'entry' for CALS or 'td' for HTML).
        Throws:
        AuthorOperationException - If the operation fails.
      • commitTableWidthModification

        void commitTableWidthModification​(AuthorDocumentController authorDocumentController,
                                          int newTableWidth,
                                          java.lang.String tableCellsTagName)
                                   throws AuthorOperationException
        Commit the table width modification.
        For example in the case of DocBook HTML tables sets the width attribute value of the table element.
        Parameters:
        authorDocumentController - The AuthorDocumentController used to commit the table width modifications in the document.
        newTableWidth - The new table WidthRepresentation to set. The value is given in pixels.
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. 'entry' for CALS or 'td' for HTML).
        Throws:
        AuthorOperationException - If the operation fails.
      • isTableAcceptingWidth

        boolean isTableAcceptingWidth​(java.lang.String tableCellsTagName)
        Used to determine if the table accepts width specification.
        For example, for the DocBook CALS tables which do not accept an width attribute the method will return false.
        Parameters:
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. 'entry' for CALS or 'td' for HTML).
        Returns:
        true if the table type denoted by the tableCellsTagName accepts width specification of any kind.
      • getTableWidth

        WidthRepresentation getTableWidth​(java.lang.String tableCellsTagName)
        Returns a non null WidthRepresentation if the table width is currently known.
        For the DocBook HTML tables it returns the WidthRepresentation obtained by analyzing the width attribute value of the table element.
        Parameters:
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. 'entry' for CALS or 'td' for HTML).
        Returns:
        A non null value if the table width is specified. Otherwise null.
      • isTableAndColumnsResizable

        boolean isTableAndColumnsResizable​(java.lang.String tableCellsTagName)
        This method is used to check if the table and/or table columns can be resized.
        For example in the case of the DocBook CALS tables will return true only if the given table cells tag name is equal to 'entry'.
        Parameters:
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. CALS or HTML).
        Returns:
        true if the size of the table or the table cells can be adjusted.
      • isAcceptingFixedColumnWidths

        boolean isAcceptingFixedColumnWidths​(java.lang.String tableCellsTagName)
        Check if the table column widths can be represented as fixed values.
        Parameters:
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. CALS or HTML).
        Returns:
        true if the table column widths can be represented in fixed values.
      • isAcceptingProportionalColumnWidths

        boolean isAcceptingProportionalColumnWidths​(java.lang.String tableCellsTagName)
        Check if the table column widths can be represented as proportional values.
        Parameters:
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. CALS or HTML).
        Returns:
        true if the table column widths can be represented in proportional values.
      • isAcceptingPercentageColumnWidths

        boolean isAcceptingPercentageColumnWidths​(java.lang.String tableCellsTagName)
        Check if the table column widths can be represented as percentage values.
        Parameters:
        tableCellsTagName - The cells tag name. Used to identify the table type (e.g. CALS or HTML).
        Returns:
        true if the table column widths can be represented in percentage values.