package net.ftlines.blog.cdidemo.web.app; import javax.inject.Inject; import net.ftlines.blog.cdidemo.model.EmployeeCriteria; import net.ftlines.blog.cdidemo.model.TeamsRepository; import org.apache.wicket.datetime.markup.html.form.DateTextField; import org.apache.wicket.extensions.yui.calendar.DatePicker; import org.apache.wicket.markup.html.form.ChoiceRenderer; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.GenericPanel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.PropertyModel; public class EmployeeCriteriaPanel extends GenericPanel<EmployeeCriteria> { @Inject private TeamsRepository teams; public EmployeeCriteriaPanel(String id, IModel<EmployeeCriteria> model) { super(id, model); Form<?> form = new Form<Void>("form"); add(form); form.add(DateTextField.forDatePattern("hireDateMin", new PropertyModel(model, "hireDateMin"), "MM/dd/yyyy").add( new DatePicker())); form.add(DateTextField.forDatePattern("hireDateMax", new PropertyModel(model, "hireDateMax"), "MM/dd/yyyy").add( new DatePicker())); form.add(new DropDownChoice("team", new PropertyModel(model, "team"), new LoadableDetachableModel() { @Override protected Object load() { return teams.list(0, Integer.MAX_VALUE); } }, new ChoiceRenderer("name", "id")).setNullValid(true)); } }