Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1886 → Rev 1885

/trunk/src/org/tela_botanica/del/client/utils/InfosNomPourAutocompletion.java
File deleted
\ No newline at end of file
/trunk/src/org/tela_botanica/del/client/utils/TBSuggestOracle.java
15,10 → 15,10
public class TBSuggestOracle extends SuggestOracle {
 
// On devrait gérer des objets qui contiennent le nn plutôt que de se baser uniquement sur des Strings
protected ArrayList<InfosNomPourAutocompletion> possibilites;
protected ArrayList<String> possibilites;
 
public TBSuggestOracle() {
this.possibilites = new ArrayList<InfosNomPourAutocompletion>();
this.possibilites = new ArrayList<String>();
}
 
public void clear() {
25,7 → 25,7
this.possibilites.clear();
}
 
public void add(InfosNomPourAutocompletion suggestion) {
public void add(String suggestion) {
this.possibilites.add(suggestion);
}
 
34,14 → 34,10
int limit = request.getLimit();
List<MultiWordSuggestion> retenus = new ArrayList<MultiWordSuggestion>();
 
for (InfosNomPourAutocompletion possibilite : this.possibilites) {
String possibiliteTexte = possibilite.getNs();
String possibiliteHtml = possibiliteTexte;
if (possibilite.isRetenu()) {
possibiliteHtml = "<strong>" + possibiliteHtml + "</strong>";
}
if (possibiliteTexte.toLowerCase().startsWith(query)) {
MultiWordSuggestion muWoSug = new MultiWordSuggestion(possibiliteTexte, possibiliteHtml);
for (String possibilite : this.possibilites) {
String possibiliteHtml = possibilite;
if (possibilite.toLowerCase().startsWith(query)) {
MultiWordSuggestion muWoSug = new MultiWordSuggestion(possibilite, possibiliteHtml);
retenus.add(muWoSug);
}
}
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesAutoCompletionService.java
1,15 → 1,13
package org.tela_botanica.del.client.utils;
 
import java.util.LinkedHashMap;
import java.util.HashMap;
import java.util.Map;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
 
public class UtilitairesAutoCompletionService {
33,42 → 31,30
return chaineTraitee;
}
public static Map<String, InfosNomPourAutocompletion> extraireTaxonsNumNomsResultatRetourSimple(Response response) {
public static Map<String, String> extraireTaxonsNumNomsResultatRetourSimple(Response response) {
JSONObject responseValue = JSONParser.parseStrict(response.getText()).isObject();
JSONArray noms = responseValue.get("resultats").isArray();
final int taillemax = noms.size();
// LinkedHashMap préserve l'ordre
Map<String, InfosNomPourAutocompletion> retourTaxons = new LinkedHashMap<String, InfosNomPourAutocompletion>(taillemax);
Map<String, String> retourTaxons = new HashMap<String, String>(taillemax);
for (int i = 0; i < taillemax; i++) {
// comment rendre compliqué un format fait pour être simple
JSONObject obj = noms.get(i).isObject();
String ns = obj.get("ns").isString().stringValue();
double nn = obj.get("nn").isNumber().doubleValue();
boolean retenu = obj.get("retenu").isBoolean().booleanValue();
// empile, Gérard !
retourTaxons.put(ns, new InfosNomPourAutocompletion(nn, ns, retenu));
String nom = (noms.get(i).isArray().get(0).isString().stringValue());
String taxon = (noms.get(i).isArray().get(1).isString().stringValue());
retourTaxons.put(nom, taxon);
}
return retourTaxons;
}
public static InfosNomPourAutocompletion[] parserResultatRetourSimple(Response response) {
public static String[] parserResultatRetourSimple(Response response) {
JSONObject responseValue = JSONParser.parseStrict(response.getText()).isObject();
JSONArray noms = responseValue.get("resultats").isArray();
 
String[] valeurs = new String[0];
final int taillemax = noms.size();
InfosNomPourAutocompletion[] valeurs = new InfosNomPourAutocompletion[taillemax];
 
// Eh les gars, si on refaisait le même truc ici que celui qu'on vient de faire en haut ?
valeurs = new String[taillemax];
for (int i = 0; i < taillemax; i++) {
// comment rendre comp... euh j'ai déjà dit ça il y a 20 lignes, non ?
JSONObject obj = noms.get(i).isObject();
String ns = obj.get("ns").isString().stringValue();
double nn = obj.get("nn").isNumber().doubleValue();
boolean retenu = obj.get("retenu").isBoolean().booleanValue();
// empile, Marcel !
valeurs[i] = new InfosNomPourAutocompletion(nn, ns, retenu);
valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue());
}
return valeurs;
}
/trunk/src/org/tela_botanica/del/client/composants/formulairerechercheeflore/FormulaireRechercheEflorePresenteur.java
7,7 → 7,6
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.EvenementComparaisonEflore;
import org.tela_botanica.del.client.utils.InfosNomPourAutocompletion;
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
 
import com.google.gwt.event.dom.client.ClickEvent;
66,7 → 65,7
}
 
@Override
protected InfosNomPourAutocompletion[] parserResultatRequete(Response response) {
protected String[] parserResultatRequete(Response response) {
return UtilitairesAutoCompletionService.parserResultatRetourSimple(response);
}
};
/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRecherchePresenteur.java
12,7 → 12,6
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.services.ReferentielService;
import org.tela_botanica.del.client.utils.InfosNomPourAutocompletion;
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
 
import com.google.gwt.event.dom.client.ClickEvent;
208,7 → 207,7
}
 
@Override
protected InfosNomPourAutocompletion[] parserResultatRequete(Response response) {
protected String[] parserResultatRequete(Response response) {
return UtilitairesAutoCompletionService.parserResultatRetourSimple(response);
// A décommenter lors de l'utilisation des web services eflore
// return RetourAutoCompletionService.parserRetourOss(response);
233,7 → 232,7
}
 
@Override
protected InfosNomPourAutocompletion[] parserResultatRequete(Response response) {
protected String[] parserResultatRequete(Response response) {
return UtilitairesAutoCompletionService.parserResultatRetourSimple(response);
}
};
/trunk/src/org/tela_botanica/del/client/composants/formulaires/autocompletion/AutoCompletionComboBoxPresenteur.java
1,7 → 1,5
package org.tela_botanica.del.client.composants.formulaires.autocompletion;
 
import org.tela_botanica.del.client.utils.InfosNomPourAutocompletion;
 
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
import com.google.gwt.event.dom.client.KeyPressEvent;
29,7 → 27,7
public void ajouterVue(HasWidgets composite);
public HasKeyPressHandlers getSuggestBoxHasKeyPressHandlers();
public String getValeur();
public void remplirListe(InfosNomPourAutocompletion[] suggestions);
public void remplirListe(String[] suggestions);
public void afficherSuggestions(SuggestOracle.Request request,SuggestOracle.Callback response);
public void afficherListeDeroulante();
public void nettoyer();
151,7 → 149,7
}
public void surReponseRequete(String requete, Response response) {
InfosNomPourAutocompletion[] valeurs = parserResultatRequete(response);
String[] valeurs = parserResultatRequete(response);
autoCompletionComboBoxVue.remplirListe(valeurs);
requeteOracle.setQuery(requete);
autoCompletionComboBoxVue.afficherSuggestions(requeteOracle, callBackOracle);
178,7 → 176,7
* @param Response la réponse à la requête asynchrone
* @return String[] le tableau des suggestions qui sera affiché dans la combobox
*/
protected abstract InfosNomPourAutocompletion[] parserResultatRequete(Response response);
protected abstract String[] parserResultatRequete(Response response);
 
public Vue getAutoCompletionComboBoxVue() {
return autoCompletionComboBoxVue;
/trunk/src/org/tela_botanica/del/client/composants/formulaires/autocompletion/AutoCompletionComboBoxVue.java
1,6 → 1,5
package org.tela_botanica.del.client.composants.formulaires.autocompletion;
 
import org.tela_botanica.del.client.utils.InfosNomPourAutocompletion;
import org.tela_botanica.del.client.utils.TBSuggestOracle;
 
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
28,7 → 27,7
return suggestions;
}
public void remplirListe(InfosNomPourAutocompletion[] listePropositions) {
public void remplirListe(String[] listePropositions) {
msu.clear();
for (int i = 0; i < listePropositions.length; i++) {
/trunk/src/org/tela_botanica/del/client/composants/formulaires/formulaireproposition/FormulairePropositionPresenteur.java
19,15 → 19,12
import org.tela_botanica.del.client.services.ReferentielService;
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService;
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
import org.tela_botanica.del.client.utils.InfosNomPourAutocompletion;
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.http.client.Response;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
83,7 → 80,7
private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur;
private PropositionDeterminationService propositionDeterminationService;
private Map<String, InfosNomPourAutocompletion> cacheTaxons = new HashMap<String, InfosNomPourAutocompletion>();
private Map<String, String> cacheTaxons = new HashMap<String, String>();
 
public FormulairePropositionPresenteur(Vue vue, PropositionDeterminationService propositionDeterminationService) {
this.vue = vue;
122,7 → 119,7
}
 
@Override
protected InfosNomPourAutocompletion[] parserResultatRequete(Response response) {
protected String[] parserResultatRequete(Response response) {
cacheTaxons = UtilitairesAutoCompletionService.extraireTaxonsNumNomsResultatRetourSimple(response);
return UtilitairesAutoCompletionService.parserResultatRetourSimple(response);
}
251,7 → 248,7
String nomTaxon = autoCompletionNomTaxonsPresenteur.getValeur();
propositionAjoutee.setEspece(nomTaxon);
if(cacheTaxons.containsKey(nomTaxon)) {
propositionAjoutee.setNumNomenclatural("" + cacheTaxons.get(nomTaxon).getNn());
propositionAjoutee.setNumNomenclatural(cacheTaxons.get(nomTaxon));
}
if(vue.getReferentiel() != "tous") {