From 0eec7306e60b370b2be30f489931cf742615d98d Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Tue, 12 May 2009 06:40:51 +0000 Subject: [PATCH] fixes #2933, regression from #2823 svn changeset:7750/svn branch:6.0 --- src/com/vaadin/ui/Table.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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); /* -- 2.39.5