package org.vaadin.viritin.v7; import com.vaadin.annotations.Theme; import com.vaadin.ui.Component; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.apache.commons.beanutils.BeanComparator; import org.vaadin.addonhelpers.AbstractTest; import org.vaadin.viritin.LazyList; import org.vaadin.viritin.v7.SortableLazyList; import org.vaadin.viritin.v7.grid.MGrid; import org.vaadin.viritin.testdomain.Person; import org.vaadin.viritin.testdomain.Service; /** * * @author Matti Tahvonen */ @Theme("valo") public class GridLazyLoadingEmptyResultset extends AbstractTest { @Override public Component getTestComponent() { final List<Person> listOfPersons = Service.getListOfPersons(0); MGrid<Person> g = new MGrid<>(Person.class) .lazyLoadFrom( new SortableLazyList.SortablePagingProvider<Person>() { private static final long serialVersionUID = 7430568834619612967L; @Override public List<Person> findEntities(int firstRow, boolean sortAscending, String property) { if (property != null) { Collections.sort(listOfPersons, new BeanComparator<>( property)); if (!sortAscending) { Collections.reverse(listOfPersons); } } int last = firstRow + LazyList.DEFAULT_PAGE_SIZE; if (last > listOfPersons.size()) { last = listOfPersons.size(); } return new ArrayList<>(listOfPersons.subList( firstRow, last)); } }, new LazyList.CountProvider() { private static final long serialVersionUID = 6199527117644735431L; @Override public int size() { return listOfPersons.size(); } } ); return g; } }