package lt.inventi.wicket; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.SubmitLink; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; public class FormPage extends BaseAuthenticatedPage { public FormPage() { this(Model.of(new Person())); } public FormPage(IModel<Person> person) { super(person); IModel<Person> personModel = CompoundPropertyModel.<Person> of(getPersonModel()); add(new Form<Person>("form", personModel).add( new TextField<String>("name"), new TextField<Integer>("age"), new PersonAutocomplete("bestFriend"), new SubmitLink("submit") { @Override public void onSubmit() { setNextResponsePage(new PersonPage(getPersonModel())); } } )); add(new Link<Void>("back") { @Override public void onClick() { setResponseToPreviousPage(); } }); } @SuppressWarnings("unchecked") private IModel<Person> getPersonModel() { return (IModel<Person>) getDefaultModel(); } }