package com.vaadin.tests.components.grid;
import java.util.ArrayList;
import java.util.List;
import com.vaadin.data.ValueProvider;
import com.vaadin.data.provider.DataProvider;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Grid;
public class GridApplyFilterWhenScrolledDown extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
Grid<String> grid = new Grid<>();
grid.addColumn(ValueProvider.identity()).setId("Name")
.setCaption("Name");
List<String> data = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
data.add("Name " + i);
}
data.add("Test");
grid.setItems(data);
addComponent(grid);
Button button = new Button("Filter Test item",
event -> filter(grid.getDataProvider(), data));
addComponent(button);
}
private void filter(DataProvider<String, ?> dataProvider,
List<String> data) {
String last = data.get(data.size() - 1);
data.clear();
data.add(last);
dataProvider.refreshAll();
}
}