summaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/ui/Table.java
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-08-03 14:24:33 +0300
committerLeif Åstrand <leif@vaadin.com>2012-08-03 14:24:33 +0300
commit94f81dc79526a257451c6638a0696e7505227cb7 (patch)
tree13f094b896c74032ab86d079362a511f8ce478a1 /src/com/vaadin/ui/Table.java
parent406c50ad6cbe537ce709b8958272f93c919e9653 (diff)
parentbc5831f069f648fbf0d89a863b28d80dc4c2bf35 (diff)
downloadvaadin-framework-94f81dc79526a257451c6638a0696e7505227cb7.tar.gz
vaadin-framework-94f81dc79526a257451c6638a0696e7505227cb7.zip
Merge remote-tracking branch 'origin/6.8'
+ add @Override Conflicts: src/com/vaadin/terminal/gwt/client/Util.java src/com/vaadin/terminal/gwt/client/ui/VOverlay.java src/com/vaadin/terminal/gwt/client/ui/menubar/VMenuBar.java src/com/vaadin/terminal/gwt/client/ui/popupview/VPopupView.java src/com/vaadin/terminal/gwt/client/ui/table/VScrollTable.java src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java src/com/vaadin/ui/LoginForm.java src/com/vaadin/ui/Table.java tests/test.xml
Diffstat (limited to 'src/com/vaadin/ui/Table.java')
-rw-r--r--src/com/vaadin/ui/Table.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/com/vaadin/ui/Table.java b/src/com/vaadin/ui/Table.java
index 71f41fb257..39b7fb7473 100644
--- a/src/com/vaadin/ui/Table.java
+++ b/src/com/vaadin/ui/Table.java
@@ -538,6 +538,13 @@ public class Table extends AbstractSelect implements Action.Container,
private HashMap<Object, Converter<String, Object>> propertyValueConverters = new HashMap<Object, Converter<String, Object>>();
+ /**
+ * Set to true if the client-side should be informed that the key mapper has
+ * been reset so it can avoid sending back references to keys that are no
+ * longer present.
+ */
+ private boolean keyMapperReset;
+
/* Table constructors */
/**
@@ -2890,6 +2897,11 @@ public class Table extends AbstractSelect implements Action.Container,
paintVisibleColumns(target);
+ if (keyMapperReset) {
+ keyMapperReset = false;
+ target.addAttribute(VScrollTable.ATTRIBUTE_KEY_MAPPER_RESET, true);
+ }
+
if (dropHandler != null) {
dropHandler.getAcceptCriterion().paint(target);
}
@@ -4053,6 +4065,10 @@ public class Table extends AbstractSelect implements Action.Container,
public void containerItemSetChange(Container.ItemSetChangeEvent event) {
super.containerItemSetChange(event);
+ // super method clears the key map, must inform client about this to
+ // avoid getting invalid keys back (#8584)
+ keyMapperReset = true;
+
// ensure that page still has first item in page, ignore buffer refresh
// (forced in this method)
setCurrentPageFirstItemIndex(getCurrentPageFirstItemIndex(), false);