From 2a17253cbc11d9ecb097ba3f995fc862e88028e3 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Tue, 21 Sep 2010 11:06:12 +0000 Subject: fixes #3165 svn changeset:15102/svn branch:6.4 --- src/com/vaadin/ui/Table.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/com') diff --git a/src/com/vaadin/ui/Table.java b/src/com/vaadin/ui/Table.java index 10d334e129..16cf8f3d7e 100644 --- a/src/com/vaadin/ui/Table.java +++ b/src/com/vaadin/ui/Table.java @@ -3073,6 +3073,28 @@ public class Table extends AbstractSelect implements Action.Container, Container.PropertySetChangeEvent event) { super.containerPropertySetChange(event); + // sanitetize visibleColumns. note that we are not adding previously + // non-existing properties as columns + Collection containerPropertyIds = getContainerDataSource() + .getContainerPropertyIds(); + for (Iterator iterator = visibleColumns.iterator(); iterator + .hasNext();) { + Object id = iterator.next(); + if (!(containerPropertyIds.contains(id) || columnGenerators + .containsKey(id))) { + iterator.remove(); + } + } + // same for collapsed columns + for (Iterator iterator = collapsedColumns.iterator(); iterator + .hasNext();) { + Object id = iterator.next(); + if (!(containerPropertyIds.contains(id) || columnGenerators + .containsKey(id))) { + iterator.remove(); + } + } + resetPageBuffer(); refreshRenderedCells(); } -- cgit v1.2.3