From 4e0bfcdd1f49050911029383f59ff2f94e82650e Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Fri, 11 Dec 2015 10:58:06 +0200 Subject: Reapply DataGenerators when container changes (#19357, #19359) Previously on container change Grid applied only its internal DataGenerators to the new RpcDataProviderExtension. Now it goes through all existing Extensions and adds all DataGenerators to the data provider. Change-Id: Idbd48e5152867b1d2b7a770741e3ea08aa4299b6 --- server/src/com/vaadin/ui/Grid.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/server/src/com/vaadin/ui/Grid.java b/server/src/com/vaadin/ui/Grid.java index e1c7e894a3..cad02a6ea6 100644 --- a/server/src/com/vaadin/ui/Grid.java +++ b/server/src/com/vaadin/ui/Grid.java @@ -4859,6 +4859,11 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, removeExtension(datasourceExtension); } + // Remove old DetailComponentManager + if (detailComponentManager != null) { + detailComponentManager.remove(); + } + resetEditor(); datasource = container; @@ -4893,6 +4898,11 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, datasourceExtension = new RpcDataProviderExtension(container); datasourceExtension.extend(this); datasourceExtension.addDataGenerator(new RowDataGenerator()); + for (Extension e : getExtensions()) { + if (e instanceof DataGenerator) { + datasourceExtension.addDataGenerator((DataGenerator) e); + } + } detailComponentManager = new DetailComponentManager(this); -- cgit v1.2.3