Add APIs to inform components of stale objects in DataProvider (#8271)
* Add DataProvider refreshItem for single item update
* Add 'id' concept for DataProviders
This patch also adds a simplified data provider that can replace items
based on their id. This can be used to simulate stale objects from an actual
backend.
* Add refresh logic to Grid SelectionModels
* Remove broken equals and hashCode
* Refresh KeyMapper, clean up some methods
* Fix UI.access in test
* Fix tests and Grid single selection model
* Do clean up before replacing data provider
* Check correct variable for null value
* Fix other selects, add generic tests
* Code style fixes, removed assert
* Merge remote-tracking branch 'origin/master' into 286_refresh_items
* Fix documentation for refreshing an item
* Improve introduction chapter, minor clarifications
* Merge remote-tracking branch 'origin/master' into 287_refresh_items
* Add missing parameters in unit tests
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
Extracts grid single selection into separate class, which
is an extension like in V7. Using an extension makes it
possible to easily add multiselect and no-select modes back,
and support custom selection models.
Adds Grid:asSingleSelect() SingleSelect so that grid can be
used as a Select in a binder.
Removes all remaining references to SelectionModels in Listings.
Renames SingleSelectionChangeEvent to SingleSelectionEvent, because
then it is unified with selection listener and MultiSelectionEvent.
Fixes vaadin/framework8-issues#424
Fixes vaadin/framework8-issues#425
Change-Id: Ie22bef29cfd4336c3f65d4e63531c578b8dd76a3