/* Copyright (c) 2001 - 2008 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.web.admin;
import java.util.Arrays;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.validation.validator.MinimumValidator;
import org.apache.wicket.validation.validator.NumberValidator;
import org.geoserver.config.CoverageAccessInfo;
import org.geoserver.config.CoverageAccessInfo.QueueType;
import org.geoserver.config.GeoServer;
import org.geoserver.web.GeoServerHomePage;
/**
* Edits the Coverage configuration parameters
*/
public class CoverageAccessPage extends ServerAdminPage {
public CoverageAccessPage(){
final IModel geoServerModel = getGeoServerModel();
final IModel coverageModel = getCoverageAccessModel();
// form and submit
Form form = new Form("form", new CompoundPropertyModel(coverageModel));
add( form );
// All the fields
TextField corePoolSize = new TextField("corePoolSize");
corePoolSize.add(new MinimumValidator(1));
form.add(corePoolSize);
TextField maxPoolSize = new TextField("maxPoolSize");
maxPoolSize.add(new MinimumValidator(1));
form.add(maxPoolSize);
TextField keepAliveTime = new TextField("keepAliveTime");
keepAliveTime.add(new MinimumValidator(1));
form.add(keepAliveTime);
final DropDownChoice queueType = new DropDownChoice("queueType", Arrays.asList(CoverageAccessInfo.QueueType.values()), new QueueTypeRenderer());
form.add(queueType);
TextField imageIOCacheThreshold = new TextField("imageIOCacheThreshold");
imageIOCacheThreshold.add(new MinimumValidator(0l));
form.add(imageIOCacheThreshold);
Button submit = new Button("submit", new StringResourceModel("submit", this, null)) {
@Override
public void onSubmit() {
GeoServer gs = (GeoServer) geoServerModel.getObject();
gs.getGlobal().setCoverageAccess( (CoverageAccessInfo)coverageModel.getObject() );
gs.save( gs.getGlobal() );
setResponsePage(GeoServerHomePage.class);
}
};
form.add(submit);
Button cancel = new Button("cancel") {
@Override
public void onSubmit() {
setResponsePage(GeoServerHomePage.class);
}
};
form.add(cancel);
}
private class QueueTypeRenderer implements IChoiceRenderer {
public Object getDisplayValue(Object object) {
return new StringResourceModel(((QueueType) object).name(), CoverageAccessPage.this, null).getString();
}
public String getIdValue(Object object, int index) {
return ((QueueType) object).name();
}
}
}