*/
@OnStateChange("header")
void updateHeader() {
- final Grid<JsonObject> grid = getWidget();
- final SectionState state = getState().header;
+ Scheduler.get().scheduleFinally(() -> {
+ final Grid<JsonObject> grid = getWidget();
+ final SectionState state = getState().header;
- while (grid.getHeaderRowCount() > 0) {
- grid.removeHeaderRow(0);
- }
+ while (grid.getHeaderRowCount() > 0) {
+ grid.removeHeaderRow(0);
+ }
- for (RowState rowState : state.rows) {
- HeaderRow row = grid.appendHeaderRow();
+ for (RowState rowState : state.rows) {
+ HeaderRow row = grid.appendHeaderRow();
- if (rowState.defaultHeader) {
- grid.setDefaultHeaderRow(row);
- }
+ if (rowState.defaultHeader) {
+ grid.setDefaultHeaderRow(row);
+ }
- updateStaticRow(rowState, row);
- }
+ updateStaticRow(rowState, row);
+ }
+ });
}
private void updateStaticRow(RowState rowState,
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.Column;
+import com.vaadin.ui.Label;
import com.vaadin.ui.renderers.NumberRenderer;
public class GridAddColumn extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
Grid<String> grid = new Grid<>();
- grid.addColumn(ValueProvider.identity());
+ Column<String, String> col0 = grid.addColumn(ValueProvider.identity())
+ .setCaption("First column");
+ grid.getDefaultHeaderRow().getCell(col0)
+ .setComponent(new Label("Label Header"));
grid.addColumn(String::length, new NumberRenderer());
grid.addColumn(String::length);
grid.addColumn(string -> -string.length());
import org.junit.Assert;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
+import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement;
+import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class GridAddColumnTest extends SingleBrowserTest {
}
@Test
- @Ignore // TODO re-enable once #8128 is resolved
public void sort_column_with_automatic_conversion() {
grid.getHeaderCell(0, 2).click();
assertCellEquals(0, 0, "a");
assertCellEquals(2, 0, "a");
}
+ @Test
+ public void initial_header_content() {
+ GridCellElement firstHeader = grid.getHeaderCell(0, 0);
+ Assert.assertTrue("No label element in header",
+ firstHeader.isElementPresent(By.className("v-label")));
+ Assert.assertEquals("Text in label does not match", "Label Header",
+ firstHeader.getText());
+ }
+
private void assertCellEquals(int rowIndex, int colIndex, String content) {
Assert.assertEquals("Cell text should equal", content,
grid.getCell(rowIndex, colIndex).getText());