/* (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.csw.web;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.validation.validator.RangeValidator;
import org.geoserver.catalog.MetadataMap;
import org.geoserver.csw.CSWInfo;
import org.geoserver.csw.DirectDownloadSettings;
import org.geoserver.web.services.BaseServiceAdminPage;
import org.geoserver.web.util.MetadataMapModel;
public class CSWAdminPage extends BaseServiceAdminPage<CSWInfo> {
private static final long serialVersionUID = 8779684527875704719L;
public CSWAdminPage() {
super();
}
public CSWAdminPage(PageParameters pageParams) {
super(pageParams);
}
public CSWAdminPage(CSWInfo service) {
super(service);
}
protected Class<CSWInfo> getServiceClass() {
return CSWInfo.class;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
protected void build(final IModel info, Form form) {
CSWInfo model = (CSWInfo) info.getObject();
MetadataMap metadata = model.getMetadata();
DirectDownloadSettings settings = DirectDownloadSettings.getSettingsFromMetadata(metadata, null);
metadata = metadata == null ? new MetadataMap() : metadata;
if (settings == null) {
metadata.getMap().put(DirectDownloadSettings.DIRECTDOWNLOAD_KEY, new DirectDownloadSettings());
}
IModel<DirectDownloadSettings> directDownloadModel = new MetadataMapModel(metadata,
DirectDownloadSettings.DIRECTDOWNLOAD_KEY,
DirectDownloadSettings.class);
form.add(new CheckBox("directDownloadEnabled", new PropertyModel(directDownloadModel, "directDownloadEnabled")));
TextField maxDownloadSize = new TextField<Integer>("maxDownloadSize", new PropertyModel(
directDownloadModel, "maxDownloadSize"));
maxDownloadSize.add(RangeValidator.minimum(0l));
form.add(maxDownloadSize);
}
protected String getServiceName(){
return "CSW";
}
}