Lazy loading with the Grid component
A Grid
component can take advantage of the offset
and limit
parameters described in the previous section by using the setDataProvider
method, as follows:
grid.setDataProvider( (sortOrders, offset, limit) -> CallRepository.findAll(offset, limit).stream(), () -> CallRepository.count() );
The previous code defines two lambda expressions:
(sortOrders, offset, limit) -> service.find(...)
: This lambda expression should return all the items used in slice defined by theoffset
andlimit
parameters (we will see how to use thesortOrders
parameters later)() -> service.count()
: This lambda expression should return the total count of items available with no slices
The setDataProvider
method we used in the previous example receives an instance of FetchItemsCallback
, a functional interface that defines a method to fetch the items (or rows):
@FunctionalInterface
public interface FetchItemsCallback<T> extends Serializable {
public Stream...