Browse Source

Add convenience overloading for setColumn (#12093)

Fixes: https://github.com/vaadin/framework/issues/7773
tags/8.12.0.alpha2^0
Tatu Lund 3 years ago
parent
commit
665f3355a2
No account linked to committer's email address

+ 22
- 0
server/src/main/java/com/vaadin/ui/Grid.java View File

@@ -4020,6 +4020,28 @@ public class Grid<T> extends AbstractListing<T> implements HasComponents,
.forEach(this::removeColumn);
}

/**
* Sets the columns and their order based on their column ids provided that
* collection supports preserving of the order. Columns currently in this
* grid that are not present in the collection of column ids are removed.
* This includes any column that has no id. Similarly, any new column in
* columns will be added to this grid. New columns can only be added for a
* <code>Grid</code> created using {@link Grid#Grid(Class)} or
* {@link #withPropertySet(PropertySet)}.
*
*
* @param columnIds
* the column ids to set
*
* @see Column#setId(String)
* @see #setColumns(String...)
*/
public void setColumns(Collection<String> columnIds) {
Objects.requireNonNull(columnIds, "columnIds can't be null");
String[] columns = columnIds.toArray(new String[columnIds.size()]);
setColumns(columns);
}

private String getGeneratedIdentifier() {
String columnId = "" + counter;
counter++;

+ 19
- 0
server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java View File

@@ -570,6 +570,25 @@ public class GridTest {
assertEquals("name", columns.get(1).getId());
}

@Test
public void setColumns_addColumns_v2_beangrid() {
Grid<Person> grid = new Grid<>(Person.class);

// Remove so we can add it back
grid.removeColumn("name");

List<String> columnIds = new ArrayList<>();
columnIds.add("born");
columnIds.add("name");

grid.setColumns(columnIds);

List<Column<Person, ?>> columns = grid.getColumns();
assertEquals(2, columns.size());
assertEquals("born", columns.get(0).getId());
assertEquals("name", columns.get(1).getId());
}

@Test
public void setColumnOrder_byColumn() {
grid.setColumnOrder(randomColumn, lengthColumn);

Loading…
Cancel
Save