package fr.openwide.core.basicapp.web.application.referencedata.component; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.ResourceModel; import org.wicketstuff.wiquery.core.events.StateEvent; import fr.openwide.core.basicapp.web.application.referencedata.model.AbstractGenericListItemDataProvider; import fr.openwide.core.jpa.more.business.generic.model.EnabledFilter; import fr.openwide.core.jpa.more.business.generic.model.GenericListItem; import fr.openwide.core.wicket.more.markup.html.feedback.FeedbackUtils; import fr.openwide.core.wicket.more.markup.html.form.EnumDropDownSingleChoice; import fr.openwide.core.wicket.more.markup.html.form.LabelPlaceholderBehavior; public class SimpleGenericListItemSearchPanel<T extends GenericListItem<? super T>> extends Panel { private static final long serialVersionUID = 3027788723051745121L; public SimpleGenericListItemSearchPanel(String id, final AbstractGenericListItemDataProvider<T, ?> dataProvider, final Component table) { super(id); Form<Void> searchForm = new Form<Void>("searchForm"); add(searchForm); searchForm.add( new AjaxFormSubmitBehavior(searchForm, StateEvent.CHANGE.getEventLabel()) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target) { // Just in case the dataProvider's content was loaded before search parameters changed dataProvider.detach(); target.add(table); FeedbackUtils.refreshFeedback(target, getPage()); } } ); searchForm.add( new TextField<>("label", dataProvider.getLabelModel(), String.class) .setLabel(new ResourceModel("business.listItem.label")) .add(new LabelPlaceholderBehavior()), new EnumDropDownSingleChoice<>("enabledFilter", dataProvider.getEnabledFilterModel(), EnabledFilter.class) .setLabel(new ResourceModel("business.listItem.enabledState")) ); } }