Java tutorial
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.asptt.plongee.resa.wicket.page.admin.fichesecurite; import com.asptt.plongee.resa.model.Adherent; import com.asptt.plongee.resa.model.NavigationOriginePage; import com.asptt.plongee.resa.wicket.ResaSession; import com.asptt.plongee.resa.wicket.page.AccueilPage; import com.asptt.plongee.resa.wicket.page.TemplatePage; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.Model; import org.apache.wicket.util.string.Strings; import org.wicketstuff.objectautocomplete.AutoCompletionChoicesProvider; import org.wicketstuff.objectautocomplete.ObjectAutoCompleteBuilder; import org.wicketstuff.objectautocomplete.ObjectAutoCompleteField; import org.wicketstuff.objectautocomplete.ObjectAutoCompleteRenderer; /** * * @author ecus6396 */ public class ChercherPlongeur extends TemplatePage { private List<Adherent> list; private final Logger logger = Logger.getLogger(getClass()); FeedbackPanel feedback = new FeedbackPanel("feedback"); public ChercherPlongeur() { //le feedback panel pour les message d'erreur feedback.setOutputMarkupId(true); add(feedback); add(new PlongeursForm("plongeursForm")); } public List<Adherent> getMatchingAdherents(String search) { if (Strings.isEmpty(search)) { List<Adherent> emptyList = Collections.emptyList(); return emptyList; } if (list == null) { list = ResaSession.get().getAdherentService().rechercherAdherentsEtExts(); } ArrayList<Adherent> newList = new ArrayList<Adherent>(); for (int i = 0; i < list.size(); i++) { if (list.get(i).getNom().startsWith(search.toUpperCase())) { newList.add(list.get(i)); } } return newList; } class PlongeursForm extends Form { private static final long serialVersionUID = 5529259540931669786L; ObjectAutoCompleteField<Adherent, String> autocompleteField; public PlongeursForm(String id) { super(id); AutoCompletionChoicesProvider<Adherent> provider = new AutoCompletionChoicesProvider<Adherent>() { private static final long serialVersionUID = 1L; @Override public Iterator<Adherent> getChoices(String input) { return getMatchingAdherents(input).iterator(); } }; ObjectAutoCompleteRenderer<Adherent> renderer = new ObjectAutoCompleteRenderer<Adherent>() { private static final long serialVersionUID = 1L; @Override protected String getIdValue(Adherent adherent) { return adherent.getNumeroLicense(); } @Override protected String getTextValue(Adherent adherent) { String texteAffiche = adherent.getNomCompletFS() + " " + (adherent.getAptitudeFS()); return texteAffiche; } }; ObjectAutoCompleteBuilder<Adherent, String> builder = new ObjectAutoCompleteBuilder<Adherent, String>( provider); builder.autoCompleteRenderer(renderer); builder.searchLinkText("Autre recherche"); builder.width(200); autocompleteField = builder.build("numeroLicense", new Model<String>()); final TextField<String> adherent = autocompleteField.getSearchTextField(); adherent.setRequired(true); add(autocompleteField); add(new AjaxButton("valider") { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // Rcupration du plongeur avec une requete en base Adherent plongeur = ResaSession.get().getAdherentService() .rechercherAdherentParIdentifiantTous(autocompleteField.getConvertedInput()); setResponsePage( new VisuListeFS(NavigationOriginePage.VISU_FICHE_SECURITE, plongeur, null, null)); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.addComponent(feedback); } }); add(new Link("cancel") { @Override public void onClick() { setResponsePage(new AccueilPage()); } }); } } }