diff --git a/server/src/main/java/com/vaadin/ui/Grid.java b/server/src/main/java/com/vaadin/ui/Grid.java index c6f123ace07..55244113a84 100644 --- a/server/src/main/java/com/vaadin/ui/Grid.java +++ b/server/src/main/java/com/vaadin/ui/Grid.java @@ -3708,6 +3708,16 @@ private void readStructure(Element design, DesignContext context) { getFooter().readDesign(child, context); } } + + // Sync default header captions to column captions + if (getDefaultHeaderRow() != null) { + for (Column c : getColumns()) { + HeaderCell headerCell = getDefaultHeaderRow().getCell(c); + if (headerCell.getCellType() == GridStaticCellType.TEXT) { + c.setCaption(headerCell.getText()); + } + } + } } private void readData(Element body, diff --git a/server/src/test/java/com/vaadin/tests/server/component/grid/GridDeclarativeTest.java b/server/src/test/java/com/vaadin/tests/server/component/grid/GridDeclarativeTest.java index b41d50d4d4f..583c378323c 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/grid/GridDeclarativeTest.java +++ b/server/src/test/java/com/vaadin/tests/server/component/grid/GridDeclarativeTest.java @@ -806,11 +806,9 @@ private void assertColumns(int expectedCount, // Property mapping Assert.assertEquals(expectedColumn.getId(), column.getId()); - // Not tested because of - // https://github.com/vaadin/framework/issues/8752 // Header caption - // Assert.assertEquals(expectedColumn.getCaption(), - // column.getCaption()); + Assert.assertEquals(expectedColumn.getCaption(), + column.getCaption()); // Value providers are not stored in the declarative file // so this only works for bean properties