summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2009-05-12 06:40:51 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2009-05-12 06:40:51 +0000
commit0eec7306e60b370b2be30f489931cf742615d98d (patch)
treec3508c291af3dc87e64d12721c2ddcfceee8b77a
parent7a2b28fc1d3863677819e0be0065cbb20991e85b (diff)
downloadvaadin-framework-0eec7306e60b370b2be30f489931cf742615d98d.tar.gz
vaadin-framework-0eec7306e60b370b2be30f489931cf742615d98d.zip
fixes #2933, regression from #2823
svn changeset:7750/svn branch:6.0
-rw-r--r--src/com/vaadin/ui/Table.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/vaadin/ui/Table.java b/src/com/vaadin/ui/Table.java
index de1e744da2..426560c4a8 100644
--- a/src/com/vaadin/ui/Table.java
+++ b/src/com/vaadin/ui/Table.java
@@ -1422,6 +1422,26 @@ public class Table extends AbstractSelect implements Action.Container,
} else if (iscomponent[j]) {
value = p.getValue();
+ if (p instanceof Property.ValueChangeNotifier) {
+ /*
+ * Component in property may change ->
+ * listen value changes events.
+ */
+ if (oldListenedProperties == null
+ || !oldListenedProperties
+ .contains(p)) {
+ ((Property.ValueChangeNotifier) p)
+ .addListener(this);
+ }
+ /*
+ * register listened properties, so we
+ * can do proper cleanup to free memory.
+ * Essential if table has loads of data
+ * and it is used for a long time.
+ */
+ listenedProperties.add(p);
+
+ }
} else if (p != null) {
value = getPropertyValue(id, colids[j], p);
/*