Subversion Repositories eFlore/Applications.del

Rev

Rev 1886 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
500 aurelien 1
package org.tela_botanica.del.client.utils;
386 aurelien 2
 
1886 mathias 3
import java.util.LinkedHashMap;
1256 aurelien 4
import java.util.Map;
5
 
1886 mathias 6
import com.google.gwt.core.client.GWT;
386 aurelien 7
import com.google.gwt.http.client.Response;
8
import com.google.gwt.json.client.JSONArray;
938 gduche 9
import com.google.gwt.json.client.JSONObject;
386 aurelien 10
import com.google.gwt.json.client.JSONParser;
11
import com.google.gwt.json.client.JSONValue;
1886 mathias 12
import com.google.gwt.user.client.Window;
386 aurelien 13
 
14
public class UtilitairesAutoCompletionService {
15
 
16
	public static String effectuerPreTraitementChaineRequeteGenreEspeceSlash(String requete) {
17
		String chaineTraitee = requete;
18
		String[] parties = requete.split(" ", 2);
19
 
20
		if(parties.length == 2) {
21
			if(parties[1].trim().isEmpty()) {
22
				parties[1] = "*";
23
			}
24
			chaineTraitee = parties[0]+"/"+parties[1];
25
		}
26
 
27
		return chaineTraitee;
28
	}
29
 
30
	public static String effectuerPreTraitementChaineRequeteGenreEspeceEflore(String requete) {
31
 
32
		String chaineTraitee = "?recherche=etendue&ns.structure=au&retour.format=oss&masque="+requete;
33
		return chaineTraitee;
34
	}
35
 
1886 mathias 36
	public static Map<String, InfosNomPourAutocompletion> extraireTaxonsNumNomsResultatRetourSimple(Response response) {
1256 aurelien 37
		JSONObject responseValue = JSONParser.parseStrict(response.getText()).isObject();
38
		JSONArray noms = responseValue.get("resultats").isArray();
39
 
40
		final int taillemax = noms.size();
1886 mathias 41
		// LinkedHashMap préserve l'ordre
42
		Map<String, InfosNomPourAutocompletion> retourTaxons = new LinkedHashMap<String, InfosNomPourAutocompletion>(taillemax);
1256 aurelien 43
 
44
		for (int i = 0; i < taillemax; i++) {
1886 mathias 45
			// comment rendre compliqué un format fait pour être simple
46
			JSONObject obj = noms.get(i).isObject();
47
			String ns = obj.get("ns").isString().stringValue();
48
			double nn = obj.get("nn").isNumber().doubleValue();
49
			boolean retenu = obj.get("retenu").isBoolean().booleanValue();
50
			// empile, Gérard !
51
			retourTaxons.put(ns, new InfosNomPourAutocompletion(nn, ns, retenu));
1256 aurelien 52
		}
53
		return retourTaxons;
54
	}
55
 
1886 mathias 56
	public static InfosNomPourAutocompletion[] parserResultatRetourSimple(Response response) {
938 gduche 57
		JSONObject responseValue = JSONParser.parseStrict(response.getText()).isObject();
58
		JSONArray noms = responseValue.get("resultats").isArray();
1886 mathias 59
 
938 gduche 60
		final int taillemax = noms.size();
1886 mathias 61
		InfosNomPourAutocompletion[] valeurs = new InfosNomPourAutocompletion[taillemax];
62
 
63
		// Eh les gars, si on refaisait le même truc ici que celui qu'on vient de faire en haut ?
938 gduche 64
		for (int i = 0; i < taillemax; i++) {
1886 mathias 65
			// comment rendre comp... euh j'ai déjà dit ça il y a 20 lignes, non ?
66
			JSONObject obj = noms.get(i).isObject();
67
			String ns = obj.get("ns").isString().stringValue();
68
			double nn = obj.get("nn").isNumber().doubleValue();
69
			boolean retenu = obj.get("retenu").isBoolean().booleanValue();
70
			// empile, Marcel !
71
			valeurs[i] = new InfosNomPourAutocompletion(nn, ns, retenu);
938 gduche 72
		}
73
		return valeurs;
74
	}
75
 
386 aurelien 76
	public static String[] parserRetourSimple(Response response) {
77
		final JSONValue responseValue = JSONParser.parseStrict(response.getText());
78
		JSONArray noms;
79
		String[] valeurs = new String[0];
80
 
81
		if ((noms=responseValue.isArray()) != null) {
82
 
83
			final int taillemax = noms.size();
84
			valeurs = new String[taillemax];
85
			for (int i = 0; i < taillemax; i++) {
86
				valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue());
87
			}
88
		}
89
		return valeurs;
90
	}
91
 
92
	public static String[] parserRetourOss(Response response) {
93
		JSONValue retourJson = JSONParser.parseStrict(response.getText());
94
		JSONArray tableauResultat = retourJson.isArray().get(1).isArray();
95
 
96
		String[] suggestions = new String[tableauResultat.size()];
97
		for (int i = 0; i < tableauResultat.size(); i++) {
98
			suggestions[i] = tableauResultat.get(i).isString().stringValue();
99
		}
100
 
101
		return suggestions;
102
	}
103
}