Class SelectionModel
java.lang.Object
org.eclipse.nebula.widgets.nattable.selection.SelectionModel
- All Implemented Interfaces:
ILayerEventHandler<IStructuralChangeEvent>
,ISelectionModel
Tracks the selections made in the table. All selections are tracked in terms
of Rectangles.
For example if the table has 10 rows and column 2 is selected, the Rectangle
tracked is (0, 2, 10, 1)
Coordinates are in Selection Layer positions
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorDescriptionSelectionModel
(SelectionLayer selectionLayer) SelectionModel
(SelectionLayer selectionLayer, boolean multipleSelectionAllowed) -
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 cellsprotected boolean
contains
(org.eclipse.swt.graphics.Rectangle containerRectangle, org.eclipse.swt.graphics.Rectangle rectangle) int[]
getFullySelectedColumnPositions
(int columnHeight) int[]
getFullySelectedRowPositions
(int rowWidth) int[]
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 cellsList<org.eclipse.swt.graphics.Rectangle>
Retrieves the cells that are selectedvoid
boolean
isCellPositionSelected
(int columnPosition, int rowPosition) Determines whether a specified cell is selectedboolean
isColumnPositionFullySelected
(int columnPosition, int columnHeight) Are all cells in this column selected? Different selection rectangles might aggregate to cover the entire column.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
setClearSelectionOnChange
(boolean clearSelectionOnChange) void
setMultipleSelectionAllowed
(boolean multipleSelectionAllowed) Sets whether multiple cells can be selected simultaneouslyprotected void
protected void
toString()
-
Field Details
-
selectionLayer
-
-
Constructor Details
-
SelectionModel
-
SelectionModel
-
-
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
-
internalGetSelectedColumnPositions
- Since:
- 1.5
-
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) Are all cells in this column selected? Different selection rectangles might aggregate to cover the entire column. We need to take into account any overlapping selections or any selection rectangles contained within each other. See the related tests for a better understanding.- 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
-
contains
protected boolean contains(org.eclipse.swt.graphics.Rectangle containerRectangle, org.eclipse.swt.graphics.Rectangle rectangle) -
sortByX
-
sortByY
-
toString
-
handleLayerEvent
- Specified by:
handleLayerEvent
in interfaceILayerEventHandler<IStructuralChangeEvent>
-
setClearSelectionOnChange
public void setClearSelectionOnChange(boolean clearSelectionOnChange) - Parameters:
clearSelectionOnChange
-true
to simply clear the selection on structural changes,false
to keep the valid selection (selection of cells that still exist)
-
getLayerEventClass
- Specified by:
getLayerEventClass
in interfaceILayerEventHandler<IStructuralChangeEvent>
-