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 Summary
FieldsModifier and TypeFieldDescriptionprotected static final ArgumentDescriptor
Argument descriptor for the argument that specifies whether a custom insertion should be used.Fields inherited from class ro.sync.ecss.extensions.commons.table.operations.AbstractTableOperation
CHANGE_TRACKING_BEHAVIOR_ARGUMENT, TABLE_INFO_ARGUMENT_DESCRIPTOR, TABLE_INFO_ARGUMENT_NAME, tableHelper
Fields inherited from interface ro.sync.ecss.extensions.api.AuthorOperation
NAMESPACE_ARGUMENT, NAMESPACE_ARGUMENT_DESCRIPTOR, SCHEMA_AWARE_ARGUMENT, SCHEMA_AWARE_ARGUMENT_DESCRIPTOR
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String
createCellXMLFragment
(AuthorElement cell, String[] skippedAttributes, String[] allowedAttributes, String cellContent) Create a cell XML fragment by copying the element and attributes from a given cell element.protected void
doOperationInternal
(AuthorAccess authorAccess, ArgumentsMap args) Perform the actual operation.The operation will display a dialog for choose table attributes.protected abstract String
getCellElementName
(AuthorElement tableElement, int columnIndex) Get the name of the element that represents a cell.protected String
Get the default content that must be introduced in empty cells.protected ArgumentDescriptor[]
Get the array of arguments used for this operation.protected abstract String
getRowElementName
(AuthorElement tableElement) Get the name of the element that represents a row.getRowXMLFragment
(AuthorAccess authorAccess, AuthorElement tableElement, String namespace, String newCellFragment, int newCellColumnIndex, int initialNumberOfColumns) Creates the XML fragment representing a new table row to be inserted.void
insertRows
(AuthorAccess authorAccess, String xPathLocation, String namespace, AuthorNode nodeAtCaret, AuthorElement tableElement, int noOfRowsToBeInserted, String relativePosition) Insert rows.protected static ArgumentDescriptor[]
removeCustomInsertionDescriptor
(ArgumentDescriptor[] superArguments) Removes the argument descriptor for custom insertion from an arguments list.protected boolean
Methods inherited from class ro.sync.ecss.extensions.commons.table.operations.AbstractTableOperation
createEmptyCell, doOperation, findCellInsertionOffset, getElementAncestor, isElement, isTableElement
-
Field Details
-
CUSTOM_INSERTION_ARGUMENT_DESCRIPTOR
Argument descriptor for the argument that specifies whether a custom insertion should be used.
-
-
Constructor Details
-
InsertRowOperationBase
Constructor.- Parameters:
documentTypeHelper
- Author Document type helper, has methods specific to a document type.
-
-
Method Details
-
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 classAbstractTableOperation
- 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 methodAuthorOperation.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 carettableElement
- The parent table element.noOfRowsToBeInserted
- Number of rows to be inserted.relativePosition
- One ofAuthorConstants.POSITION_AFTER
orAuthorConstants.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 cellinitialNumberOfColumns
- 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
The operation will display a dialog for choose table attributes.- Returns:
- An array of
ArgumentDescriptor
representing the arguments this operation uses. - See Also:
-
getDescription
- Returns:
- The description of the extension.
- See Also:
-
getCellElementName
Get the name of the element that represents a cell.- Parameters:
tableElement
- The table elementcolumnIndex
- The column index.- Returns:
- The name of the element that represent a cell in the table.
-
getRowElementName
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
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.
-