2,8 → 2,11 |
|
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
|
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.utils.MockDatasource; |
|
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
17,6 → 20,8 |
|
public class RechercheObservationsPresenteur extends Presenteur { |
|
private List<Observation> observations; |
|
public RechercheObservationsPresenteur() { |
super(new RechercheObservationsVue()); |
} |
27,6 → 32,10 |
} |
composite.add(this.getVue()); |
handleEvents(); |
|
// On commence par afficher la totalité des observations |
chercherObservations(null); |
afficherObservations(); |
} |
|
protected void handleEvents() { |
58,13 → 67,15 |
vue.boutonRecherche.addClickHandler(new ClickHandler() { |
|
public void onClick(ClickEvent event) { |
lancerRecherche(); |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
}); |
|
vue.boutonRechercheAvancee.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
lancerRecherche(); |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
}); |
|
72,44 → 83,79 |
|
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
lancerRecherche(); |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
} |
}); |
} |
|
// Lancer la recherche |
public void lancerRecherche() { |
// Gestion de la recherche d'observations : |
public HashMap<String, String> collecterFormulaire() { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
|
HashMap<String, String> champsRecherche = new HashMap<String, String>(); |
|
if (!vue.recherchePrincipale.getText().equals("")) { |
champsRecherche.put("search", vue.recherchePrincipale.getText()); |
} |
if (!vue.departement.getText().equals("")) { |
champsRecherche.put("dept", vue.departement.getText()); |
} |
if (!vue.commune.getText().equals("")) { |
champsRecherche.put("com", vue.commune.getText()); |
} |
if (!vue.taxon.getText().equals("")) { |
champsRecherche.put("taxon", vue.taxon.getText()); |
} |
if (!vue.famille.getText().equals("")) { |
champsRecherche.put("fam", vue.famille.getText()); |
} |
if (!vue.genre.getText().equals("")) { |
champsRecherche.put("gen", vue.genre.getText()); |
} |
if (!vue.tag.getText().equals("")) { |
champsRecherche.put("tag", vue.tag.getText()); |
} |
if (!vue.motCle.getText().equals("")) { |
champsRecherche.put("motCle", vue.motCle.getText()); |
} |
if (!vue.auteur.getText().equals("")) { |
champsRecherche.put("auteur", vue.auteur.getText()); |
} |
if (!vue.date.getText().equals("")) { |
champsRecherche.put("date", vue.date.getText()); |
} |
return champsRecherche; |
} |
|
public void chercherObservations(HashMap<String, String> champsRecherche) { |
|
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
|
// Masquer la recherche Avancée |
vue.rechercheAvancee.setVisible(false); |
this.observations = MockDatasource.getInstance().getObservations(champsRecherche); |
vue.recherchePrecedente.setText(getChaineRecherche(champsRecherche)); |
} |
|
// Collecter les valeurs du formulaire |
HashMap<String, String> valeursRecherche = new HashMap<String, String>(); |
valeursRecherche.put("search", vue.recherchePrincipale.getText()); |
valeursRecherche.put("dept", vue.departement.getText()); |
valeursRecherche.put("com", vue.commune.getText()); |
valeursRecherche.put("taxon", vue.taxon.getText()); |
valeursRecherche.put("fam", vue.famille.getText()); |
valeursRecherche.put("gen", vue.genre.getText()); |
valeursRecherche.put("tag", vue.tag.getText()); |
valeursRecherche.put("motCle", vue.motCle.getText()); |
valeursRecherche.put("auteur", vue.auteur.getText()); |
valeursRecherche.put("date", vue.date.getText()); |
public void afficherObservations() { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
|
vue.recherchePrecedente.setText(getChaineRecherche(valeursRecherche)); |
for (Observation observation : observations) { |
ObservationPresenteur presenteur = new ObservationPresenteur(observation); |
presenteur.go(vue.zoneObservations); |
} |
} |
|
private String getChaineRecherche(HashMap<String, String> valeursRecherche) { |
Iterator<String> itCles = valeursRecherche.keySet().iterator(); |
String chaineRecherche = ""; |
while (itCles.hasNext()) { |
String cle = itCles.next(); |
String valeur = valeursRecherche.get(cle); |
if (valeur != "") { |
chaineRecherche += cle + ":=" + valeur + " "; |
if (valeursRecherche != null) { |
Iterator<String> itCles = valeursRecherche.keySet().iterator(); |
while (itCles.hasNext()) { |
String cle = itCles.next(); |
String valeur = valeursRecherche.get(cle); |
if (valeur != "") { |
chaineRecherche += cle + ":=" + valeur + " "; |
} |
} |
} |
return chaineRecherche; |