return null;
}
};
+
+ // Initially set a renderer
+ updateRenderer();
+
getParent().addColumn(column, getState().internalId);
+
}
@SuppressWarnings("unchecked")
// time to remove columns (and have problems with frozen columns)
// before throwing everything away
parent.removeColumn(column);
+ parent = null;
}
column = null;
}
package com.vaadin.tests.components.grid;
+import com.vaadin.annotations.Widgetset;
import com.vaadin.data.ValueProvider;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
import com.vaadin.ui.Grid;
import com.vaadin.ui.Grid.Column;
import com.vaadin.ui.Label;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.renderers.NumberRenderer;
+@Widgetset("com.vaadin.DefaultWidgetSet")
public class GridAddColumn extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
Grid<String> grid = new Grid<>();
+ createColumns(grid);
+ grid.setItems("a", "aa", "aaa");
+ addComponent(grid);
+
+ addComponent(new Button("Replace columns", e -> {
+ grid.removeAllColumns();
+ createColumns(grid);
+ Notification.show("Columns replaced.");
+ }));
+ }
+
+ private void createColumns(Grid<String> grid) {
Column<String, String> col0 = grid.addColumn(ValueProvider.identity())
.setCaption("First column");
grid.getDefaultHeaderRow().getCell(col0)
grid.addColumn(String::length);
grid.addColumn(string -> -string.length());
grid.addColumn(string -> new Object());
- grid.setItems("a", "aa", "aaa");
- addComponent(grid);
}
}
import org.junit.Test;
import com.vaadin.testbench.By;
+import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
+import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class GridAddColumnTest extends SingleBrowserTest {
firstHeader.getText());
}
+ @Test
+ public void replace_all_columns() {
+ $(ButtonElement.class).first().click();
+
+ // Verify button got clicked
+ Assert.assertTrue(isElementPresent(NotificationElement.class));
+ Assert.assertEquals("Columns replaced.",
+ $(NotificationElement.class).first().getText());
+
+ // Run default rendering test
+ columns_rendered_correctly();
+ }
+
private void assertCellEquals(int rowIndex, int colIndex, String content) {
Assert.assertEquals("Cell text should equal", content,
grid.getCell(rowIndex, colIndex).getText());