/* (c) 2016 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geogig.geoserver.web.repository;
import org.apache.wicket.markup.html.form.FormComponentPanel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.validator.RangeValidator;
import org.geogig.geoserver.config.PostgresConfigBean;
import org.geoserver.web.data.store.panel.PasswordParamPanel;
import org.geoserver.web.data.store.panel.TextParamPanel;
/**
*
*/
class PostgresConfigFormPanel extends FormComponentPanel<PostgresConfigBean> {
private static final long serialVersionUID = 1L;
private final TextParamPanel hostPanel;
private final TextParamPanel portPanel;
private final TextParamPanel dbPanel;
private final TextParamPanel schemaPanel;
private final TextParamPanel usernamePanel;
private final PasswordParamPanel passwordPanel;
public PostgresConfigFormPanel(String id, IModel<PostgresConfigBean> model) {
super(id, model);
setOutputMarkupId(true);
hostPanel = new TextParamPanel("hostPanel", new PropertyModel<>(model, "host"),
new ResourceModel("PostgresConfigFormPanel.host", "Host Name"), true);
hostPanel.getFormComponent().setType(String.class);
add(hostPanel);
portPanel = new TextParamPanel("portPanel", new PropertyModel<>(model, "port"),
new ResourceModel("PostgresConfigFormPanel.port", "Port"), false);
// set the type for the port, and validators
portPanel.getFormComponent().setType(Integer.TYPE).add(
(IValidator)RangeValidator.minimum(1025),
(IValidator)RangeValidator.maximum(65535));
add(portPanel);
dbPanel = new TextParamPanel("dbPanel", new PropertyModel<>(model, "database"),
new ResourceModel("PostgresConfigFormPanel.database", "Database Name"), true);
dbPanel.getFormComponent().setType(String.class);
add(dbPanel);
schemaPanel = new TextParamPanel("schemaPanel", new PropertyModel<>(model, "schema"),
new ResourceModel("PostgresConfigFormPanel.schema", "Schema Name"), false);
schemaPanel.getFormComponent().setType(String.class);
add(schemaPanel);
usernamePanel = new TextParamPanel("usernamePanel", new PropertyModel<>(model,
"username"), new ResourceModel("PostgresConfigFormPanel.username",
"Username"), true);
usernamePanel.getFormComponent().setType(String.class);
add(usernamePanel);
passwordPanel = new PasswordParamPanel("passwordPanel", new PropertyModel<>(model,
"password"), new ResourceModel("PostgresConfigFormPanel.password",
"Password"), true);
passwordPanel.getFormComponent().setType(String.class);
add(passwordPanel);
}
@Override
public void convertInput() {
PostgresConfigBean bean = new PostgresConfigBean();
// populate the bean
String host = hostPanel.getFormComponent().getConvertedInput().toString().trim();
Integer port = Integer.class.cast(portPanel.getFormComponent().getConvertedInput());
String db = dbPanel.getFormComponent().getConvertedInput().toString().trim();
Object schema = schemaPanel.getFormComponent().getConvertedInput();
String username = usernamePanel.getFormComponent().getConvertedInput().toString().trim();
String password = passwordPanel.getFormComponent().getConvertedInput();
bean.setHost(host);
bean.setPort(port);
bean.setDatabase(db);
bean.setUsername(username);
bean.setPassword(password);
if (schema == null || schema.toString().trim().isEmpty()) {
bean.setSchema(null);
} else {
bean.setSchema(schema.toString().trim());
}
setConvertedInput(bean);
}
}