package ro.nextreports.server.web.analysis.feature.create;
import java.util.Iterator;
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;
import ro.nextreports.server.domain.Analysis;
import ro.nextreports.server.domain.AnalysisDeclaredColumn;
public class DeclaredColumnObjectDataProvider extends SortableDataProvider<AnalysisDeclaredColumn, String> {
private IModel<Analysis> model;
public DeclaredColumnObjectDataProvider(IModel<Analysis> model) {
Injector.get().inject(this);
this.model = model;
}
@Override
public Iterator<? extends AnalysisDeclaredColumn> iterator(long first, long count) {
return getDeclaredColumnObjects().subList((int)first, (int)(first + Math.min(count, size()))).iterator();
}
@Override
public IModel<AnalysisDeclaredColumn> model(AnalysisDeclaredColumn columnObject) {
return new Model<AnalysisDeclaredColumn>(columnObject);
}
@Override
public long size() {
return getDeclaredColumnObjects().size();
}
private List<AnalysisDeclaredColumn> getDeclaredColumnObjects() {
return model.getObject().getDeclaredColumns();
}
}