package ro.nextreports.server.web.analysis.feature.group; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider; import org.apache.wicket.injection.Injector; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; public class GroupObjectDataProvider extends SortableDataProvider<String, String> { private LinkedList<String> groups; public GroupObjectDataProvider(IModel<LinkedList<String>> groupModel) { Injector.get().inject(this); groups = groupModel.getObject(); } @Override public Iterator<? extends String> iterator(long first, long count) { return getGroupObjects().subList((int)first, (int)(first + Math.min(count, size()))).iterator(); } @Override public IModel<String> model(String groupObject) { return new Model<String>(groupObject); } @Override public long size() { return getGroupObjects().size(); } private List<String> getGroupObjects() { List<String> groupObjects = new ArrayList<String>(); for (int i=0, size=groups.size(); i<size; i++) { groupObjects.add(groups.get(i)); } return groupObjects; } }