package org.jabox.scm.beanstalk;
import java.io.IOException;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.validator.UrlValidator;
import org.jabox.model.Server;
import org.jabox.scm.svn.SubversionFacade;
public class BeanstalkLoginValidator extends UrlValidator {
private static final long serialVersionUID = 2635593287132542621L;
private final TextField<String> _url;
private final TextField<String> _username;
private final TextField<String> _projectName;
private final PasswordTextField _password;
public BeanstalkLoginValidator(final TextField<String> url,
final TextField<String> username,
TextField<String> projectName, final PasswordTextField password) {
_url = url;
_username = username;
_projectName = projectName;
_password = password;
}
@Override
protected void onValidate(final IValidatable<String> validatable) {
if (!_url.isValid() || !_username.isValid()
|| !_projectName.isValid() || !_password.isValid()) {
return;
}
BeanstalkConnectorConfig beanstalkcc =
new BeanstalkConnectorConfig();
beanstalkcc.server = new Server();
beanstalkcc.server.setUrl(_url.getValue());
beanstalkcc.username = _username.getValue();
beanstalkcc.projectName = _projectName.getValue();
beanstalkcc.password = _password.getValue();
try {
boolean login =
new SubversionFacade().validate(beanstalkcc.getScmUrl(),
_username.getValue(), _password.getValue());
if (!login) {
error(_url.newValidatable());
}
} catch (IOException e) {
error(_url.newValidatable());
}
}
}