package fr.openwide.maven.artifact.notifier.web.application.project.component;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.StatelessForm;
import org.apache.wicket.markup.html.form.SubmitLink;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.navigation.paging.IPageable;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import fr.openwide.maven.artifact.notifier.web.application.navigation.util.LinkUtils;
public class ProjectSearchPanel extends Panel {
private static final long serialVersionUID = -6224313886789870489L;
private IPageable pageable;
private IModel<String> searchTermModel;
public ProjectSearchPanel(String id, IPageable pageable, IModel<String> searchTermModel) {
super(id);
this.pageable = pageable;
this.searchTermModel = searchTermModel;
Form<Void> form = new StatelessForm<Void>("form") {
private static final long serialVersionUID = -584576228542906811L;
@Override
protected void onSubmit() {
// Lors de la soumission d'un formulaire de recherche, on retourne sur la première page
ProjectSearchPanel.this.pageable.setCurrentPage(0);
setResponsePage(getPage().getClass(),
LinkUtils.getSearchPageParameters(ProjectSearchPanel.this.searchTermModel));
}
};
TextField<String> searchInput = new TextField<String>("searchInput", this.searchTermModel);
form.add(searchInput);
form.add(new SubmitLink("submit"));
add(form);
}
@Override
protected void onDetach() {
super.onDetach();
if (searchTermModel != null) {
searchTermModel.detach();
}
}
}