package com.googlecode.wicketwebbeans.examples.api; import static com.googlecode.wicketwebbeans.annotations.Property.EMPTY; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.form.Form; import com.googlecode.wicketwebbeans.containers.BeanForm; import com.googlecode.wicketwebbeans.model.BeanMetaData; import com.googlecode.wicketwebbeans.model.api.JAction; import com.googlecode.wicketwebbeans.model.api.JBean; import com.googlecode.wicketwebbeans.model.api.JProperty; import com.googlecode.wicketwebbeans.model.api.JTab; public class ApiPage extends WebPage { private static final long serialVersionUID = 1042855853289916520L; public ApiPage() { TestBean bean = new TestBean(); // Create the meta data JBean jbean = new JBean(TestBean.class) .tabs( new JTab("General").propertyNames("firstName", "lastName", "idNumber"), new JTab("Address") .propertyNames("address1", EMPTY, EMPTY, "address2", EMPTY, EMPTY, "city", "state", "zip") ) // Customize certain properties from above. .properties( new JProperty("firstName").required(true).maxLength(10), new JProperty("lastName").required(true) ) .actions( new JAction("save").confirm("Are you sure you want to save?") ); BeanMetaData meta = new BeanMetaData(bean.getClass(), null, jbean, this, null, false); add( new BeanForm("beanForm", bean, meta) ); } public void save(AjaxRequestTarget target, Form form, TestBean bean) { if (!BeanForm.findBeanFormParent(form).validateRequired()) { return; // Errors } info("Saved"); } }