Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 165 → Rev 166

/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsPresenteur.java
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;