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
Fields Modifier and Type Field Description protected static ArgumentDescriptor
CUSTOM_INSERTION_ARGUMENT_DESCRIPTOR
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 Constructor Description InsertRowOperationBase(AuthorTableHelper documentTypeHelper)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
createCellXMLFragment(AuthorElement cell, java.lang.String[] skippedAttributes, java.lang.String[] allowedAttributes, java.lang.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.ArgumentDescriptor[]
getArguments()
The operation will display a dialog for choose table attributes.protected abstract java.lang.String
getCellElementName(AuthorElement tableElement, int columnIndex)
Get the name of the element that represents a cell.protected java.lang.String
getDefaultContentForEmptyCells()
Get the default content that must be introduced in empty cells.java.lang.String
getDescription()
protected ArgumentDescriptor[]
getOperationArguments()
Get the array of arguments used for this operation.protected abstract java.lang.String
getRowElementName(AuthorElement tableElement)
Get the name of the element that represents a row.java.lang.String
getRowXMLFragment(AuthorAccess authorAccess, AuthorElement tableElement, java.lang.String namespace, java.lang.String newCellFragment, int newCellColumnIndex, int initialNumberOfColumns)
Creates the XML fragment representing a new table row to be inserted.void
insertRows(AuthorAccess authorAccess, java.lang.String xPathLocation, java.lang.String namespace, AuthorNode nodeAtCaret, AuthorElement tableElement, int noOfRowsToBeInserted, java.lang.String relativePosition)
Insert rows.protected static ArgumentDescriptor[]
removeCustomInsertionDescriptor(ArgumentDescriptor[] superArguments)
Removes the argument descriptor for custom insertion from an arguments list.protected boolean
useCurrentRowTemplateOnInsert()
-
Methods inherited from class ro.sync.ecss.extensions.commons.table.operations.AbstractTableOperation
createEmptyCell, doOperation, findCellInsertionOffset, getElementAncestor, isElement, isTableElement
-
-
-
-
Field Detail
-
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 Detail
-
InsertRowOperationBase
public InsertRowOperationBase(AuthorTableHelper documentTypeHelper)
Constructor.- Parameters:
documentTypeHelper
- Author Document type helper, has methods specific to a document type.
-
-
Method Detail
-
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 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:
AbstractTableOperation.doOperationInternal(ro.sync.ecss.extensions.api.AuthorAccess, ro.sync.ecss.extensions.api.ArgumentsMap)
-
insertRows
public void insertRows(AuthorAccess authorAccess, java.lang.String xPathLocation, java.lang.String namespace, AuthorNode nodeAtCaret, AuthorElement tableElement, int noOfRowsToBeInserted, java.lang.String relativePosition) throws javax.swing.text.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:
javax.swing.text.BadLocationException
AuthorOperationException
-
getRowXMLFragment
public java.lang.String getRowXMLFragment(AuthorAccess authorAccess, AuthorElement tableElement, java.lang.String namespace, java.lang.String newCellFragment, int newCellColumnIndex, int initialNumberOfColumns) throws javax.swing.text.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:
javax.swing.text.BadLocationException
-
createCellXMLFragment
protected java.lang.String createCellXMLFragment(AuthorElement cell, java.lang.String[] skippedAttributes, java.lang.String[] allowedAttributes, java.lang.String cellContent) throws javax.swing.text.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:
javax.swing.text.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:
AuthorOperation.getArguments()
-
getDescription
public java.lang.String getDescription()
- Returns:
- The description of the extension.
- See Also:
Extension.getDescription()
-
getCellElementName
protected abstract java.lang.String getCellElementName(AuthorElement tableElement, int columnIndex)
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
protected abstract java.lang.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 java.lang.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.
-
-