Class DeleteColumnOperationBase
- java.lang.Object
-
- ro.sync.ecss.extensions.commons.table.operations.AbstractTableOperation
-
- ro.sync.ecss.extensions.commons.table.operations.DeleteColumnOperationBase
-
- All Implemented Interfaces:
AuthorOperation
,Extension
- Direct Known Subclasses:
DeleteColumnOperation
,DeleteColumnOperation
,DeleteColumnOperation
,DeleteColumnOperation
,DeleteColumnOperation
@API(type=INTERNAL, src=PUBLIC) public abstract class DeleteColumnOperationBase extends AbstractTableOperation
Base implementation for operations used to delete table columns. If there are selections in the table, all the columns that intersect the selections are removed. If there is no selection in the table, the column at caret is deleted.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<java.lang.Integer>
deletedColumnsIndices
The index of the deleted column.protected AuthorElement
tableElem
The table element.-
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 DeleteColumnOperationBase(AuthorTableHelper documentTypeHelper)
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
canDeleteColumn()
protected void
doOperationInternal(AuthorAccess authorAccess, ArgumentsMap args)
Delete the table column at the caret position.ArgumentDescriptor[]
getArguments()
No arguments for this operation.java.lang.String
getDescription()
boolean
performDeleteColumn(AuthorAccess authorAccess, java.util.List<ContentInterval> columnIntervals, boolean placeCaretInNextCell)
Delete table columns.protected void
updateAppliableColWidthsNumber(AuthorAccess authorAccess, AuthorElement tableElem, int deletedColumnIndex)
If the table has anything else to update when a column is deleted...protected void
updateColspec(AuthorAccess authorAccess, java.lang.Integer deletedColumnIndex)
Update the colspec of a table for a given column.protected abstract void
updateTableColSpan(AuthorAccess authorAccess, AuthorTableCellSpanProvider spanProvider, AuthorElement cell, int colStartIndex, int colEndIndex)
Update the column span for the table cell that is included into the deleted column.-
Methods inherited from class ro.sync.ecss.extensions.commons.table.operations.AbstractTableOperation
createEmptyCell, doOperation, findCellInsertionOffset, getElementAncestor, isElement, isTableElement
-
-
-
-
Field Detail
-
tableElem
protected AuthorElement tableElem
The table element.
-
deletedColumnsIndices
protected java.util.List<java.lang.Integer> deletedColumnsIndices
The index of the deleted column.
-
-
Constructor Detail
-
DeleteColumnOperationBase
public DeleteColumnOperationBase(AuthorTableHelper documentTypeHelper)
Constructor.- Parameters:
documentTypeHelper
- The table helper specific to a document type. An implementation ofAuthorTableHelper
.
-
-
Method Detail
-
performDeleteColumn
public boolean performDeleteColumn(AuthorAccess authorAccess, java.util.List<ContentInterval> columnIntervals, boolean placeCaretInNextCell) throws AuthorOperationException
Delete table columns. The columns are detected in the following order:- from the given column intervals
- from the selection
- from the caret position
- Parameters:
authorAccess
- The access to Author operations.columnIntervals
- The intervals of the column to be deleted. Ifnull
, the column at caret offset is deleted.placeCaretInNextCell
-true
to place caret in the next cell.- Returns:
true
if a column is deleted- Throws:
java.lang.IllegalArgumentException
AuthorOperationException
-
updateColspec
protected void updateColspec(AuthorAccess authorAccess, java.lang.Integer deletedColumnIndex)
Update the colspec of a table for a given column.- Parameters:
authorAccess
- The Author access.deletedColumnIndex
- The index of the deleted column.
-
updateAppliableColWidthsNumber
protected void updateAppliableColWidthsNumber(AuthorAccess authorAccess, AuthorElement tableElem, int deletedColumnIndex)
If the table has anything else to update when a column is deleted...- Parameters:
authorAccess
- The author access.tableElem
- The table access.deletedColumnIndex
- The deleted column index.
-
doOperationInternal
protected void doOperationInternal(AuthorAccess authorAccess, ArgumentsMap args) throws AuthorOperationException
Delete the table column at the caret position. For this operation the caret must be inside a table cell.- 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)
-
updateTableColSpan
protected abstract void updateTableColSpan(AuthorAccess authorAccess, AuthorTableCellSpanProvider spanProvider, AuthorElement cell, int colStartIndex, int colEndIndex) throws AuthorOperationException
Update the column span for the table cell that is included into the deleted column.- Parameters:
authorAccess
- The author access. Provides access to specific informations and actions for editor, document, workspace, tables, change tracking, utility a.s.o.spanProvider
- The table span provider. The object responsible for providing information about the cell spanning.cell
- The table cell.colStartIndex
- The new column start index, 1 based.colEndIndex
- The new column end index, 1 based.- Throws:
AuthorOperationException
- When the operation fails.
-
getArguments
public ArgumentDescriptor[] getArguments()
No arguments for this operation.- 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()
-
canDeleteColumn
protected boolean canDeleteColumn()
- Returns:
true
if a column from the specified table can be deleted.false
otherwise.
-
-