Class AbstractGridMultiSelectionModel<T>
- java.lang.Object
-
- com.vaadin.flow.component.grid.Grid.AbstractGridExtension<T>
-
- com.vaadin.flow.component.grid.AbstractGridMultiSelectionModel<T>
-
- Type Parameters:
T- the grid type
- All Implemented Interfaces:
GridMultiSelectionModel<T>,GridSelectionModel<T>,DataGenerator<T>,SelectionModel<Grid<T>,T>,SelectionModel.Multi<Grid<T>,T>,Serializable
public abstract class AbstractGridMultiSelectionModel<T> extends Grid.AbstractGridExtension<T> implements GridMultiSelectionModel<T>
Abstract implementation of a GridMultiSelectionModel.- Author:
- Vaadin Ltd.
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.vaadin.flow.component.grid.GridMultiSelectionModel
GridMultiSelectionModel.SelectAllCheckboxVisibility
-
Nested classes/interfaces inherited from interface com.vaadin.flow.data.selection.SelectionModel
SelectionModel.Multi<C extends Component,T>, SelectionModel.Single<C extends Component,T>
-
-
Constructor Summary
Constructors Constructor Description AbstractGridMultiSelectionModel(Grid<T> grid)Constructor for passing a reference of the grid to this implementation.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description RegistrationaddMultiSelectionListener(MultiSelectionListener<Grid<T>,T> listener)Adds a selection listener that will be called when the selection is changed either by the user or programmatically.RegistrationaddSelectionListener(SelectionListener<Grid<T>,T> listener)Adds a generic listener to this selection model, accepting both single and multiselection events.MultiSelect<Grid<T>,T>asMultiSelect()Gets a wrapper to use this multiselection model as a multiselect inBinder.voiddeselect(T item)Deselects the given item.voiddeselectAll()Deselects all currently selected items, if any.voiddeselectFromClient(T item)Handles the deselection of an item that originates from the client.protected abstract voidfireSelectionEvent(SelectionEvent<Grid<T>,T> event)Method for handling the firing of selection events.voidgenerateData(T item, elemental.json.JsonObject jsonObject)Adds custom data for the given item to its serializedJsonObjectrepresentation.Optional<T>getFirstSelectedItem()Get first selected data item.GridMultiSelectionModel.SelectAllCheckboxVisibilitygetSelectAllCheckboxVisibility()Gets the current mode for the select all checkbox visibility.protected Set<Object>getSelectedItemIds()Returns an unmodifiable view of the selected item ids.Set<T>getSelectedItems()Returns an immutable set of the currently selected items.booleanisDragSelect()Gets whether grid drag select is enabled or not.booleanisSelectAllCheckboxVisible()Returns whether the select all checkbox will be visible with the current setting ofGridMultiSelectionModel.setSelectAllCheckboxVisibility(SelectAllCheckboxVisibility)and the type of data set to the Grid (in-memory or lazy).booleanisSelected(T item)Returns whether the given item is currently selected.booleanisSelectionColumnFrozen()Gets the the selection column's frozen state.protected voidremove()Remove this extension from its target.voidselect(T item)Selects the given item.voidselectAll()Selects all available the items.voidselectFromClient(T item)Handles the selection of an item that originates from the client.voidsetDragSelect(boolean dragSelect)Iftrue, grid rows can be selected or deselected by dragging the mouse cursor over grid's selection column.voidsetSelectAllCheckboxVisibility(GridMultiSelectionModel.SelectAllCheckboxVisibility selectAllCheckBoxVisibility)Sets the select all checkbox visibility mode.voidsetSelectionColumnFrozen(boolean frozen)Sets the selection column's frozen state.voidupdateSelection(Set<T> addedItems, Set<T> removedItems)Updates the selection by adding and removing the given items from it.-
Methods inherited from class com.vaadin.flow.component.grid.Grid.AbstractGridExtension
extend, getGrid, refresh
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.flow.data.provider.DataGenerator
destroyAllData, destroyData, refreshData
-
Methods inherited from interface com.vaadin.flow.data.selection.SelectionModel.Multi
deselectItems, selectItems
-
-
-
-
Method Detail
-
remove
protected void remove()
Description copied from class:Grid.AbstractGridExtensionRemove this extension from its target.- Overrides:
removein classGrid.AbstractGridExtension<T>
-
selectFromClient
public void selectFromClient(T item)
Description copied from interface:GridSelectionModelHandles the selection of an item that originates from the client.- Specified by:
selectFromClientin interfaceGridSelectionModel<T>- Parameters:
item- the item being selected
-
deselectFromClient
public void deselectFromClient(T item)
Description copied from interface:GridSelectionModelHandles the deselection of an item that originates from the client.- Specified by:
deselectFromClientin interfaceGridSelectionModel<T>- Parameters:
item- the item being deselected
-
getSelectedItems
public Set<T> getSelectedItems()
Description copied from interface:SelectionModelReturns an immutable set of the currently selected items. It is safe to invoke otherSelectionModelmethods while iterating over the set.Implementation note: the iteration order of the items in the returned set should be well-defined and documented by the implementing class.
- Specified by:
getSelectedItemsin interfaceSelectionModel<Grid<T>,T>- Returns:
- the items in the current selection, not null
-
getSelectedItemIds
protected Set<Object> getSelectedItemIds()
Returns an unmodifiable view of the selected item ids.Exposed to be overridden within subclasses.
The returned Set may be a direct view of the internal data structures of this class. A defensive copy should be made by callers when iterating over this Set and modifying the selection during iteration to avoid ConcurrentModificationExceptions.
- Returns:
- An unmodifiable view of the selected item ids. Updates in the selection may or may not be directly reflected in the Set.
-
getFirstSelectedItem
public Optional<T> getFirstSelectedItem()
Description copied from interface:SelectionModelGet first selected data item.This is the same as
SelectionModel.Single.getSelectedItem()in case of single selection and the first selected item fromSelectionModel.getSelectedItems()in case of multiselection.- Specified by:
getFirstSelectedItemin interfaceSelectionModel<Grid<T>,T>- Specified by:
getFirstSelectedItemin interfaceSelectionModel.Multi<Grid<T>,T>- Returns:
- the first selected item.
-
select
public void select(T item)
Description copied from interface:SelectionModelSelects the given item. Depending on the implementation, may cause other items to be deselected. If the item is already selected, does nothing.- Specified by:
selectin interfaceSelectionModel<Grid<T>,T>- Specified by:
selectin interfaceSelectionModel.Multi<Grid<T>,T>- Parameters:
item- the item to select, not null
-
deselect
public void deselect(T item)
Description copied from interface:SelectionModelDeselects the given item. If the item is not currently selected, does nothing.- Specified by:
deselectin interfaceSelectionModel<Grid<T>,T>- Specified by:
deselectin interfaceSelectionModel.Multi<Grid<T>,T>- Parameters:
item- the item to deselect, not null
-
selectAll
public void selectAll()
Description copied from interface:SelectionModel.MultiSelects all available the items.- Specified by:
selectAllin interfaceSelectionModel.Multi<Grid<T>,T>
-
deselectAll
public void deselectAll()
Description copied from interface:SelectionModelDeselects all currently selected items, if any.- Specified by:
deselectAllin interfaceSelectionModel<Grid<T>,T>
-
updateSelection
public void updateSelection(Set<T> addedItems, Set<T> removedItems)
Description copied from interface:SelectionModel.MultiUpdates the selection by adding and removing the given items from it.If all the added items were already selected and the removed items were not selected, this is a NO-OP.
Duplicate items (in both add & remove sets) are ignored.
- Specified by:
updateSelectionin interfaceSelectionModel.Multi<Grid<T>,T>- Parameters:
addedItems- the items to add, notnullremovedItems- the items to remove, notnull
-
isSelected
public boolean isSelected(T item)
Description copied from interface:SelectionModelReturns whether the given item is currently selected.- Specified by:
isSelectedin interfaceSelectionModel<Grid<T>,T>- Parameters:
item- the item to check, not null- Returns:
trueif the item is selected,falseotherwise
-
asMultiSelect
public MultiSelect<Grid<T>,T> asMultiSelect()
Description copied from interface:GridMultiSelectionModelGets a wrapper to use this multiselection model as a multiselect inBinder.- Specified by:
asMultiSelectin interfaceGridMultiSelectionModel<T>- Returns:
- the multiselect wrapper
-
addSelectionListener
public Registration addSelectionListener(SelectionListener<Grid<T>,T> listener)
Description copied from interface:SelectionModelAdds a generic listener to this selection model, accepting both single and multiselection events.- Specified by:
addSelectionListenerin interfaceSelectionModel<Grid<T>,T>- Parameters:
listener- the listener to add, notnull- Returns:
- a registration handle for removing the listener
-
addMultiSelectionListener
public Registration addMultiSelectionListener(MultiSelectionListener<Grid<T>,T> listener)
Description copied from interface:GridMultiSelectionModelAdds a selection listener that will be called when the selection is changed either by the user or programmatically.- Specified by:
addMultiSelectionListenerin interfaceGridMultiSelectionModel<T>- Parameters:
listener- the multi selection listener, notnull- Returns:
- a registration for the listener
-
setSelectAllCheckboxVisibility
public void setSelectAllCheckboxVisibility(GridMultiSelectionModel.SelectAllCheckboxVisibility selectAllCheckBoxVisibility)
Description copied from interface:GridMultiSelectionModelSets the select all checkbox visibility mode.The default value is
GridMultiSelectionModel.SelectAllCheckboxVisibility.DEFAULT, which means that the checkbox is only visible if the grid's data provider is in-memory.The select all checkbox will never be shown if the Grid uses lazy loading with unknown item count, i.e. no items count query provided to it, and even setting
GridMultiSelectionModel.SelectAllCheckboxVisibility.VISIBLEwon't make it visible.- Specified by:
setSelectAllCheckboxVisibilityin interfaceGridMultiSelectionModel<T>- Parameters:
selectAllCheckBoxVisibility- the visiblity mode to use- See Also:
GridMultiSelectionModel.SelectAllCheckboxVisibility
-
getSelectAllCheckboxVisibility
public GridMultiSelectionModel.SelectAllCheckboxVisibility getSelectAllCheckboxVisibility()
Description copied from interface:GridMultiSelectionModelGets the current mode for the select all checkbox visibility.- Specified by:
getSelectAllCheckboxVisibilityin interfaceGridMultiSelectionModel<T>- Returns:
- the select all checkbox visibility mode
- See Also:
GridMultiSelectionModel.SelectAllCheckboxVisibility,GridMultiSelectionModel.isSelectAllCheckboxVisible()
-
isSelectAllCheckboxVisible
public boolean isSelectAllCheckboxVisible()
Description copied from interface:GridMultiSelectionModelReturns whether the select all checkbox will be visible with the current setting ofGridMultiSelectionModel.setSelectAllCheckboxVisibility(SelectAllCheckboxVisibility)and the type of data set to the Grid (in-memory or lazy).The select all checkbox will never be shown if the Grid uses lazy loading with unknown item count, meaning that no count callback has been provided.
- Specified by:
isSelectAllCheckboxVisiblein interfaceGridMultiSelectionModel<T>- Returns:
trueif the checkbox will be visible with the current settings- See Also:
GridMultiSelectionModel.SelectAllCheckboxVisibility,GridMultiSelectionModel.setSelectAllCheckboxVisibility(SelectAllCheckboxVisibility)
-
generateData
public void generateData(T item, elemental.json.JsonObject jsonObject)
Description copied from interface:DataGeneratorAdds custom data for the given item to its serializedJsonObjectrepresentation. This JSON object will be sent to client-side DataProvider.- Specified by:
generateDatain interfaceDataGenerator<T>- Parameters:
item- the data item being serializedjsonObject- the JSON object being sent to the client
-
setSelectionColumnFrozen
public void setSelectionColumnFrozen(boolean frozen)
Description copied from interface:GridMultiSelectionModelSets the selection column's frozen state.- Specified by:
setSelectionColumnFrozenin interfaceGridMultiSelectionModel<T>- Parameters:
frozen- whether to freeze or unfreeze the selection column
-
isSelectionColumnFrozen
public boolean isSelectionColumnFrozen()
Description copied from interface:GridMultiSelectionModelGets the the selection column's frozen state.- Specified by:
isSelectionColumnFrozenin interfaceGridMultiSelectionModel<T>- Returns:
- whether the selection column is frozen
-
setDragSelect
public void setDragSelect(boolean dragSelect)
Description copied from interface:GridMultiSelectionModelIftrue, grid rows can be selected or deselected by dragging the mouse cursor over grid's selection column.- Specified by:
setDragSelectin interfaceGridMultiSelectionModel<T>- Parameters:
dragSelect-trueto enable drag select feature,falsefor disabling it
-
isDragSelect
public boolean isDragSelect()
Description copied from interface:GridMultiSelectionModelGets whether grid drag select is enabled or not.- Specified by:
isDragSelectin interfaceGridMultiSelectionModel<T>- Returns:
trueif drag select feature is enabled,falseotherwise
-
fireSelectionEvent
protected abstract void fireSelectionEvent(SelectionEvent<Grid<T>,T> event)
Method for handling the firing of selection events.- Parameters:
event- the selection event to fire
-
-