diff options
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/main/java/com/vaadin/client/connectors/grid/GridConnector.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/client/src/main/java/com/vaadin/client/connectors/grid/GridConnector.java b/client/src/main/java/com/vaadin/client/connectors/grid/GridConnector.java index 4686b3bd21..a19c955fc4 100644 --- a/client/src/main/java/com/vaadin/client/connectors/grid/GridConnector.java +++ b/client/src/main/java/com/vaadin/client/connectors/grid/GridConnector.java @@ -53,6 +53,7 @@ import com.vaadin.client.widget.grid.sort.SortEvent; import com.vaadin.client.widget.grid.sort.SortOrder; import com.vaadin.client.widgets.Grid; import com.vaadin.client.widgets.Grid.Column; +import com.vaadin.client.widgets.Grid.FooterRow; import com.vaadin.client.widgets.Grid.HeaderRow; import com.vaadin.shared.MouseEventDetails; import com.vaadin.shared.data.DataCommunicatorConstants; @@ -264,6 +265,27 @@ public class GridConnector } } + /** + * Updates the grid footer section on state change. + */ + @OnStateChange("footer") + void updateFooter() { + final Grid<JsonObject> grid = getWidget(); + final SectionState state = getState().footer; + + while (grid.getFooterRowCount() > 0) { + grid.removeFooterRow(0); + } + + for (RowState rowState : state.rows) { + FooterRow row = grid.appendFooterRow(); + + rowState.cells.forEach((columnId, cellState) -> { + row.getCell(getColumn(columnId)).setText(cellState.text); + }); + } + } + @Override public void setDataSource(DataSource<JsonObject> dataSource) { super.setDataSource(dataSource); |