]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixed update order of column state #13334 7.4.0.alpha1
authorJohn Ahlroos <john@vaadin.com>
Mon, 28 Apr 2014 14:04:30 +0000 (17:04 +0300)
committerJohn Ahlroos <john@vaadin.com>
Mon, 28 Apr 2014 14:04:30 +0000 (17:04 +0300)
Change-Id: I7882027441a5ea0389189fd08c2918e33afe71b6

client/src/com/vaadin/client/ui/grid/GridConnector.java

index e8620970096163765e3162199fca156fdfaeb255..e55a71cb2ead412578a5bd039eb33b1d45563de2 100644 (file)
@@ -204,11 +204,20 @@ public class GridConnector extends AbstractComponentConnector {
     private void addColumnFromStateChangeEvent(int columnIndex) {
         GridColumnState state = getState().columns.get(columnIndex);
         CustomGridColumn column = new CustomGridColumn(columnIndex);
-        updateColumnFromState(column, state);
-
         columnIdToColumn.put(state.id, column);
 
+        // Adds a column to grid, and registers Grid with the column.
         getWidget().addColumn(column, columnIndex);
+
+        /*
+         * Have to update state _after_ the column has been added to the grid as
+         * then, and only then, the column will call the grid which in turn will
+         * call the escalator's refreshRow methods on header/footer/body and
+         * visually refresh the row. If this is done in the reverse order the
+         * first column state update will be lost as no grid instance is
+         * present.
+         */
+        updateColumnFromState(column, state);
     }
 
     /**