Rev 1256 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
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'ordreMap<String, InfosNomPourAutocompletion> retourTaxons = new LinkedHashMap<String, InfosNomPourAutocompletion>(taillemax);for (int i = 0; i < taillemax; i++) {// comment rendre compliqué un format fait pour être simpleJSONObject 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;}}