/* Copyright (c) 2001 - 2011 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.gwc.web; import java.util.Arrays; import java.util.Comparator; import java.util.List; import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; import org.apache.wicket.model.IModel; import org.geoserver.gwc.GWC; import org.geoserver.web.wicket.GeoServerDataProvider; import org.geowebcache.layer.TileLayer; /** * Provides a filtered, sorted view over GWC {@link TileLayer}s for {@link CachedLayersPage} using * {@link CachedLayerInfo} as data view. * * @author groldan */ @SuppressWarnings("serial") public class CachedLayerProvider extends GeoServerDataProvider<CachedLayerInfo> { static final Property<CachedLayerInfo> TYPE = new BeanProperty<CachedLayerInfo>("type", "type"); static final Property<CachedLayerInfo> NAME = new BeanProperty<CachedLayerInfo>("name", "name"); static final Property<CachedLayerInfo> QUOTA_LIMIT = new BeanProperty<CachedLayerInfo>( "quotaLimit", "quotaLimit"); static final Property<CachedLayerInfo> QUOTA_USAGE = new BeanProperty<CachedLayerInfo>( "quotaUsed", "quotaUsed"); static final Property<CachedLayerInfo> ENABLED = new BeanProperty<CachedLayerInfo>("enabled", "enabled"); @SuppressWarnings("unchecked") static final List<Property<CachedLayerInfo>> PROPERTIES = Arrays.asList(TYPE, NAME, QUOTA_LIMIT, QUOTA_USAGE, ENABLED); /** * @see org.geoserver.web.wicket.GeoServerDataProvider#getItems() */ @Override protected List<CachedLayerInfo> getItems() { GWC gwc = GWC.get(); return CachedLayerDetachableModel.getItems(gwc); } /** * @see org.geoserver.web.wicket.GeoServerDataProvider#getProperties() */ @Override protected List<Property<CachedLayerInfo>> getProperties() { return PROPERTIES; } /** * @see org.geoserver.web.wicket.GeoServerDataProvider#newModel(java.lang.Object) */ public IModel<CachedLayerInfo> newModel(final Object cachedLayerInfo) { return new CachedLayerDetachableModel((CachedLayerInfo) cachedLayerInfo); } /** * @see org.geoserver.web.wicket.GeoServerDataProvider#getComparator */ @Override protected Comparator<CachedLayerInfo> getComparator(SortParam sort) { return super.getComparator(sort); } }