Class TableOperationsUtil


  • @API(type=INTERNAL,
         src=PUBLIC)
    public final class TableOperationsUtil
    extends java.lang.Object
    Utility class for table operations.
    • Method Detail

      • createCellXMLFragment

        public static java.lang.String createCellXMLFragment​(AuthorAccess authorAccess,
                                                             AuthorDocumentFragment[] fragments,
                                                             boolean cellsFragment,
                                                             java.lang.String cellElementName,
                                                             int currentFragmentIndex,
                                                             java.lang.String namespace,
                                                             AuthorTableHelper authorTableHelper,
                                                             java.lang.String... imposedAttributesFragments)
                                                      throws AuthorOperationException
        Create a cell fragment for a specific offset, having the name of the cell and a source fragment from which the attributes and content must be copied.
        Parameters:
        authorAccess - The author access.
        fragments - The list of all content fragments.
        cellsFragment - true if the fragments represents cells.
        cellElementName - The cell name.
        currentFragmentIndex - The index of the fragment that must be used for attributes and content.
        namespace - The cell namespace.
        authorTableHelper - Author table helper.
        imposedAttributesFragments - Imposed attributes for the created cell. Each fragment has the following form: "attribute_name=\"attribute_value\""
        Returns:
        The cell fragment.
        Throws:
        AuthorOperationException
      • isIgnoredAttribute

        public static boolean isIgnoredAttribute​(java.lang.String attrName,
                                                 AuthorTableHelper tableHelper)
        Check if the attribute should be ignored.
        Parameters:
        attrName - The attribute name.
        tableHelper - Author table helper
        Returns:
        true if the attribute should be ignored.
      • getContentFromFragment

        public static java.lang.String getContentFromFragment​(AuthorAccess authorAccess,
                                                              boolean cellsFragment,
                                                              AuthorDocumentFragment fragment)
        Get the given fragment content. If the cellsFragment parameter is true, the returned content represent the content of the cell, otherwise the fragment itself.
        Parameters:
        authorAccess - The author access.
        cellsFragment - true if the fragment represent a cell fragment
        fragment - The Author fragment.
        Returns:
        The fragment content.
      • nodeHasProperties

        public static boolean nodeHasProperties​(AuthorNode node,
                                                java.lang.String name,
                                                java.lang.String namespace)
        Check if the node has the given namespace and name
        Parameters:
        node - The node to check.
        name - The name to compare the node name with.
        namespace - The namespace to compare the node namespace with.
        Returns:
        true if the node has the given namespace and name.
      • getTableElementContainingOffset

        public static AuthorElement getTableElementContainingOffset​(int offset,
                                                                    AuthorAccess access,
                                                                    java.lang.String... tableClassValues)
        Returns the element representing the table that contains the given offset and has the given properties (name, class attribute). Used for DITA and DITA Maps table operations.
        Parameters:
        offset - The offset to search the parent table element for.
        access - Access to Author operations.
        tableClassValues - Possible table class attributes values.
        Returns:
        The table element that contains the given offset.
      • getTableElementContainingOffset

        public static AuthorElement getTableElementContainingOffset​(int offset,
                                                                    java.lang.String namespace,
                                                                    AuthorAccess access,
                                                                    java.lang.String... tableElementNames)
        Returns the element representing the table that contains the given offset and has the given properties (name, namespace).
        Parameters:
        offset - The offset to search the parent table element for.
        namespace - The table node namespace.
        access - Access to Author operations.
        tableElementNames - Possible table element names.
        Returns:
        The table element that contains the given offset.
      • isChoiceTableAllowed

        public static boolean isChoiceTableAllowed​(AuthorAccess authorAccess)
        Check if a choice table can be inserted in the current context.
        Parameters:
        authorAccess - The author access.
        Returns:
        true if a choice table can be inserted in the given context.
      • areOtherTablesThanChoicetableAllowed

        public static boolean areOtherTablesThanChoicetableAllowed​(AuthorAccess authorAccess)
        Check if a table other than choicetable is allowed here.
        Parameters:
        authorAccess - The author access.
        Returns:
        true if a choice table can be inserted in the given context.
      • isPropertiesTableGlobalElement

        public static boolean isPropertiesTableGlobalElement​(AuthorAccess authorAccess)
        Check if a properties table is allowed as a global element.
        Parameters:
        authorAccess - The author access.
        Returns:
        true if the "properties" table element is a global element of the schema.
      • getTableElementsOfTypeFromSelection

        public static java.util.List<AuthorElement> getTableElementsOfTypeFromSelection​(AuthorAccess authorAccess,
                                                                                        int type,
                                                                                        TableHelper tableHelper,
                                                                                        AuthorElement tableElement)
        Collects all the table elements having the given type, determined by the selection intervals.
        Parameters:
        authorAccess - The author access
        type - The type of the elements to be collected. Can be one of TYPE_ prefixed constants from TableHelperConstants.
        tableHelper - Utility class to determine information about table nodes.
        tableElement - The table parent elements.
        Returns:
        A list with all the elements used to populate the tabs in "Table Properties" dialog.
      • getTableElementsOfType

        public static java.util.List<AuthorElement> getTableElementsOfType​(AuthorAccess authorAccess,
                                                                           java.util.List<java.lang.Integer[]> selections,
                                                                           int type,
                                                                           TableHelper tableHelper)
        Collects all the table elements having the given type, determined by the selection intervals.
        Parameters:
        authorAccess - The author access
        selections - The currently selected nodes. They can be mixed.
        type - The type of the elements to be collected. Can be one of TYPE_ prefixed constants from TableHelperConstants.
        tableHelper - Utility class to determine information about table nodes.
        Returns:
        A list with all the elements used to populate the tabs in "Table Properties" dialog.
      • computeElementsList

        public static void computeElementsList​(java.util.List<AuthorElement> elementsList,
                                               AuthorElement node,
                                               int startOffset,
                                               int endOffset,
                                               int type,
                                               boolean fullySelected,
                                               TableHelper tableHelper)
        Computes all the nodes of the given type starting from the given node, which are in the given selection.
        Parameters:
        elementsList - The list which will contain the elements.
        node - The starting node.
        startOffset - Selection start.
        endOffset - Selection end.
        type - The elements type. Can be one of TYPE_ prefixed constants from TableHelperConstants.
        fullySelected - true if the nodes should be entire contained by the selection.
        tableHelper - Utility class to determine information about table nodes.
      • getElementAncestor

        public static AuthorElement getElementAncestor​(AuthorNode node,
                                                       int type,
                                                       TableHelper tableHelper)
        Search for an ancestor AuthorNode with the specified type.
        Parameters:
        node - The starting node.
        type - The type of the ancestor.
        tableHelper - Utility class to determine information about table nodes.
        Returns:
        The ancestor node of the given node or the node itself if the type matches.
      • getChildElements

        public static void getChildElements​(AuthorElement node,
                                            int type,
                                            java.util.List<AuthorElement> children,
                                            TableHelper tableHelper)
        * Obtain a list of children with the given type.
        Parameters:
        node - The parent node.
        type - The child elements type. Can be one of TYPE_ prefixed constants from TableHelperConstants.
        children - The list with collected children. Empty when the function is called.
        tableHelper - Utility class to determine information about table nodes.
      • getCellIndexes

        public static java.util.Map<AuthorElement,​java.util.Set<java.lang.Integer>> getCellIndexes​(java.util.List<AuthorElement> cells,
                                                                                                         AuthorAccess authorAccess,
                                                                                                         TableHelper tableHelper,
                                                                                                         boolean isCals)
        Obtain the indexes for selected cells.
        Parameters:
        cells - The selected cells.
        authorAccess - The author access.
        tableHelper - Utility class to determine information about table nodes.
        isCals - true if it is a CALS table
        Returns:
        A map between the table element and a set of the cell's column indexes.
      • placeCaretInFirstCell

        public static void placeCaretInFirstCell​(AuthorAccess authorAccess,
                                                 TableInfo tableInfo,
                                                 AuthorDocumentController controller,
                                                 SchemaAwareHandlerResult result)
        Place the caret in the first cell of a table that was just inserted (a result of this operation is send as parameter)
        Parameters:
        authorAccess - Author access.
        tableInfo - Table information.
        controller - Controller.
        result - Insert operation result.
      • removeInvalidColNamesFromCALSTableCells

        public static void removeInvalidColNamesFromCALSTableCells​(AuthorAccess authorAccess,
                                                                   AuthorElement tableElement,
                                                                   java.util.List<AuthorElement> cells)
        Remove invalid column names from CALS table cells. Remove references to column names which are not defined in the table.
        Parameters:
        authorAccess - Author Access
        tableElement - The table element
        cells - The list of cells.
      • handleColumnSpecAttributeChange

        public static boolean handleColumnSpecAttributeChange​(AuthorAccess authorAccess,
                                                              AuthorTableHelper helper,
                                                              AuthorElement currentElement,
                                                              java.lang.String attributeName,
                                                              AttrValue newValue)
        Propagate the change of a column name in the entire table.
        Parameters:
        authorAccess - Author access
        helper - Table helper.
        currentElement - Current element on which the attribute which should be changed.
        attributeName - Name of changed attribute
        newValue - The new attribute value
        Returns:
        true if this method handled the change.