Skip to content

Commit

Permalink
Fix broken method signature of Grid.addColumn (#8180)
Browse files Browse the repository at this point in the history
Fixes #8129
  • Loading branch information
ahie committed Jan 10, 2017
1 parent 3ef3078 commit 5e89da2
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 2 deletions.
3 changes: 1 addition & 2 deletions server/src/main/java/com/vaadin/ui/Grid.java
Expand Up @@ -34,7 +34,6 @@
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.function.BinaryOperator; import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;


Expand Down Expand Up @@ -1855,7 +1854,7 @@ public <V> void fireColumnVisibilityChangeEvent(Column<T, V> column,
* *
* @return the new column * @return the new column
*/ */
public Column<T, String> addColumn(ValueProvider<T, String> valueProvider) { public Column<T, String> addColumn(ValueProvider<T, ?> valueProvider) {
return addColumn(t -> String.valueOf(valueProvider.apply(t)), return addColumn(t -> String.valueOf(valueProvider.apply(t)),
new TextRenderer()); new TextRenderer());
} }
Expand Down
Expand Up @@ -35,6 +35,7 @@ public void setUp() {


grid.addColumn(ValueProvider.identity()).setId("foo"); grid.addColumn(ValueProvider.identity()).setId("foo");
grid.addColumn(String::length, new NumberRenderer()); grid.addColumn(String::length, new NumberRenderer());
grid.addColumn(string -> new Object());
grid.addColumn(ValueProvider.identity()).setId("randomColumnId"); grid.addColumn(ValueProvider.identity()).setId("randomColumnId");
} }


Expand Down
@@ -0,0 +1,22 @@
package com.vaadin.tests.components.grid;

import com.vaadin.data.ValueProvider;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Grid;
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());
grid.addColumn(String::length, new NumberRenderer());
grid.addColumn(String::length);
grid.addColumn(string -> -string.length());
grid.addColumn(string -> new Object());
grid.setItems("a", "aa", "aaa");
addComponent(grid);
}
}
@@ -0,0 +1,68 @@
package com.vaadin.tests.components.grid;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;

import com.vaadin.testbench.elements.GridElement;
import com.vaadin.tests.tb3.SingleBrowserTest;

public class GridAddColumnTest extends SingleBrowserTest {

GridElement grid;

@Before
public void init() {
openTestURL();
grid = $(GridElement.class).first();
}

@Test
public void columns_rendered_correctly() {
assertCellEquals(0, 0, "a");
assertCellEquals(1, 0, "aa");
assertCellEquals(2, 0, "aaa");

assertCellEquals(0, 1, "1");
assertCellEquals(1, 1, "2");
assertCellEquals(2, 1, "3");

assertCellEquals(0, 2, "1");
assertCellEquals(1, 2, "2");
assertCellEquals(2, 2, "3");

assertCellEquals(0, 3, "-1");
assertCellEquals(1, 3, "-2");
assertCellEquals(2, 3, "-3");

assertCellStartsWith(0, 4, "java.lang.Object@");
assertCellStartsWith(1, 4, "java.lang.Object@");
assertCellStartsWith(2, 4, "java.lang.Object@");
}

@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(1, 0, "aa");
assertCellEquals(2, 0, "aaa");

grid.getHeaderCell(0, 3).click();
assertCellEquals(0, 0, "aaa");
assertCellEquals(1, 0, "aa");
assertCellEquals(2, 0, "a");
}

private void assertCellEquals(int rowIndex, int colIndex, String content) {
Assert.assertEquals("Cell text should equal", content,
grid.getCell(rowIndex, colIndex).getText());
}

private void assertCellStartsWith(int rowIndex, int colIndex,
String startsWith) {
Assert.assertTrue("Cell text should start with", grid
.getCell(rowIndex, colIndex).getText().startsWith(startsWith));
}
}

0 comments on commit 5e89da2

Please sign in to comment.