Subversion Repositories eFlore/Applications.cel

Rev

Rev 1918 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1918 Rev 2568
Line 3... Line 3...
3
import java.util.HashMap;
3
import java.util.HashMap;
Line 4... Line 4...
4
 
4
 
5
import org.tela_botanica.client.interfaces.FournisseurListe;
5
import org.tela_botanica.client.interfaces.FournisseurListe;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.modeles.objets.Configuration;
7
import org.tela_botanica.client.modeles.objets.Configuration;
8
import org.tela_botanica.client.modeles.objets.ListeReferentielCommune;
8
import org.tela_botanica.client.modeles.objets.ListeReferentielLocalite;
9
import org.tela_botanica.client.modeles.objets.ReferentielCommune;
9
import org.tela_botanica.client.modeles.objets.ReferentielLocalite;
Line 10... Line 10...
10
import org.tela_botanica.client.observation.ObservationModele;
10
import org.tela_botanica.client.observation.ObservationModele;
11
 
11
 
12
import com.google.gwt.http.client.Request;
12
import com.google.gwt.http.client.Request;
Line 19... Line 19...
19
import com.google.gwt.json.client.JSONParser;
19
import com.google.gwt.json.client.JSONParser;
20
import com.google.gwt.json.client.JSONString;
20
import com.google.gwt.json.client.JSONString;
21
import com.google.gwt.json.client.JSONValue;
21
import com.google.gwt.json.client.JSONValue;
Line 22... Line 22...
22
 
22
 
23
/**
23
/**
24
 * DAO la liste des communes. Utilisation d'un cache pour eviter les requetes inutiles 
24
 * DAO la liste des localites. Utilisation d'un cache pour eviter les requetes inutiles 
25
 * @author David Delon
25
 * @author David Delon
26
 *
26
 *
27
 */
27
 */
Line 28... Line 28...
28
public class ListeReferentielCommuneAsynchroneDAO implements FournisseurListe {
28
public class ListeReferentielLocaliteAsynchroneDAO implements FournisseurListe {
Line 39... Line 39...
39
	/**
39
	/**
40
	 * Cache
40
	 * Cache
41
	 * 
41
	 * 
42
	 */
42
	 */
Line 43... Line 43...
43
	
43
	
Line 44... Line 44...
44
	private HashMap<String,ListeReferentielCommune> cache = new HashMap();
44
	private HashMap<String,ListeReferentielLocalite> cache = new HashMap();
45
	
45
	
46
	
46
	
47
	
47
	
Line 48... Line 48...
48
	/**
48
	/**
49
	 *  Constructeur. 
49
	 *  Constructeur. 
50
	 * @param obs : Modele 
50
	 * @param obs : Modele 
Line 51... Line 51...
51
	 */
51
	 */
52
	
52
	
53
	public ListeReferentielCommuneAsynchroneDAO(final ObservationModele obs) {
53
	public ListeReferentielLocaliteAsynchroneDAO(final ObservationModele obs) {
54
		this.observationModele = obs;
54
		this.observationModele = obs;
55
	}
55
	}
56
	
56
	
Line 57... Line 57...
57
	
57
	
58
	/**
58
	/**
Line 59... Line 59...
59
	 * Envoie une requete au serveur jrest pour obtenir les communes  correspondant
59
	 * Envoie une requete au serveur jrest pour obtenir les localites  correspondant
Line 60... Line 60...
60
	 * à des critères données en paramètres.
60
	 * à des critères données en paramètres.
61
	 * @param r le rafraichissable qui demande la mise à jour
61
	 * @param r le rafraichissable qui demande la mise à jour
62
	 * @param critere un string contenant le terme a rechercher
62
	 * @param critere un string contenant le terme a rechercher
63
	 */
63
	 */
Line 64... Line 64...
64
	
64
	
65
	
65
	
66
	@Override
66
	@Override
Line 89... Line 89...
89
	
89
	
90
					@Override
90
					@Override
91
					public void onResponseReceived(final Request request,
91
					public void onResponseReceived(final Request request,
Line 92... Line 92...
92
							final Response response) {
92
							final Response response) {
93
						
93
						
94
						final ListeReferentielCommune referentielCommuneData;					
94
						final ListeReferentielLocalite referentielLocaliteData;					
Line 95... Line 95...
95
						final JSONValue responseValue = JSONParser.parse(response.getText());					
95
						final JSONValue responseValue = JSONParser.parse(response.getText());					
96
						JSONArray reponse = null;
96
						JSONArray reponse = null;
Line 97... Line 97...
97
	
97
	
98
						// si c'est un tableau
98
						// si c'est un tableau
Line 99... Line 99...
99
						if ((reponse = responseValue.isArray()) != null) {
99
						if ((reponse = responseValue.isArray()) != null) {
Line 100... Line 100...
100
							
100
							
101
							JSONArray communes;
101
							JSONArray localites;
102
							final int taillemax = reponse.size();
102
							final int taillemax = reponse.size();
103
							
103
							
104
							referentielCommuneData = new ListeReferentielCommune(taillemax);
104
							referentielLocaliteData = new ListeReferentielLocalite(taillemax);
105
							
105
							
106
							for (int i = 0; i < taillemax; i++) {
106
							for (int i = 0; i < taillemax; i++) {
107
								if ((communes = reponse.get(i).isArray()) != null) {
107
								if ((localites = reponse.get(i).isArray()) != null) {
108
									String commune = ((JSONString) communes.get(0)).stringValue();
108
									String localite = ((JSONString) localites.get(0)).stringValue();
109
									String departement  = ((JSONString) communes.get(1)).stringValue();
109
									String departement  = ((JSONString) localites.get(1)).stringValue();
110
									ReferentielCommune com = new ReferentielCommune(commune, departement);		
110
									ReferentielLocalite com = new ReferentielLocalite(localite, departement);		
111
									referentielCommuneData.put(com.getCommune() + com.getDepartement(), com);			
111
									referentielLocaliteData.put(com.getLocalite() + com.getCodeLocalite(), com);			
112
								}	
112
								}	
Line 113... Line 113...
113
							}
113
							}
Line 114... Line 114...
114
						} else {					
114
						} else {					
Line 134... Line 134...
134
	@Override
134
	@Override
135
	public void obtenirListeDonnees(Rafraichissable r, String referentiel, String critere) {
135
	public void obtenirListeDonnees(Rafraichissable r, String referentiel, String critere) {
136
		// TODO Auto-generated method stub
136
		// TODO Auto-generated method stub
137
	}
137
	}
Line 138... Line 138...
138
	
138
	
139
	private void addToCache(String query, ListeReferentielCommune result)	  {
139
	private void addToCache(String query, ListeReferentielLocalite result)	  {
140
		cache.put(query.toLowerCase(),result);
140
		cache.put(query.toLowerCase(),result);
Line 141... Line 141...
141
	}
141
	}
142
 
142
 
143
	private ListeReferentielCommune getFromCache (String query) {
143
	private ListeReferentielLocalite getFromCache (String query) {
144
		return cache.get(query.toLowerCase());
144
		return cache.get(query.toLowerCase());