package com.googlecode.wicketwebbeans.examples.annotations; 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.annotations.Action; import com.googlecode.wicketwebbeans.annotations.Bean; import com.googlecode.wicketwebbeans.annotations.Property; import com.googlecode.wicketwebbeans.annotations.Tab; import com.googlecode.wicketwebbeans.containers.BeanForm; import com.googlecode.wicketwebbeans.model.BeanMetaData; @Bean(type = TestBean.class, tabs = { @Tab(name = "General", propertyNames = { "firstName", "lastName", "idNumber" }), @Tab(name = "Address", propertyNames = { "address1", EMPTY, EMPTY, "address2", EMPTY, EMPTY, "city", "state", "zip" }) }, // Customize certain properties from above. properties = { @Property(name = "firstName", required = true, maxLength = 10), @Property(name = "lastName", required = true) } ) public class AnnotationsOnPage extends WebPage { private static final long serialVersionUID = 2192855853289142345L; public AnnotationsOnPage() { TestBean bean = new TestBean(); BeanMetaData meta = new BeanMetaData(bean.getClass(), null, this, null, false); add( new BeanForm("beanForm", bean, meta) ); } @Action(confirm = "Are you sure you want to save?") public void save(AjaxRequestTarget target, Form form, TestBean bean) { if (!BeanForm.findBeanFormParent(form).validateRequired()) { return; // Errors } info("Saved"); } }