summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2015-11-25 12:20:24 +0200
committerVaadin Code Review <review@vaadin.com>2015-11-25 11:15:22 +0000
commit459bb376e4005fdd32b2653a9ba8d8df90b8d560 (patch)
tree833756968257d1bd0f8d6298ee5e4397efdde083 /server
parentb4d0865f93c5ba8e08957812bc563f4ad2e9d00f (diff)
downloadvaadin-framework-459bb376e4005fdd32b2653a9ba8d8df90b8d560.tar.gz
vaadin-framework-459bb376e4005fdd32b2653a9ba8d8df90b8d560.zip
Fix setSelected in MultiSelectionModel to update row data (#19302)
Change-Id: I32c980b2cae199ad2059701e4e04b4a7cb76bafa
Diffstat (limited to 'server')
-rw-r--r--server/src/com/vaadin/server/communication/data/RpcDataProviderExtension.java3
-rw-r--r--server/src/com/vaadin/ui/Grid.java9
2 files changed, 9 insertions, 3 deletions
diff --git a/server/src/com/vaadin/server/communication/data/RpcDataProviderExtension.java b/server/src/com/vaadin/server/communication/data/RpcDataProviderExtension.java
index fed31646f4..55b486d4b6 100644
--- a/server/src/com/vaadin/server/communication/data/RpcDataProviderExtension.java
+++ b/server/src/com/vaadin/server/communication/data/RpcDataProviderExtension.java
@@ -499,11 +499,12 @@ public class RpcDataProviderExtension extends AbstractExtension {
return;
}
+ Collection<Object> activeItemIds = activeItemHandler.getActiveItemIds();
List<Column> columns = getGrid().getColumns();
JsonArray rowData = Json.createArray();
int i = 0;
for (Object itemId : itemIds) {
- if (activeItemHandler.getActiveItemIds().contains(itemId)) {
+ if (activeItemIds.contains(itemId)) {
Item item = container.getItem(itemId);
if (item != null) {
JsonObject row = getRowData(columns, itemId, item);
diff --git a/server/src/com/vaadin/ui/Grid.java b/server/src/com/vaadin/ui/Grid.java
index 0f3e634ed3..c75013b8c6 100644
--- a/server/src/com/vaadin/ui/Grid.java
+++ b/server/src/com/vaadin/ui/Grid.java
@@ -1810,12 +1810,18 @@ public class Grid extends AbstractFocusable implements SelectionNotifier,
if (!added.isEmpty()) {
changed = true;
selection.addAll(added);
+ for (Object id : added) {
+ refreshRow(id);
+ }
}
Set<Object> removed = getDifference(selection, selectedRows);
if (!removed.isEmpty()) {
changed = true;
selection.removeAll(removed);
+ for (Object id : removed) {
+ refreshRow(id);
+ }
}
if (changed) {
@@ -5826,8 +5832,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier,
}
/**
- * Gets the
- * {@link KeyMapper } being used by the data source.
+ * Gets the {@link KeyMapper } being used by the data source.
*
* @return the key mapper being used by the data source
*/