]> source.dussan.org Git - vaadin-framework.git/commitdiff
improved #3165 fix (some cleanup on orphaned columns done better, also lighter on...
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 22 Sep 2010 08:18:38 +0000 (08:18 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 22 Sep 2010 08:18:38 +0000 (08:18 +0000)
svn changeset:15122/svn branch:6.4

src/com/vaadin/ui/Table.java

index 16cf8f3d7e77920ee206aac44a045f705b177d8b..45d27dfae0d5ee3a035ba30ab4ab4922ca8f06d9 100644 (file)
@@ -3071,13 +3071,17 @@ public class Table extends AbstractSelect implements Action.Container,
     @Override
     public void containerPropertySetChange(
             Container.PropertySetChangeEvent event) {
+        disableContentRefreshing();
         super.containerPropertySetChange(event);
 
         // sanitetize visibleColumns. note that we are not adding previously
         // non-existing properties as columns
         Collection<?> containerPropertyIds = getContainerDataSource()
                 .getContainerPropertyIds();
-        for (Iterator<Object> iterator = visibleColumns.iterator(); iterator
+
+        LinkedList<Object> newVisibleColumns = new LinkedList<Object>(
+                visibleColumns);
+        for (Iterator<Object> iterator = newVisibleColumns.iterator(); iterator
                 .hasNext();) {
             Object id = iterator.next();
             if (!(containerPropertyIds.contains(id) || columnGenerators
@@ -3085,6 +3089,7 @@ public class Table extends AbstractSelect implements Action.Container,
                 iterator.remove();
             }
         }
+        setVisibleColumns(newVisibleColumns.toArray());
         // same for collapsed columns
         for (Iterator<Object> iterator = collapsedColumns.iterator(); iterator
                 .hasNext();) {
@@ -3096,7 +3101,7 @@ public class Table extends AbstractSelect implements Action.Container,
         }
 
         resetPageBuffer();
-        refreshRenderedCells();
+        enableContentRefreshing(true);
     }
 
     /**