package org.geoserver.community.css.web;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.geoserver.web.wicket.GeoServerDataProvider;
import org.geotools.feature.FeatureCollection;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
/**
* A provider to make summaries available to the SummaryTable.
*/
class SummaryProvider extends GeoServerDataProvider<Summary> {
private final List<Summary> summaries;
public SummaryProvider(List<Summary> summaries) {
this.summaries = summaries;
}
public SummaryProvider(FeatureCollection<SimpleFeatureType, SimpleFeature> data) {
this(Summary.summarize(data));
}
@Override
public List<Property<Summary>> getProperties() {
List<Property<Summary>> props = new ArrayList<Property<Summary>>();
props.add(
new AbstractProperty<Summary>("Name") {
public Object getPropertyValue(Summary sum) {
return sum.getName();
}
});
props.add(
new AbstractProperty<Summary>("Minimum") {
public Object getPropertyValue(Summary sum) {
return sum.getMin();
}
});
props.add(
new AbstractProperty<Summary>("Maximum") {
public Object getPropertyValue(Summary sum) {
return sum.getMax();
}
});
return props;
}
@Override
public List<Summary> getItems() {
List<Summary> list = new ArrayList<Summary>();
Collections.copy(summaries, list);
return list;
}
}