Add static helpers for creating callback data providers (#8314)
Cannot overload the same create method for this purpose since it
conflicts with T... overload. Each case is instead given its own
descriptive but still discoverable method name.
Change BackEndDataProvider into an interface (#8268)
* Change BackEndDataProvider into an interface
BackEndDataProvider is now an interface with methods for setting
sorting options based on SortOrder instances.
AbstractBackEndDataProvider stores sorting options, combines them with
the sorting provided in the query and invokes its own abstract fetch and
size methods.
CallbackDataProvider implements a BackEndDataProvider based on two
lambdas.
This is one of many steps towards #8245
Replace Listing with HasDataProvider and HasFilterableDataProvider (#8122)
* Replace Listing with HasDataProvider and HasFilterableDataProvider
The type parameters of the Listing interface does in practice mean that
it isn't useful for anything. This patch replaces that interface with
separate types for components that require filterable data providers and
components that support any kind of data provider.
The setItem methods are extracted to a common interface that is also
directly implemented by AbstractListing.
Correctly reset DataCommunicator when its DataProvider is changed (#8138)
* Correctly reset DataCommunicator when its DataProvider is changed
* Improve ReplaceDataProviderTest
* Remove return type from AbstractListing.readItems
Type Listing for DataProvider to allow custom filter types
Listing has been moved from AbstractListing to each individual Component.
ComboBox is now typed to String filter.
Fixes issues with declarative read of items.
Change-Id: I6918f9f8c426dcbd81546150c2cf9ed49a02bf50
Also add a no-op default implementation to destroyData,
making DataGenerator a functional interface.
Change-Id: I546f443150da23debd4a2691003e435367469439