Fix RpcDataProvider listener handling on ItemSetChange (#19371)
Old ValueChangeListeners are discarded and new ones created when an
ItemSetChange occurs. This is done to reapply the listeners to possibly
recreated Items.
Change-Id: I9956af8950e241005574c597c49c5efb43afc1c7
Move RpcDataProviderExtension and DataGenerator to correct package
New location is com.vaadin.server.communication.data as the extension
only manages the communication of container data to a client-side data
source.
Change-Id: I7aeefe23c9d771d70bc1dd389bc7f0c3357f0a17
Refactor DetailComponentManager to be a static nested class of Grid
While refactoring any special cases are removed. This needs Grid
extensions to have a way for adding and removing components from Grid.
Removing any and all parts of RpcDataProvider work towards having it
separate from Grid and maybe usable for other components as well.
Change-Id: Ia4e25d5f0acaf2085478346b0ff6e23c8334e1b9
This patch removes DataProviderKeyMapper which was mostly dead code
already. Uses a regular KeyMapper instead.
Change-Id: Ic97d1dc827d45fde65bcddc0414bfe711032620c
Fix DetailsRow communication use connector IDs (#18493)
Details are now initialized when they are made visible. The old way of
requesting when seen caused a lot of problems when moving stuff around.
Now uses less communication, but reserves a bit extra resources due to
all details components being in the hierarchy.
Change-Id: I1c1163bdc306f5b86e5e0f6e2bbf2801e65c2243
Fix Grid details on sort to display them on correct rows (#18224)
Due to the nature of Container this is only achieved by removing any
existing details and reopening those after the sort is done.
Change-Id: Ic42186ed85981d5dad4ff0948aa22f7a0404480d
Fix RpcDataProviderExtension value change listener setup (#16550)
This patch changes value change listener mapping from itemid based to
index based mapping. This makes removing rows much less error prone
Change-Id: I77e9078de4ae61ce5d752cc394aa47bccd505e70
Defer RPC calls in RpcDataProvider to avoid cache issues (#16505)
This patch defers cache refresh and row adding/removing. These calls are
omitted completely when making initial response to the client or
updating the size with bare ItemSetChangeEvents.
Change-Id: I6b350680b3e2381caf6a66c9a4ad283207d024dc
Fix RpcDataProvider cache clearing on bare ItemSetChange (#16481)
This patch optimizes value change listeners and updates a bit in order
to make clean up on cache invalidation easier to perform.
Change-Id: I6ae3e0ef5046bd5f404f5e0a440607cabd48c6a4
Fix Grid handling state changes and RPC calls deferred (#16188)
Some column changes in Grid were not correctly handled by the
RpcDataProviderExtension. These cases are now correctly handled.
Change-Id: I966b1c71d26e77e30e7dd84f26ab9704bd4f1f0f