public RegisterLayout() {
super(i18n.registration());
setStyleName("n52_sensorweb_client_form_content");
DataSourceTextField userNameField = new DataSourceTextField("userName", i18n.userName(), 50, true);
DataSourceTextField nameField = new DataSourceTextField("name", i18n.name(), 50, false);
DataSourcePasswordField passwordField = new DataSourcePasswordField("password", i18n.password(), 20, true);
DataSourceTextField emailField = new DataSourceTextField("email", i18n.email(), 100, true);
RegExpValidator emailValidator = new RegExpValidator();
emailValidator.setErrorMessage(i18n.invalidEmail());
emailValidator.setExpression("^([a-zA-Z0-9_.\\-+])+@(([a-zA-Z0-9\\-])+\\.)+[a-zA-Z0-9]{2,4}$");
emailField.setValidators(emailValidator);
DataSource dataSource = new DataSource();
dataSource.setFields(userNameField, nameField, passwordField, emailField);
this.form.setDataSource(dataSource);
createNameTextInputs();
createPasswordTextInputs();
createEmailTextInputs();
createAcceptTermsOfUse();
ButtonItem registerButton = createRegisterButton();
LinkItem backToLoginLink = createBackToLoginLink();
this.form.setFields(this.headerItem, this.userNameItem, this.nameItem, this.passwordItem, this.verifyPasswordItem,
this.emailItem, this.verifyEmailItem, this.linkTerms, this.acceptBox, registerButton, backToLoginLink);
addMember(this.form);
setAutoWidth();
}