aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur <artur@vaadin.com>2017-03-08 09:56:15 +0200
committerIlia Motornyi <elmot@vaadin.com>2017-03-08 09:56:15 +0200
commitf467f3fa2fcfba3ade9e59b15aa28e8a76363d2c (patch)
treee047afbd22a60900cb2df7601bcc423275033a3c
parent58b3bce533044203d64e6fefdcfe8920974ddb78 (diff)
downloadvaadin-framework-f467f3fa2fcfba3ade9e59b15aa28e8a76363d2c.tar.gz
vaadin-framework-f467f3fa2fcfba3ade9e59b15aa28e8a76363d2c.zip
Update column caption when a text is set in the default header row
Fixes #8751
-rw-r--r--server/src/main/java/com/vaadin/ui/Grid.java3
-rw-r--r--server/src/main/java/com/vaadin/ui/components/grid/Header.java11
-rw-r--r--server/src/test/java/com/vaadin/tests/server/component/grid/GridDefaultHeaderTest.java26
3 files changed, 40 insertions, 0 deletions
diff --git a/server/src/main/java/com/vaadin/ui/Grid.java b/server/src/main/java/com/vaadin/ui/Grid.java
index a9f7f743e3..ed74b4c664 100644
--- a/server/src/main/java/com/vaadin/ui/Grid.java
+++ b/server/src/main/java/com/vaadin/ui/Grid.java
@@ -1119,6 +1119,9 @@ public class Grid<T> extends AbstractListing<T> implements HasComponents,
*/
public Column<T, V> setCaption(String caption) {
Objects.requireNonNull(caption, "Header caption can't be null");
+ if (caption.equals(getState(false).caption)) {
+ return this;
+ }
getState().caption = caption;
HeaderRow row = getGrid().getDefaultHeaderRow();
diff --git a/server/src/main/java/com/vaadin/ui/components/grid/Header.java b/server/src/main/java/com/vaadin/ui/components/grid/Header.java
index 421d616387..b6668a0ae2 100644
--- a/server/src/main/java/com/vaadin/ui/components/grid/Header.java
+++ b/server/src/main/java/com/vaadin/ui/components/grid/Header.java
@@ -53,6 +53,17 @@ public abstract class Header extends StaticSection<Header.Row> {
protected Cell() {
super(Row.this);
}
+
+ @Override
+ public void setText(String text) {
+ super.setText(text);
+ if (isDefault()) {
+ Column<?, ?> col = getColumnByInternalId(getColumnId());
+ if (col != null) {
+ col.setCaption(text);
+ }
+ }
+ }
}
/**
diff --git a/server/src/test/java/com/vaadin/tests/server/component/grid/GridDefaultHeaderTest.java b/server/src/test/java/com/vaadin/tests/server/component/grid/GridDefaultHeaderTest.java
index bdecc15c35..e863143bb4 100644
--- a/server/src/test/java/com/vaadin/tests/server/component/grid/GridDefaultHeaderTest.java
+++ b/server/src/test/java/com/vaadin/tests/server/component/grid/GridDefaultHeaderTest.java
@@ -25,6 +25,7 @@ import org.junit.Test;
import com.vaadin.data.ValueProvider;
import com.vaadin.ui.Grid;
import com.vaadin.ui.Grid.Column;
+import com.vaadin.ui.components.grid.HeaderCell;
import com.vaadin.ui.components.grid.HeaderRow;
public class GridDefaultHeaderTest {
@@ -84,4 +85,29 @@ public class GridDefaultHeaderTest {
assertEquals("First", grid.getHeaderRow(0).getCell(column1).getText());
}
+
+ @Test
+ public void updateDefaultRow_columnCaptionUpdated() {
+ grid.getDefaultHeaderRow().getCell(column1).setText("new");
+ assertEquals("new", column1.getCaption());
+ assertEquals("Second", column2.getCaption());
+ }
+
+ @Test
+ public void updateDefaultRowWithMergedCell_columnCaptionNotUpdated() {
+ HeaderCell merged = grid.getDefaultHeaderRow().join(column1, column2);
+ merged.setText("new");
+ assertEquals("First", column1.getCaption());
+ assertEquals("Second", column2.getCaption());
+ }
+
+ @Test
+ public void updateColumnCaption_defaultRowWithMergedCellNotUpdated() {
+ HeaderCell merged = grid.getDefaultHeaderRow().join(column1, column2);
+ merged.setText("new");
+ column1.setCaption("foo");
+ column2.setCaption("bar");
+
+ assertEquals("new", merged.getText());
+ }
}