diff options
author | Teemu Suo-Anttila <teemusa@vaadin.com> | 2016-11-21 16:37:10 +0200 |
---|---|---|
committer | Teemu Suo-Anttila <teemusa@vaadin.com> | 2016-11-21 16:37:10 +0200 |
commit | a8f5b1fb08b4eba5918aadb936030842aa9d9aed (patch) | |
tree | 32c662b54f18b746ee8472940a2770fe27d58f1a | |
parent | dd907e839d2a3f2da2ce04d59b4e9e94cc7a634f (diff) | |
download | vaadin-framework-a8f5b1fb08b4eba5918aadb936030842aa9d9aed.tar.gz vaadin-framework-a8f5b1fb08b4eba5918aadb936030842aa9d9aed.zip |
Add Filter parameter to DataProvider
Change-Id: Ic65b8decb3ac8d4dde9bca6cfb40a2a70f461e91
21 files changed, 108 insertions, 92 deletions
diff --git a/server/src/main/java/com/vaadin/data/Listing.java b/server/src/main/java/com/vaadin/data/Listing.java index c866187518..8f94296057 100644 --- a/server/src/main/java/com/vaadin/data/Listing.java +++ b/server/src/main/java/com/vaadin/data/Listing.java @@ -24,7 +24,7 @@ import com.vaadin.server.data.DataProvider; * A generic interface for components that show a list of data. * * @author Vaadin Ltd. - * + * * @param <T> * the item data type * @since 8.0 @@ -36,16 +36,16 @@ public interface Listing<T> extends Serializable { * * @return the data provider, not null */ - DataProvider<T> getDataProvider(); + DataProvider<T, ?> getDataProvider(); /** - * Sets the data provider for this listing. The data provider is - * queried for displayed items as needed. + * Sets the data provider for this listing. The data provider is queried for + * displayed items as needed. * * @param dataProvider * the data provider, not null */ - void setDataProvider(DataProvider<T> dataProvider); + void setDataProvider(DataProvider<T, ?> dataProvider); /** * Sets the collection of data items of this listing. diff --git a/server/src/main/java/com/vaadin/server/data/AbstractDataProvider.java b/server/src/main/java/com/vaadin/server/data/AbstractDataProvider.java index 531d77e44c..adb1bed36d 100644 --- a/server/src/main/java/com/vaadin/server/data/AbstractDataProvider.java +++ b/server/src/main/java/com/vaadin/server/data/AbstractDataProvider.java @@ -22,14 +22,19 @@ import com.vaadin.event.EventRouter; import com.vaadin.shared.Registration; /** - * Abstract data provider implementation which takes care of refreshing data from - * the underlying data provider. - * + * Abstract data provider implementation which takes care of refreshing data + * from the underlying data provider. + * + * @param <T> + * data type + * @param <F> + * filter type + * * @author Vaadin Ltd * @since 8.0 * */ -public abstract class AbstractDataProvider<T> implements DataProvider<T> { +public abstract class AbstractDataProvider<T, F> implements DataProvider<T, F> { private EventRouter eventRouter; @@ -60,8 +65,8 @@ public abstract class AbstractDataProvider<T> implements DataProvider<T> { * the activation method. * */ - protected void addListener(Class<?> eventType, DataProviderListener listener, - Method method) { + protected void addListener(Class<?> eventType, + DataProviderListener listener, Method method) { if (eventRouter == null) { eventRouter = new EventRouter(); } diff --git a/server/src/main/java/com/vaadin/server/data/BackEndDataProvider.java b/server/src/main/java/com/vaadin/server/data/BackEndDataProvider.java index 8d267f1230..0f83710d90 100644 --- a/server/src/main/java/com/vaadin/server/data/BackEndDataProvider.java +++ b/server/src/main/java/com/vaadin/server/data/BackEndDataProvider.java @@ -27,11 +27,13 @@ import com.vaadin.server.SerializableFunction; * * @param <T> * data provider data type + * @param <F> + * data provider filter type */ -public class BackEndDataProvider<T> extends AbstractDataProvider<T> { +public class BackEndDataProvider<T, F> extends AbstractDataProvider<T, F> { - private final SerializableFunction<Query<?>, Stream<T>> request; - private final SerializableFunction<Query<?>, Integer> sizeCallback; + private final SerializableFunction<Query<F>, Stream<T>> request; + private final SerializableFunction<Query<F>, Integer> sizeCallback; /** * Constructs a new DataProvider to request data from an arbitrary back end @@ -43,8 +45,8 @@ public class BackEndDataProvider<T> extends AbstractDataProvider<T> { * function that return the amount of data in back end for query */ public BackEndDataProvider( - SerializableFunction<Query<?>, Stream<T>> request, - SerializableFunction<Query<?>, Integer> sizeCallback) { + SerializableFunction<Query<F>, Stream<T>> request, + SerializableFunction<Query<F>, Integer> sizeCallback) { Objects.requireNonNull(request, "Request function can't be null"); Objects.requireNonNull(sizeCallback, "Size callback can't be null"); this.request = request; @@ -52,12 +54,12 @@ public class BackEndDataProvider<T> extends AbstractDataProvider<T> { } @Override - public Stream<T> fetch(Query query) { + public Stream<T> fetch(Query<F> query) { return request.apply(query); } @Override - public int size(Query query) { + public int size(Query<F> query) { return sizeCallback.apply(query); } @@ -69,14 +71,15 @@ public class BackEndDataProvider<T> extends AbstractDataProvider<T> { * directions * @return new data provider with modified sorting */ - public BackEndDataProvider<T> sortingBy( + public BackEndDataProvider<T, F> sortingBy( List<SortOrder<String>> sortOrders) { return new BackEndDataProvider<>(query -> { List<SortOrder<String>> queryOrder = new ArrayList<>( query.getSortOrders()); queryOrder.addAll(sortOrders); - return request.apply(new Query<>(query.getLimit(), - query.getOffset(), queryOrder, query.getFilter())); + return request + .apply(new Query<>(query.getLimit(), query.getOffset(), + queryOrder, query.getFilter().orElse(null))); }, sizeCallback); } diff --git a/server/src/main/java/com/vaadin/server/data/DataChangeEvent.java b/server/src/main/java/com/vaadin/server/data/DataChangeEvent.java index 94d28fc9d3..6d7d2e8bfb 100644 --- a/server/src/main/java/com/vaadin/server/data/DataChangeEvent.java +++ b/server/src/main/java/com/vaadin/server/data/DataChangeEvent.java @@ -19,10 +19,10 @@ import java.util.EventObject; /** * An event fired when the data of a {@code DataProvider} changes. - * - * + * + * * @see DataProviderListener - * + * * @author Vaadin Ltd * @since 8.0 * @@ -36,13 +36,13 @@ public class DataChangeEvent extends EventObject { * @param source * the data provider, not null */ - public DataChangeEvent(DataProvider<?> source) { + public DataChangeEvent(DataProvider<?, ?> source) { super(source); } @Override - public DataProvider<?> getSource() { - return (DataProvider<?>) super.getSource(); + public DataProvider<?, ?> getSource() { + return (DataProvider<?, ?>) super.getSource(); } } diff --git a/server/src/main/java/com/vaadin/server/data/DataCommunicator.java b/server/src/main/java/com/vaadin/server/data/DataCommunicator.java index 46b8fa079a..fc66185aee 100644 --- a/server/src/main/java/com/vaadin/server/data/DataCommunicator.java +++ b/server/src/main/java/com/vaadin/server/data/DataCommunicator.java @@ -180,7 +180,7 @@ public class DataCommunicator<T> extends AbstractExtension { private final Collection<DataGenerator<T>> generators = new LinkedHashSet<>(); private final ActiveDataHandler handler = new ActiveDataHandler(); - private DataProvider<T> dataProvider = DataProvider.create(); + private DataProvider<T, ?> dataProvider = DataProvider.create(); private final DataKeyMapper<T> keyMapper; private boolean reset = false; @@ -462,7 +462,7 @@ public class DataCommunicator<T> extends AbstractExtension { * * @return the data provider */ - public DataProvider<T> getDataProvider() { + public DataProvider<T, ?> getDataProvider() { return dataProvider; } @@ -472,7 +472,7 @@ public class DataCommunicator<T> extends AbstractExtension { * @param dataProvider * the data provider to set, not null */ - public void setDataProvider(DataProvider<T> dataProvider) { + public void setDataProvider(DataProvider<T, ?> dataProvider) { Objects.requireNonNull(dataProvider, "data provider cannot be null"); this.dataProvider = dataProvider; detachDataProviderListener(); diff --git a/server/src/main/java/com/vaadin/server/data/DataProvider.java b/server/src/main/java/com/vaadin/server/data/DataProvider.java index b99cbe5d75..441a57b559 100644 --- a/server/src/main/java/com/vaadin/server/data/DataProvider.java +++ b/server/src/main/java/com/vaadin/server/data/DataProvider.java @@ -23,20 +23,22 @@ import java.util.stream.Stream; import com.vaadin.shared.Registration; /** - * Minimal DataProvider API for communication between the DataProvider and a back - * end service. + * Minimal DataProvider API for communication between the DataProvider and a + * back end service. * * @author Vaadin Ltd. - * + * * @param <T> * data type + * @param <F> + * filter type * * @see ListDataProvider * @see BackEndDataProvider * * @since 8.0 */ -public interface DataProvider<T> extends Serializable { +public interface DataProvider<T, F> extends Serializable { /** * Gets whether the DataProvider content all available in memory or does it @@ -53,17 +55,17 @@ public interface DataProvider<T> extends Serializable { * query with sorting and filtering * @return the size of the data provider */ - int size(Query t); + int size(Query<F> t); /** * Fetches data from this DataProvider using given {@code query}. - * + * * @param query * given query to request data * @return the result of the query request: a stream of data objects, not * {@code null} */ - Stream<T> fetch(Query query); + Stream<T> fetch(Query<F> query); /** * Refreshes all data based on currently available data in the underlying @@ -87,10 +89,10 @@ public interface DataProvider<T> extends Serializable { Registration addDataProviderListener(DataProviderListener listener); /** - * This method creates a new {@link ListDataProvider} from a given Collection. - * The ListDataProvider creates a protective List copy of all the contents in - * the Collection. - * + * This method creates a new {@link ListDataProvider} from a given + * Collection. The ListDataProvider creates a protective List copy of all + * the contents in the Collection. + * * @param <T> * the data item type * @param items @@ -103,9 +105,9 @@ public interface DataProvider<T> extends Serializable { /** * This method creates a new {@link ListDataProvider} from given objects.The - * ListDataProvider creates a protective List copy of all the contents in the - * array. - * + * ListDataProvider creates a protective List copy of all the contents in + * the array. + * * @param <T> * the data item type * @param items diff --git a/server/src/main/java/com/vaadin/server/data/ListDataProvider.java b/server/src/main/java/com/vaadin/server/data/ListDataProvider.java index 14527749a5..a67ce42eab 100644 --- a/server/src/main/java/com/vaadin/server/data/ListDataProvider.java +++ b/server/src/main/java/com/vaadin/server/data/ListDataProvider.java @@ -21,6 +21,8 @@ import java.util.Objects; import java.util.function.Function; import java.util.stream.Stream; +import com.vaadin.server.SerializablePredicate; + /** * {@link DataProvider} wrapper for {@link Collection}s. This class does not * actually handle the {@link Query} parameters. @@ -28,7 +30,8 @@ import java.util.stream.Stream; * @param <T> * data type */ -public class ListDataProvider<T> extends AbstractDataProvider<T> { +public class ListDataProvider<T> + extends AbstractDataProvider<T, SerializablePredicate<T>> { private Comparator<T> sortOrder; private final Collection<T> backend; @@ -50,7 +53,7 @@ public class ListDataProvider<T> extends AbstractDataProvider<T> { * Chaining constructor for making modified {@link ListDataProvider}s. This * Constructor is used internally for making sorted and filtered variants of * a base data provider with actual data. - * + * * @param items * the backend data from the original list data provider * @param sortOrder @@ -72,8 +75,8 @@ public class ListDataProvider<T> extends AbstractDataProvider<T> { } /** - * Creates a new list data provider based on this list data provider with the - * given sort order. + * Creates a new list data provider based on this list data provider with + * the given sort order. * <p> * <b>NOTE</b>: this data provider is not modified in any way. * @@ -86,8 +89,8 @@ public class ListDataProvider<T> extends AbstractDataProvider<T> { } /** - * Creates a new list data provider based on this list data provider with the - * given sort order. + * Creates a new list data provider based on this list data provider with + * the given sort order. * <p> * <b>NOTE</b>: this data provider is not modified in any way. * <p> diff --git a/server/src/main/java/com/vaadin/ui/AbstractListing.java b/server/src/main/java/com/vaadin/ui/AbstractListing.java index 99dd6e5eb1..f49d8715de 100644 --- a/server/src/main/java/com/vaadin/ui/AbstractListing.java +++ b/server/src/main/java/com/vaadin/ui/AbstractListing.java @@ -133,12 +133,12 @@ public abstract class AbstractListing<T> extends AbstractComponent } @Override - public void setDataProvider(DataProvider<T> dataProvider) { + public void setDataProvider(DataProvider<T, ?> dataProvider) { getDataCommunicator().setDataProvider(dataProvider); } @Override - public DataProvider<T> getDataProvider() { + public DataProvider<T, ?> getDataProvider() { return getDataCommunicator().getDataProvider(); } diff --git a/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java b/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java index a3f99e7b27..eb61d2242d 100644 --- a/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java +++ b/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java @@ -64,7 +64,7 @@ public class CheckBoxGroup<T> extends AbstractMultiSelect<T> * the data provider, not null * @see Listing#setDataProvider(DataProvider) */ - public CheckBoxGroup(String caption, DataProvider<T> dataProvider) { + public CheckBoxGroup(String caption, DataProvider<T, ?> dataProvider) { this(caption); setDataProvider(dataProvider); } diff --git a/server/src/main/java/com/vaadin/ui/ComboBox.java b/server/src/main/java/com/vaadin/ui/ComboBox.java index 60a229ba55..2270c1a181 100644 --- a/server/src/main/java/com/vaadin/ui/ComboBox.java +++ b/server/src/main/java/com/vaadin/ui/ComboBox.java @@ -158,8 +158,8 @@ public class ComboBox<T> extends AbstractSingleSelect<T> implements HasValue<T>, } /** - * Constructs a combo box with a static in-memory data provider with the given - * options. + * Constructs a combo box with a static in-memory data provider with the + * given options. * * @param caption * the caption to show in the containing layout, null for no @@ -180,7 +180,7 @@ public class ComboBox<T> extends AbstractSingleSelect<T> implements HasValue<T>, * @param dataProvider * the data provider to use, not null */ - public ComboBox(String caption, DataProvider<T> dataProvider) { + public ComboBox(String caption, DataProvider<T, ?> dataProvider) { this(caption); setDataProvider(dataProvider); } diff --git a/server/src/main/java/com/vaadin/ui/ListSelect.java b/server/src/main/java/com/vaadin/ui/ListSelect.java index e616fa2af3..00e0d9912d 100644 --- a/server/src/main/java/com/vaadin/ui/ListSelect.java +++ b/server/src/main/java/com/vaadin/ui/ListSelect.java @@ -61,7 +61,7 @@ public class ListSelect<T> extends AbstractMultiSelect<T> { * @param dataProvider * the data provider, not {@code null} */ - public ListSelect(String caption, DataProvider<T> dataProvider) { + public ListSelect(String caption, DataProvider<T, ?> dataProvider) { this(caption); setDataProvider(dataProvider); } diff --git a/server/src/main/java/com/vaadin/ui/NativeSelect.java b/server/src/main/java/com/vaadin/ui/NativeSelect.java index 2a696c75d4..46e72b02c6 100644 --- a/server/src/main/java/com/vaadin/ui/NativeSelect.java +++ b/server/src/main/java/com/vaadin/ui/NativeSelect.java @@ -34,12 +34,12 @@ import com.vaadin.shared.ui.nativeselect.NativeSelectState; * A simple drop-down select component. Represented on the client side by a * "native" HTML {@code <select>} element. Lacks advanced features such as lazy * loading, filtering, and adding new items. - * + * * @author Vaadin Ltd. - * + * * @param <T> * the data item type - * + * * @see com.vaadin.ui.ComboBox */ public class NativeSelect<T> extends AbstractSingleSelect<T> @@ -56,7 +56,7 @@ public class NativeSelect<T> extends AbstractSingleSelect<T> /** * Creates a new {@code NativeSelect} with the given caption and no items. - * + * * @param caption * the component caption to set, null for no caption */ @@ -68,7 +68,7 @@ public class NativeSelect<T> extends AbstractSingleSelect<T> /** * Creates a new {@code NativeSelect} with the given caption, containing the * data items in the given collection. - * + * * @param caption * the component caption to set, null for no caption * @param items @@ -82,13 +82,13 @@ public class NativeSelect<T> extends AbstractSingleSelect<T> /** * Creates a new {@code NativeSelect} with the given caption, using the * given {@code DataProvider} as the source of data items. - * + * * @param caption * the component caption to set, null for no caption * @param dataProvider * the source of data items to use, not null */ - public NativeSelect(String caption, DataProvider<T> dataProvider) { + public NativeSelect(String caption, DataProvider<T, ?> dataProvider) { this(caption); setDataProvider(dataProvider); } diff --git a/server/src/main/java/com/vaadin/ui/RadioButtonGroup.java b/server/src/main/java/com/vaadin/ui/RadioButtonGroup.java index 8949493d6f..13b8fedc72 100644 --- a/server/src/main/java/com/vaadin/ui/RadioButtonGroup.java +++ b/server/src/main/java/com/vaadin/ui/RadioButtonGroup.java @@ -77,14 +77,14 @@ public class RadioButtonGroup<T> extends AbstractSingleSelect<T> * the data provider, not null * @see Listing#setDataProvider(DataProvider) */ - public RadioButtonGroup(String caption, DataProvider<T> dataProvider) { + public RadioButtonGroup(String caption, DataProvider<T, ?> dataProvider) { this(caption); setDataProvider(dataProvider); } /** - * Constructs a new RadioButtonGroup with caption and DataProvider containing - * given items. + * Constructs a new RadioButtonGroup with caption and DataProvider + * containing given items. * * @param caption * the caption text diff --git a/server/src/main/java/com/vaadin/ui/TwinColSelect.java b/server/src/main/java/com/vaadin/ui/TwinColSelect.java index 0858a76830..2d6b97a99a 100644 --- a/server/src/main/java/com/vaadin/ui/TwinColSelect.java +++ b/server/src/main/java/com/vaadin/ui/TwinColSelect.java @@ -50,14 +50,15 @@ public class TwinColSelect<T> extends AbstractMultiSelect<T> { } /** - * Constructs a new TwinColSelect with caption and data provider for options. + * Constructs a new TwinColSelect with caption and data provider for + * options. * * @param caption * the caption to set, can be {@code null} * @param dataProvider * the data provider, not {@code null} */ - public TwinColSelect(String caption, DataProvider<T> dataProvider) { + public TwinColSelect(String caption, DataProvider<T, ?> dataProvider) { this(caption); setDataProvider(dataProvider); } diff --git a/server/src/test/java/com/vaadin/server/data/AbstractDataProviderTest.java b/server/src/test/java/com/vaadin/server/data/AbstractDataProviderTest.java index b1260b8097..db2f704e2d 100644 --- a/server/src/test/java/com/vaadin/server/data/AbstractDataProviderTest.java +++ b/server/src/test/java/com/vaadin/server/data/AbstractDataProviderTest.java @@ -29,14 +29,15 @@ import com.vaadin.shared.Registration; */ public class AbstractDataProviderTest { - private static class TestDataProvider extends AbstractDataProvider<Object> { + private static class TestDataProvider + extends AbstractDataProvider<Object, Object> { @Override - public Stream<Object> fetch(Query t) { + public Stream<Object> fetch(Query<Object> t) { return null; } @Override - public int size(Query t) { + public int size(Query<Object> t) { return 0; } @@ -48,7 +49,7 @@ public class AbstractDataProviderTest { @Test public void refreshAll_notifyListeners() { - AbstractDataProvider<Object> dataProvider = new TestDataProvider(); + TestDataProvider dataProvider = new TestDataProvider(); AtomicReference<DataChangeEvent> event = new AtomicReference<>(); dataProvider.addDataProviderListener(ev -> { Assert.assertNull(event.get()); @@ -61,7 +62,7 @@ public class AbstractDataProviderTest { @Test public void removeListener_listenerIsNotNotified() { - AbstractDataProvider<Object> dataProvider = new TestDataProvider(); + TestDataProvider dataProvider = new TestDataProvider(); AtomicReference<DataChangeEvent> event = new AtomicReference<>(); Registration registration = dataProvider .addDataProviderListener(ev -> event.set(ev)); diff --git a/server/src/test/java/com/vaadin/server/data/provider/bov/DataProviderBoVTest.java b/server/src/test/java/com/vaadin/server/data/provider/bov/DataProviderBoVTest.java index 2ad7fc4178..2b282a535a 100644 --- a/server/src/test/java/com/vaadin/server/data/provider/bov/DataProviderBoVTest.java +++ b/server/src/test/java/com/vaadin/server/data/provider/bov/DataProviderBoVTest.java @@ -22,11 +22,11 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import com.vaadin.server.data.BackEndDataProvider; -import com.vaadin.server.data.DataProvider; import org.junit.Before; import org.junit.Test; +import com.vaadin.server.data.BackEndDataProvider; +import com.vaadin.server.data.DataProvider; import com.vaadin.server.data.SortOrder; import com.vaadin.shared.data.sort.SortDirection; @@ -96,13 +96,13 @@ public class DataProviderBoVTest { @Test public void testPersons() { - DataProvider<Person> dataProvider = createUnsortedDataProvider(); + DataProvider<Person, ?> dataProvider = createUnsortedDataProvider(); // TODO test if the provider contains all defined Persons in // correct(unchanged) order } - private DataProvider<Person> createUnsortedDataProvider() { - DataProvider<Person> dataProvider = new BackEndDataProvider<>( + private DataProvider<Person, ?> createUnsortedDataProvider() { + DataProvider<Person, ?> dataProvider = new BackEndDataProvider<>( // First callback fetches items based on a query query -> { // The index of the first item to load @@ -124,13 +124,13 @@ public class DataProviderBoVTest { @Test public void testSortedPersons() { - DataProvider<Person> dataProvider = createSortedDataProvider(); + DataProvider<Person, ?> dataProvider = createSortedDataProvider(); // TODO test if provider contains all defined Persons in correct order // TODO test Query.sortOrders correctness } - private DataProvider<Person> createSortedDataProvider() { - DataProvider<Person> dataProvider = new BackEndDataProvider<>( + private DataProvider<Person, ?> createSortedDataProvider() { + DataProvider<Person, ?> dataProvider = new BackEndDataProvider<>( // First callback fetches items based on a query query -> { List<PersonService.PersonSort> sortOrders = new ArrayList<>(); diff --git a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java index d01565e7c7..669311149c 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java +++ b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java @@ -8,9 +8,8 @@ import com.vaadin.ui.ComboBox; public class ComboBoxInvalidNullSelection extends TestBase { - private static final Object CAPTION = "C"; - private DataProvider<String> ds1; - private DataProvider<String> ds2; + private DataProvider<String, ?> ds1; + private DataProvider<String, ?> ds2; private ComboBox<String> combo; private Log log = new Log(5); diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridApplyFilterWhenScrolledDown.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridApplyFilterWhenScrolledDown.java index b1672fbbed..8f92e431c4 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/grid/GridApplyFilterWhenScrolledDown.java +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridApplyFilterWhenScrolledDown.java @@ -32,7 +32,8 @@ public class GridApplyFilterWhenScrolledDown extends AbstractTestUI { addComponent(button); } - private void filter(DataProvider<String> dataProvider, List<String> data) { + private void filter(DataProvider<String, ?> dataProvider, + List<String> data) { String last = data.get(data.size() - 1); data.clear(); data.add(last); diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/RefreshDataProvider.java b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/RefreshDataProvider.java index 288bc190f3..50021699d6 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/RefreshDataProvider.java +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/RefreshDataProvider.java @@ -47,7 +47,8 @@ public class RefreshDataProvider extends AbstractReindeerTestUI { update.setId("update"); addComponent(update); - Button add = new Button("Add data", event -> addData(dataProvider, data)); + Button add = new Button("Add data", + event -> addData(dataProvider, data)); add.setId("add"); addComponent(add); @@ -57,13 +58,13 @@ public class RefreshDataProvider extends AbstractReindeerTestUI { addComponent(remove); } - private void updateData(DataProvider<DataObject> dataProvider, + private void updateData(DataProvider<DataObject, ?> dataProvider, List<DataObject> data) { data.get(0).setCoordinates("Updated coordinates"); dataProvider.refreshAll(); } - private void addData(DataProvider<DataObject> dataProvider, + private void addData(DataProvider<DataObject, ?> dataProvider, List<DataObject> data) { DataObject dataObject = new DataObject(); dataObject.setCoordinates("Added"); @@ -71,7 +72,7 @@ public class RefreshDataProvider extends AbstractReindeerTestUI { dataProvider.refreshAll(); } - private void removeData(DataProvider<DataObject> dataProvider, + private void removeData(DataProvider<DataObject, ?> dataProvider, List<DataObject> data) { data.remove(0); dataProvider.refreshAll(); diff --git a/uitest/src/main/java/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java b/uitest/src/main/java/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java index 16e131da76..2c37d1a0e0 100644 --- a/uitest/src/main/java/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java +++ b/uitest/src/main/java/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java @@ -53,7 +53,7 @@ public class MovingComponentsWhileOldParentInvisible extends TestBase { }); componentContainerSelect.setValue(componentContainerSelect - .getDataProvider().fetch(new Query()).iterator().next()); + .getDataProvider().fetch(new Query<>()).iterator().next()); Button but1 = new Button("Move in and out of component container", new Button.ClickListener() { diff --git a/uitest/src/main/java/com/vaadin/tests/util/ItemDataProvider.java b/uitest/src/main/java/com/vaadin/tests/util/ItemDataProvider.java index 5d207720d0..8b77f4cd2a 100644 --- a/uitest/src/main/java/com/vaadin/tests/util/ItemDataProvider.java +++ b/uitest/src/main/java/com/vaadin/tests/util/ItemDataProvider.java @@ -9,7 +9,7 @@ import com.vaadin.server.data.BackEndDataProvider; * * @author Vaadin Ltd */ -public class ItemDataProvider extends BackEndDataProvider<String> { +public class ItemDataProvider extends BackEndDataProvider<String, Object> { public ItemDataProvider(int size) { super(q -> IntStream |