Subversion Repositories eFlore/Applications.cel

Rev

Rev 65 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 65 Rev 154
Line 1... Line 1...
1
package org.tela_botanica.client.modeles;
1
package org.tela_botanica.client.modeles;
Line -... Line 2...
-
 
2
 
-
 
3
import java.util.HashMap;
2
 
4
 
3
import org.tela_botanica.client.interfaces.FournisseurListe;
5
import org.tela_botanica.client.interfaces.FournisseurListe;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
Line 5... Line 7...
5
import org.tela_botanica.client.observation.ObservationModele;
7
import org.tela_botanica.client.observation.ObservationModele;
Line 13... Line 15...
13
import com.google.gwt.json.client.JSONParser;
15
import com.google.gwt.json.client.JSONParser;
14
import com.google.gwt.json.client.JSONString;
16
import com.google.gwt.json.client.JSONString;
15
import com.google.gwt.json.client.JSONValue;
17
import com.google.gwt.json.client.JSONValue;
Line 16... Line 18...
16
 
18
 
17
/**
19
/**
18
 * DAO la liste des communes.
20
 * DAO la liste des communes. Utilisation d'un cache pour eviter les requetes inutiles 
19
 * @author David Delon
21
 * @author David Delon
20
 *
22
 *
21
 */
23
 */
Line 29... Line 31...
29
	 */
31
	 */
30
	private ObservationModele observationModele = null;
32
	private ObservationModele observationModele = null;
Line 31... Line 33...
31
	
33
	
-
 
34
	
-
 
35
	/**
-
 
36
	 * Cache
-
 
37
	 * 
-
 
38
	 */
-
 
39
	
-
 
40
	private HashMap<String,ListeReferentielCommune> cache = new HashMap();
-
 
41
	
-
 
42
	
32
	
43
	
33
	/**
44
	/**
34
	 *  Constructeur. 
45
	 *  Constructeur. 
Line 35... Line 46...
35
	 * @param obs : Modele 
46
	 * @param obs : Modele 
Line 48... Line 59...
48
	 */
59
	 */
Line 49... Line 60...
49
	
60
	
Line -... Line 61...
-
 
61
	
-
 
62
	public final void obtenirListeDonnees(final Rafraichissable r, final String critere) {
-
 
63
		
-
 
64
		
-
 
65
		ListeReferentielCommune referentielCommuneDataFromCache=null;
-
 
66
		
-
 
67
		
-
 
68
		// En cache ?
-
 
69
		if ((referentielCommuneDataFromCache=getFromCache(critere))!=null) {
-
 
70
			r.rafraichir(referentielCommuneDataFromCache,true);  
-
 
71
	    }
-
 
72
	    
-
 
73
		else {
-
 
74
	    	  
50
	
75
	    	  
Line 51... Line 76...
51
	public final void obtenirListeDonnees(final Rafraichissable r, final String critere) {
76
	  
Line 52... Line 77...
52
		
77
		
Line 98... Line 123...
98
						
123
						
99
					}			
124
					}			
100
					// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
125
					// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
Line -... Line 126...
-
 
126
					// le premier à les recevoir		
101
					// le premier à les recevoir		
127
					
Line 102... Line 128...
102
					
128
					addToCache(critere, referentielCommuneData);
Line 103... Line 129...
103
					r.rafraichir(referentielCommuneData, true);
129
					r.rafraichir(referentielCommuneData, true);
Line 109... Line 135...
109
		} catch (RequestException e) {
135
		} catch (RequestException e) {
Line 110... Line 136...
110
			
136
			
111
			e.printStackTrace();
137
			e.printStackTrace();
Line -... Line 138...
-
 
138
		}
-
 
139
		
112
		}
140
		} // Fin else si pas de cache
-
 
141
		
-
 
142
	}
-
 
143
	
-
 
144
	  private void addToCache(String query, ListeReferentielCommune result)	  {
-
 
145
		  cache.put(query.toLowerCase(),result);
-
 
146
	  }
-
 
147
 
-
 
148
	  private ListeReferentielCommune getFromCache (String query) {
-
 
149
		  return (ListeReferentielCommune) cache.get(query.toLowerCase());
-
 
150
	  }
-
 
151
 
113
		
152