package org.jboss.seam.example.wicket;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.form.validation.EqualPasswordInputValidator;
import org.apache.wicket.markup.html.link.PageLink;
import org.apache.wicket.markup.html.panel.ComponentFeedbackPanel;
import org.apache.wicket.model.PropertyModel;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.example.wicket.action.User;
import org.jboss.seam.wicket.SeamPropertyModel;
public class Register extends WebPage
{
@In(create=true)
private User user;
@In(create=true)
private org.jboss.seam.example.wicket.action.Register register;
private TextField username;
public Register()
{
Form registerForm = new RegisterForm("registration");
add(registerForm);
registerForm.add(new ComponentFeedbackPanel("messages", this));
}
public class RegisterForm extends Form
{
@Out(scope=ScopeType.EVENT, required=false)
private String verify;
public String getVerify()
{
return verify;
}
public void setVerify(String verify)
{
this.verify = verify;
}
public RegisterForm(String id)
{
super(id);
add(new PageLink("cancel", Home.class));
username = new TextField("username");
username.setRequired(true);
add(new FormInputBorder("usernameDecorate", "Username", username, new SeamPropertyModel("username")
{
@Override
public Object getTarget()
{
return user;
}
}));
add(new FormInputBorder("nameDecorate", "Real Name", new TextField("name").setRequired(true), new SeamPropertyModel("name")
{
@Override
public Object getTarget()
{
return user;
}
}));
FormComponent password = new PasswordTextField("password").setRequired(true);
FormComponent verify = new PasswordTextField("verify").setRequired(true);
add(new FormInputBorder("passwordDecorate", "Password", password , new SeamPropertyModel("password")
{
@Override
public Object getTarget()
{
return user;
}
}));
add(new FormInputBorder("verifyDecorate", "Verify Password", verify, new PropertyModel(this, "verify")));
add(new EqualPasswordInputValidator(password, verify));
}
@Override
protected void onSubmit()
{
register.register();
if (register.isRegistered())
{
setResponsePage(Home.class);
}
}
}
}