Class InsertRowOperationBase

java.lang.Object
ro.sync.ecss.extensions.commons.table.operations.AbstractTableOperation
ro.sync.ecss.extensions.commons.table.operations.InsertRowOperationBase
All Implemented Interfaces:
AuthorOperation, Extension
Direct Known Subclasses:
InsertRowOperation, InsertRowOperation, InsertRowOperation, InsertRowOperation, InsertRowOperation

@API(type=INTERNAL, src=PUBLIC) public abstract class InsertRowOperationBase extends AbstractTableOperation
Abstract class for operation used to insert a table row.
  • Field Details

    • CUSTOM_INSERTION_ARGUMENT_DESCRIPTOR

      protected static final ArgumentDescriptor CUSTOM_INSERTION_ARGUMENT_DESCRIPTOR
      Argument descriptor for the argument that specifies whether a custom insertion should be used.
  • Constructor Details

    • InsertRowOperationBase

      public InsertRowOperationBase(AuthorTableHelper documentTypeHelper)
      Constructor.
      Parameters:
      documentTypeHelper - Author Document type helper, has methods specific to a document type.
  • Method Details

    • getOperationArguments

      protected ArgumentDescriptor[] getOperationArguments()
      Get the array of arguments used for this operation. The first argument defines the location where the operation will be executed as an xpath expression, the second one defines the relative position to the node obtained from the XPath location, the third is the namespace argument descriptor and the forth specifies if the user desires the insertion of multiple rows or not. For the second argument included in the returned arguments descriptor array, the allowed values are: AuthorConstants.POSITION_BEFORE, AuthorConstants.POSITION_AFTER, AuthorConstants.POSITION_INSIDE_FIRST AuthorConstants.POSITION_INSIDE_LAST
      Returns:
      The array with the arguments of the operation.
    • doOperationInternal

      protected void doOperationInternal(AuthorAccess authorAccess, ArgumentsMap args) throws AuthorOperationException
      Description copied from class: AbstractTableOperation
      Perform the actual operation.
      Specified by:
      doOperationInternal in class AbstractTableOperation
      Parameters:
      authorAccess - The author access. Provides access to specific informations and actions for editor, document, workspace, tables, change tracking, utility a.s.o.
      args - The map of arguments. All the arguments defined by method AuthorOperation.getArguments() must be present in the map of arguments.
      Throws:
      AuthorOperationException - Thrown when the operation fails.
      See Also:
    • insertRows

      public void insertRows(AuthorAccess authorAccess, String xPathLocation, String namespace, AuthorNode nodeAtCaret, AuthorElement tableElement, int noOfRowsToBeInserted, String relativePosition) throws BadLocationException, AuthorOperationException
      Insert rows.
      Parameters:
      authorAccess - The author access.
      xPathLocation - The xPath location.
      namespace - The rows namespace.
      nodeAtCaret - The node at caret
      tableElement - The parent table element.
      noOfRowsToBeInserted - Number of rows to be inserted.
      relativePosition - One of AuthorConstants.POSITION_AFTER or AuthorConstants.POSITION_BEFORE constants.
      Throws:
      BadLocationException
      AuthorOperationException
    • getRowXMLFragment

      public String getRowXMLFragment(AuthorAccess authorAccess, AuthorElement tableElement, String namespace, String newCellFragment, int newCellColumnIndex, int initialNumberOfColumns) throws BadLocationException
      Creates the XML fragment representing a new table row to be inserted.
      Parameters:
      authorAccess - The author access.
      tableElement - The table element.
      namespace - The namespace of the table row.
      newCellFragment - The row will contain an additional cell added at the given column index.
      newCellColumnIndex - The column index of the additional cell
      initialNumberOfColumns - The initial number of columns.
      Returns:
      The XML fragment to be inserted.
      Throws:
      BadLocationException
    • createCellXMLFragment

      protected String createCellXMLFragment(AuthorElement cell, String[] skippedAttributes, String[] allowedAttributes, String cellContent) throws BadLocationException
      Create a cell XML fragment by copying the element and attributes from a given cell element.
      Parameters:
      cell - The cell to copy the element name and attributes from.
      skippedAttributes - List of skipped attributes names.
      cellContent - The cell content.
      Returns:
      The cell fragment.
      Throws:
      BadLocationException
    • getArguments

      public ArgumentDescriptor[] getArguments()
      The operation will display a dialog for choose table attributes.
      Returns:
      An array of ArgumentDescriptor representing the arguments this operation uses.
      See Also:
    • getDescription

      public String getDescription()
      Returns:
      The description of the extension.
      See Also:
    • getCellElementName

      protected abstract String getCellElementName(AuthorElement tableElement, int columnIndex)
      Get the name of the element that represents a cell.
      Parameters:
      tableElement - The table element
      columnIndex - The column index.
      Returns:
      The name of the element that represent a cell in the table.
    • getRowElementName

      protected abstract String getRowElementName(AuthorElement tableElement)
      Get the name of the element that represents a row.
      Parameters:
      tableElement - The table parent element.
      Returns:
      The name of the element that represent a row in the table.
    • useCurrentRowTemplateOnInsert

      protected boolean useCurrentRowTemplateOnInsert()
      Returns:
      true if the current row template should be used to create the new row that must be inserted. Default: false
    • getDefaultContentForEmptyCells

      protected String getDefaultContentForEmptyCells()
      Get the default content that must be introduced in empty cells.
      Returns:
      The default content that must be introduced in empty cells. Default: null.
      Since:
      14.1
    • removeCustomInsertionDescriptor

      protected static ArgumentDescriptor[] removeCustomInsertionDescriptor(ArgumentDescriptor[] superArguments)
      Removes the argument descriptor for custom insertion from an arguments list.
      Parameters:
      superArguments - The input arguments list.
      Returns:
      The filtered arguments list.