]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix Grid.addColumn without renderer to accept any type (#7974)
authorTeemu Suo-Anttila <tsuoanttila@users.noreply.github.com>
Wed, 14 Dec 2016 10:38:31 +0000 (12:38 +0200)
committerAleksi Hietanen <aleksi@vaadin.com>
Wed, 14 Dec 2016 10:38:31 +0000 (12:38 +0200)
Closes vaadin/framework8-issues#500

server/src/main/java/com/vaadin/ui/Grid.java

index 60bd9abcaf8d7ef4581f5e59efdc8839364d7b08..11dfb464b91d51d563874966e3d26770991fe40d 100644 (file)
@@ -79,7 +79,6 @@ import com.vaadin.shared.ui.grid.HeightMode;
 import com.vaadin.shared.ui.grid.SectionState;
 import com.vaadin.shared.util.SharedUtil;
 import com.vaadin.ui.Grid.FooterRow;
-import com.vaadin.ui.Grid.SelectionMode;
 import com.vaadin.ui.components.grid.AbstractSelectionModel;
 import com.vaadin.ui.components.grid.EditorImpl;
 import com.vaadin.ui.components.grid.Footer;
@@ -1869,7 +1868,7 @@ public class Grid<T> extends AbstractListing<T>
                 /*
                  * This is a fake editor just to have something (otherwise
                  * "setEditable" throws an exception.
-                 * 
+                 *
                  * Let's use TextField here because we support only Strings as
                  * inline data type. It will work incorrectly for other types
                  * but we don't support them anyway.
@@ -2487,9 +2486,11 @@ public class Grid<T> extends AbstractListing<T>
     }
 
     /**
-     * Adds a new text column to this {@link Grid} with string value provider.
-     * The column will use a {@link TextRenderer}. Identifier for the column is
-     * generated automatically.
+     * Adds a new text column to this {@link Grid} with a value provider. The
+     * column will use a {@link TextRenderer}. The value is converted to a
+     * String using {@link Object#toString()}. Sorting in memory is executed by
+     * comparing the String values. Identifier for the column is generated
+     * automatically.
      *
      * @param valueProvider
      *            the value provider
@@ -2497,8 +2498,9 @@ public class Grid<T> extends AbstractListing<T>
      * @return the new column
      */
     public Column<T, String> addColumn(
-            SerializableFunction<T, String> valueProvider) {
-        return addColumn(getGeneratedIdentifier(), valueProvider,
+            SerializableFunction<T, ?> valueProvider) {
+        return addColumn(getGeneratedIdentifier(),
+                t -> String.valueOf(valueProvider.apply(t)),
                 new TextRenderer());
     }