package org.geoserver.web.admin; import java.util.Arrays; import java.util.List; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.ListChoice; 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.PropertyModel; import org.apache.wicket.model.StringResourceModel; import org.geoserver.config.GeoServer; import org.geoserver.config.GeoServerInfo; import org.geoserver.config.LoggingInfo; import org.geoserver.web.GeoServerHomePage; public class GlobalSettingsPage extends ServerAdminPage { private static final long serialVersionUID = 4716657682337915996L; public GlobalSettingsPage() { final IModel globalInfoModel = getGlobalInfoModel(); final IModel loggingInfoModel = getLoggingInfoModel(); Form form = new Form("form", new CompoundPropertyModel(globalInfoModel)); add(form); form.add(new CheckBox("verbose")); form.add(new CheckBox("verboseExceptions")); form.add(new TextField("numDecimals")); form.add(new TextField("charset")); form.add(new TextField("proxyBaseUrl")); logLevelsAppend(form, loggingInfoModel); form.add(new CheckBox("stdOutLogging", new PropertyModel( loggingInfoModel, "stdOutLogging"))); form.add(new TextField("loggingLocation", new PropertyModel( loggingInfoModel, "location")) ); form.add(new TextField("featureTypeCacheSize")); Button submit = new Button("submit", new StringResourceModel("submit", this, null)) { @Override public void onSubmit() { GeoServer gs = getGeoServer(); gs.save( (GeoServerInfo) globalInfoModel.getObject() ); gs.save( (LoggingInfo) loggingInfoModel.getObject() ); setResponsePage(GeoServerHomePage.class); } }; form.add(submit); Button cancel = new Button("cancel") { @Override public void onSubmit() { setResponsePage(GeoServerHomePage.class); } }; form.add(cancel); } private void logLevelsAppend(Form form, IModel loggingInfoModel) { List<String> logProfiles = Arrays.asList("DEFAULT_LOGGING.properties", "VERBOSE_LOGGING.properties", "PRODUCTION_LOGGING.properties", "GEOTOOLS_DEVELOPER_LOGGING.properties", "GEOSERVER_DEVELOPER_LOGGING.properties"); form.add(new ListChoice("log4jConfigFile", new PropertyModel(loggingInfoModel, "level"), logProfiles)); } };