New file |
0,0 → 1,103 |
package org.tela_botanica.del.client.utils; |
|
import java.util.LinkedHashMap; |
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 { |
|
public static String effectuerPreTraitementChaineRequeteGenreEspeceSlash(String requete) { |
String chaineTraitee = requete; |
String[] parties = requete.split(" ", 2); |
|
if(parties.length == 2) { |
if(parties[1].trim().isEmpty()) { |
parties[1] = "*"; |
} |
chaineTraitee = parties[0]+"/"+parties[1]; |
} |
|
return chaineTraitee; |
} |
|
public static String effectuerPreTraitementChaineRequeteGenreEspeceEflore(String requete) { |
|
String chaineTraitee = "?recherche=etendue&ns.structure=au&retour.format=oss&masque="+requete; |
return chaineTraitee; |
} |
|
public static Map<String, InfosNomPourAutocompletion> 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); |
|
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)); |
} |
return retourTaxons; |
} |
|
public static InfosNomPourAutocompletion[] parserResultatRetourSimple(Response response) { |
JSONObject responseValue = JSONParser.parseStrict(response.getText()).isObject(); |
JSONArray noms = responseValue.get("resultats").isArray(); |
|
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 ? |
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); |
} |
return valeurs; |
} |
|
public static String[] parserRetourSimple(Response response) { |
final JSONValue responseValue = JSONParser.parseStrict(response.getText()); |
JSONArray noms; |
String[] valeurs = new String[0]; |
|
if ((noms=responseValue.isArray()) != null) { |
|
final int taillemax = noms.size(); |
valeurs = new String[taillemax]; |
for (int i = 0; i < taillemax; i++) { |
valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue()); |
} |
} |
return valeurs; |
} |
|
public static String[] parserRetourOss(Response response) { |
JSONValue retourJson = JSONParser.parseStrict(response.getText()); |
JSONArray tableauResultat = retourJson.isArray().get(1).isArray(); |
|
String[] suggestions = new String[tableauResultat.size()]; |
for (int i = 0; i < tableauResultat.size(); i++) { |
suggestions[i] = tableauResultat.get(i).isString().stringValue(); |
} |
|
return suggestions; |
} |
} |