Class PreserveSelectionModel<T>
java.lang.Object
org.eclipse.nebula.widgets.nattable.selection.preserve.PreserveSelectionModel<T>
- Type Parameters:
T
- the type of object underlying each row
- All Implemented Interfaces:
ILayerEventHandler<IStructuralChangeEvent>
,IMarkerSelectionModel
,ISelectionModel
- Direct Known Subclasses:
SummaryRowPreserveSelectionModel
Individual cell selection model that copes with the reordering of rows.
-
Field Summary
-
Constructor Summary
ConstructorDescriptionPreserveSelectionModel
(IUniqueIndexLayer selectionLayer, IRowDataProvider<T> rowDataProvider, IRowIdAccessor<T> rowIdAccessor) Creates a row sortable selection model -
Method Summary
Modifier and TypeMethodDescriptionvoid
addSelection
(int columnPosition, int rowPosition) Selects a specified cellvoid
addSelection
(org.eclipse.swt.graphics.Rectangle range) Selects the cells of a specified areavoid
Removes all cell selectionsvoid
clearSelection
(int columnPosition, int rowPosition) Deselects a specified cellvoid
clearSelection
(org.eclipse.swt.graphics.Rectangle removedSelection) Removes the selection of specified cellsint[]
getFullySelectedColumnPositions
(int columnHeight) int[]
getFullySelectedRowPositions
(int rowWidth) org.eclipse.swt.graphics.Point
org.eclipse.swt.graphics.Rectangle
protected Serializable
getRowIdByPosition
(int rowPosition) Retrieves the row ID for a row positionprotected int
getRowPositionByRowObject
(T rowObject) Retrieves the row position for a row objectint[]
Retrieves the columns that have any selected cellsint
Retrieves the number of rows that have any selected cellRetrieves the rows with a valid row position that have any selected cellsorg.eclipse.swt.graphics.Point
List<org.eclipse.swt.graphics.Rectangle>
Retrieves the cells that are selectedvoid
protected boolean
ignoreVerticalChange
(org.eclipse.nebula.widgets.nattable.selection.preserve.Selections.Row<T> row) Check if the default handling for vertical structure changes should be performed for the givenSelections.Row
, or if it should be skipped.boolean
isCellPositionSelected
(int columnPosition, int rowPosition) Determines whether a specified cell is selectedboolean
isColumnPositionFullySelected
(int columnPosition, int columnHeight) boolean
isColumnPositionSelected
(int columnPosition) Determines whether a specified column contains any selected cellboolean
isEmpty()
Determines whether there are any selected cellsboolean
Determines whether multiple cells can be selected simultaneouslyboolean
isRowPositionFullySelected
(int rowPosition, int rowWidth) Check if all cells in a row are selected, which means the row is fully selected.boolean
isRowPositionSelected
(int rowPosition) Determines whether a specified row contains any selected cellvoid
setLastSelectedCell
(org.eclipse.swt.graphics.Point coordinate) void
setLastSelectedRegion
(int x, int y, int width, int height) Will copy the information of the parameters to the already existing Rectangle object of last selected region.void
setLastSelectedRegion
(org.eclipse.swt.graphics.Rectangle region) Will set the Rectangle object of the last selected region to be the same as the parameter object region.void
setMultipleSelectionAllowed
(boolean multipleSelectionAllowed) Sets whether multiple cells can be selected simultaneouslyvoid
setSelectionAnchor
(org.eclipse.swt.graphics.Point coordinate)
-
Field Details
-
selectionLayer
Provider of cell information.- Since:
- 1.6
-
-
Constructor Details
-
PreserveSelectionModel
public PreserveSelectionModel(IUniqueIndexLayer selectionLayer, IRowDataProvider<T> rowDataProvider, IRowIdAccessor<T> rowIdAccessor) Creates a row sortable selection model- Parameters:
selectionLayer
- provider of cell informationrowDataProvider
- provider of underlying row objectsrowIdAccessor
- provider of unique IDs for the rows
-
-
Method Details
-
isMultipleSelectionAllowed
public boolean isMultipleSelectionAllowed()Description copied from interface:ISelectionModel
Determines whether multiple cells can be selected simultaneously- Specified by:
isMultipleSelectionAllowed
in interfaceISelectionModel
- Returns:
- whether multiple cells can be selected simultaneously
-
setMultipleSelectionAllowed
public void setMultipleSelectionAllowed(boolean multipleSelectionAllowed) Description copied from interface:ISelectionModel
Sets whether multiple cells can be selected simultaneously- Specified by:
setMultipleSelectionAllowed
in interfaceISelectionModel
- Parameters:
multipleSelectionAllowed
- whether multiple cells can be selected simultaneously
-
addSelection
public void addSelection(int columnPosition, int rowPosition) Description copied from interface:ISelectionModel
Selects a specified cell- Specified by:
addSelection
in interfaceISelectionModel
- Parameters:
columnPosition
- column position of the cell to selectrowPosition
- row position of the cell to select
-
addSelection
public void addSelection(org.eclipse.swt.graphics.Rectangle range) Description copied from interface:ISelectionModel
Selects the cells of a specified area- Specified by:
addSelection
in interfaceISelectionModel
- Parameters:
range
- the position based area to select
-
clearSelection
public void clearSelection()Description copied from interface:ISelectionModel
Removes all cell selections- Specified by:
clearSelection
in interfaceISelectionModel
-
clearSelection
public void clearSelection(int columnPosition, int rowPosition) Description copied from interface:ISelectionModel
Deselects a specified cell- Specified by:
clearSelection
in interfaceISelectionModel
- Parameters:
columnPosition
- column position of the cell to deselectrowPosition
- row position of the cell to deselect
-
clearSelection
public void clearSelection(org.eclipse.swt.graphics.Rectangle removedSelection) Description copied from interface:ISelectionModel
Removes the selection of specified cells- Specified by:
clearSelection
in interfaceISelectionModel
- Parameters:
removedSelection
- the position based area to deselect
-
isEmpty
public boolean isEmpty()Description copied from interface:ISelectionModel
Determines whether there are any selected cells- Specified by:
isEmpty
in interfaceISelectionModel
- Returns:
- whether there are any selected cells
-
getSelections
Description copied from interface:ISelectionModel
Retrieves the cells that are selected- Specified by:
getSelections
in interfaceISelectionModel
- Returns:
- the cells that are selected, expressed in position coordinates
-
isCellPositionSelected
public boolean isCellPositionSelected(int columnPosition, int rowPosition) Description copied from interface:ISelectionModel
Determines whether a specified cell is selected- Specified by:
isCellPositionSelected
in interfaceISelectionModel
- Parameters:
columnPosition
- column position of the cell to inspectrowPosition
- row position of the cell to inspect- Returns:
- whether the specified cell is selected
-
getSelectedColumnPositions
public int[] getSelectedColumnPositions()Description copied from interface:ISelectionModel
Retrieves the columns that have any selected cells- Specified by:
getSelectedColumnPositions
in interfaceISelectionModel
- Returns:
- the column positions that have any selected cells
-
isColumnPositionSelected
public boolean isColumnPositionSelected(int columnPosition) Description copied from interface:ISelectionModel
Determines whether a specified column contains any selected cell- Specified by:
isColumnPositionSelected
in interfaceISelectionModel
- Parameters:
columnPosition
- column position to inspect- Returns:
- whether the specified column contains any selected cell
-
getFullySelectedColumnPositions
public int[] getFullySelectedColumnPositions(int columnHeight) - Specified by:
getFullySelectedColumnPositions
in interfaceISelectionModel
- Parameters:
columnHeight
- the number of rows in a fully selected column
-
isColumnPositionFullySelected
public boolean isColumnPositionFullySelected(int columnPosition, int columnHeight) - Specified by:
isColumnPositionFullySelected
in interfaceISelectionModel
columnHeight
- the number of rows in a fully selected column
-
getSelectedRowCount
public int getSelectedRowCount()Description copied from interface:ISelectionModel
Retrieves the number of rows that have any selected cell- Specified by:
getSelectedRowCount
in interfaceISelectionModel
- Returns:
- the number of rows that have any selected cell
-
getSelectedRowPositions
Description copied from interface:ISelectionModel
Retrieves the rows with a valid row position that have any selected cells- Specified by:
getSelectedRowPositions
in interfaceISelectionModel
- Returns:
- the row positions with a valid row position that have any selected cells
-
isRowPositionSelected
public boolean isRowPositionSelected(int rowPosition) Description copied from interface:ISelectionModel
Determines whether a specified row contains any selected cell- Specified by:
isRowPositionSelected
in interfaceISelectionModel
- Parameters:
rowPosition
- row position to inspect- Returns:
- whether the specified row contains any selected cell
-
getFullySelectedRowPositions
public int[] getFullySelectedRowPositions(int rowWidth) - Specified by:
getFullySelectedRowPositions
in interfaceISelectionModel
- Parameters:
rowWidth
- the number of columns in a fully selected row
-
isRowPositionFullySelected
public boolean isRowPositionFullySelected(int rowPosition, int rowWidth) Description copied from interface:ISelectionModel
Check if all cells in a row are selected, which means the row is fully selected.- Specified by:
isRowPositionFullySelected
in interfaceISelectionModel
- Parameters:
rowPosition
- The row position that should be checked.rowWidth
- The number of columns in the row which is needed to determine if the all cells in a row are selected.- Returns:
true
if all cells in a row are selected,false
if not
-
getRowIdByPosition
Retrieves the row ID for a row position- Parameters:
rowPosition
- row position for retrieving row ID- Returns:
- row ID for rowPosition, or null if undefined
- Since:
- 1.6
-
getRowPositionByRowObject
Retrieves the row position for a row object- Parameters:
rowObject
- row object for retrieving row position- Returns:
- row position for rowObject, or -1 if undefined
- Since:
- 1.6
-
getSelectionAnchor
public org.eclipse.swt.graphics.Point getSelectionAnchor()- Specified by:
getSelectionAnchor
in interfaceIMarkerSelectionModel
- Returns:
- point of the anchor expressed in position coordinates
-
getLastSelectedCell
public org.eclipse.swt.graphics.Point getLastSelectedCell()- Specified by:
getLastSelectedCell
in interfaceIMarkerSelectionModel
- Returns:
- point of the last selected cell expressed in position coordinates
-
getLastSelectedRegion
public org.eclipse.swt.graphics.Rectangle getLastSelectedRegion()- Specified by:
getLastSelectedRegion
in interfaceIMarkerSelectionModel
- Returns:
- rectangle of the last selected region expressed in position coordinates
-
setSelectionAnchor
public void setSelectionAnchor(org.eclipse.swt.graphics.Point coordinate) - Specified by:
setSelectionAnchor
in interfaceIMarkerSelectionModel
- Parameters:
coordinate
- coordinate of the anchor
-
setLastSelectedCell
public void setLastSelectedCell(org.eclipse.swt.graphics.Point coordinate) - Specified by:
setLastSelectedCell
in interfaceIMarkerSelectionModel
- Parameters:
coordinate
- coordinate of the last selected
-
setLastSelectedRegion
public void setLastSelectedRegion(org.eclipse.swt.graphics.Rectangle region) Description copied from interface:IMarkerSelectionModel
Will set the Rectangle object of the last selected region to be the same as the parameter object region.- Specified by:
setLastSelectedRegion
in interfaceIMarkerSelectionModel
- Parameters:
region
- the last selection position region
-
setLastSelectedRegion
public void setLastSelectedRegion(int x, int y, int width, int height) Description copied from interface:IMarkerSelectionModel
Will copy the information of the parameters to the already existing Rectangle object of last selected region.- Specified by:
setLastSelectedRegion
in interfaceIMarkerSelectionModel
- Parameters:
x
- origin of the last selection position regiony
- origin of the last selection position regionwidth
- of the last selection position regionheight
- of the last selection position region
-
handleLayerEvent
- Specified by:
handleLayerEvent
in interfaceILayerEventHandler<T>
-
ignoreVerticalChange
protected boolean ignoreVerticalChange(org.eclipse.nebula.widgets.nattable.selection.preserve.Selections.Row<T> row) Check if the default handling for vertical structure changes should be performed for the givenSelections.Row
, or if it should be skipped. Skipping for example would make sense for selections that are stored for rows that have no row data in the backing data structure, e.g. a summary row selection.- Parameters:
row
- The internal selected row representation.- Returns:
false
if the default handling for vertical changes should be performed,true
if the default handling should be skipped.- Since:
- 1.6
-
getLayerEventClass
- Specified by:
getLayerEventClass
in interfaceILayerEventHandler<T>
-