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
FieldsModifier and TypeFieldDescriptionThe index of the deleted column.protected AuthorElement
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
ConstructorsConstructorDescriptionDeleteColumnOperationBase
(AuthorTableHelper documentTypeHelper) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
protected void
doOperationInternal
(AuthorAccess authorAccess, ArgumentsMap args) Delete the table column at the caret position.No arguments for this operation.boolean
performDeleteColumn
(AuthorAccess authorAccess, 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, 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 Details
-
tableElem
The table element. -
deletedColumnsIndices
The index of the deleted column.
-
-
Constructor Details
-
DeleteColumnOperationBase
Constructor.- Parameters:
documentTypeHelper
- The table helper specific to a document type. An implementation ofAuthorTableHelper
.
-
-
Method Details
-
performDeleteColumn
public boolean performDeleteColumn(AuthorAccess authorAccess, 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:
IllegalArgumentException
AuthorOperationException
-
updateColspec
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:
-
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
No arguments for this operation.- Returns:
- An array of
ArgumentDescriptor
representing the arguments this operation uses. - See Also:
-
getDescription
- Returns:
- The description of the extension.
- See Also:
-
canDeleteColumn
protected boolean canDeleteColumn()- Returns:
true
if a column from the specified table can be deleted.false
otherwise.
-