/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web.data.workspace; import java.util.Arrays; import java.util.List; import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; import org.apache.wicket.model.IModel; import org.geoserver.catalog.Catalog; import org.geoserver.catalog.WorkspaceInfo; import org.geoserver.web.GeoServerApplication; import org.geoserver.web.wicket.GeoServerDataProvider; /** * {@link GeoServerDataProvider} for the list of workspaces available in the {@link Catalog} */ public class WorkspaceProvider extends GeoServerDataProvider<WorkspaceInfo> { private static final long serialVersionUID = -2464073552094977958L; public static Property<WorkspaceInfo> NAME = new BeanProperty<WorkspaceInfo>( "name", "name" ); public static Property<WorkspaceInfo> DEFAULT = new AbstractProperty<WorkspaceInfo>("default") { private static final long serialVersionUID = 7732697329315316826L; @Override public Object getPropertyValue(WorkspaceInfo item) { Catalog catalog = GeoServerApplication.get().getCatalog(); WorkspaceInfo defaultWorkspace = catalog.getDefaultWorkspace(); return Boolean.valueOf(defaultWorkspace != null && defaultWorkspace.equals(item)); } }; static List<Property<WorkspaceInfo>> PROPERTIES = Arrays.asList(NAME, DEFAULT); public WorkspaceProvider() { setSort(NAME.getName(), SortOrder.ASCENDING); } @Override protected List<WorkspaceInfo> getItems() { return getCatalog().getWorkspaces(); } @Override protected List<Property<WorkspaceInfo>> getProperties() { return PROPERTIES; } protected IModel<WorkspaceInfo> newModel(WorkspaceInfo object) { return new WorkspaceDetachableModel(object); } }