/* (c) 2015 - 2016 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.gwc.web.blob;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.geoserver.gwc.GWC;
import org.geoserver.web.wicket.GeoServerDataProvider;
import org.geowebcache.config.BlobStoreConfig;
/**
*
* Provider for Table of Blobstores.
*
* @author Niels Charlier
*
*/
public class BlobStoresProvider extends GeoServerDataProvider<BlobStoreConfig> {
private static final long serialVersionUID = 4400431816195261839L;
public static final Property<BlobStoreConfig> ID = new BeanProperty<BlobStoreConfig>("id", "id");
public static final Property<BlobStoreConfig> TYPE = new BeanProperty<BlobStoreConfig>("type",
"class");
public static final Property<BlobStoreConfig> ENABLED = new BeanProperty<BlobStoreConfig>(
"enabled", "enabled");
public static final Property<BlobStoreConfig> DEFAULT = new BeanProperty<BlobStoreConfig>(
"default", "default");
@Override
protected List<org.geoserver.web.wicket.GeoServerDataProvider.Property<BlobStoreConfig>> getProperties() {
return Arrays.asList(ID, TYPE, ENABLED, DEFAULT);
}
@Override
protected Comparator<BlobStoreConfig> getComparator(final SortParam<?> sort) {
if (sort != null && sort.getProperty().equals(TYPE.getName())) {
return new Comparator<BlobStoreConfig>() {
@Override
public int compare(BlobStoreConfig o1, BlobStoreConfig o2) {
int r = BlobStoreTypes.getFromClass(o1.getClass()).toString()
.compareTo(BlobStoreTypes.getFromClass(o2.getClass()).toString());
return sort.isAscending() ? r : -r;
}
};
} else {
return super.getComparator(sort);
}
}
@Override
protected List<BlobStoreConfig> getItems() {
return (List<BlobStoreConfig>) GWC.get().getBlobStores();
}
}