Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1329 Rev 1367
Line 1... Line 1...
1
package org.tela_botanica.client.modeles;
1
package org.tela_botanica.client.modeles;
Line 2... Line 2...
2
 
2
 
Line -... Line 3...
-
 
3
import java.util.HashMap;
3
import java.util.HashMap;
4
 
4
 
5
import org.tela_botanica.client.Mediateur;
5
import org.tela_botanica.client.http.JsonRestRequestBuilder;
6
import org.tela_botanica.client.http.JsonRestRequestBuilder;
6
import org.tela_botanica.client.http.JsonRestRequestCallback;
7
import org.tela_botanica.client.http.JsonRestRequestCallback;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
Line 27... Line 28...
27
	// FIXME : limiteJREST devrait être récupéré depuis un registre/dictionnaire
28
	// FIXME : limiteJREST devrait être récupéré depuis un registre/dictionnaire
28
	private int limiteJREST = 150;
29
	private int limiteJREST = 150;
Line 29... Line 30...
29
 
30
 
30
	public ValeurListeAsyncDao(Rafraichissable vueCourante) {
31
	public ValeurListeAsyncDao(Rafraichissable vueCourante) {
-
 
32
		vueARafraichir = vueCourante;
31
		vueARafraichir = vueCourante;
33
		if (Mediateur.DEBUG) System.out.println("|| ValeurListeAsyncDao > vueARafraichir = "+vueARafraichir.getClass().toString());
Line 32... Line 34...
32
	}
34
	}
33
	
35
	
34
	public static HashMap<String, Object> getOntologieCache() {
36
	public static HashMap<String, Object> getOntologieCache() {
Line 35... Line 37...
35
		return ontologieCache;
37
		return ontologieCache;
36
	}
38
	}
37
	
39
	
Line 38... Line 40...
38
	public void obtenirListe(Integer cle, Integer seqId)	{		
40
	public void obtenirListe(Integer cle, Integer seqId) {
39
		selectionner("id", cle, null, null, false, null, -1, -1, seqId);
41
		selectionner("id", cle, null, null, false, null, -1, -1, seqId);
40
	}
42
	}
Line 41... Line 43...
41
	
43
	
42
	public void obtenirListe(String type, String identifiantValeur, Integer seqId)	{		
44
	public void obtenirListe(String type, String identifiantValeur, Integer seqId) {
43
		selectionner(type, null, null, identifiantValeur, false, null, -1, -1, seqId);
45
		selectionner(type, null, null, identifiantValeur, false, null, -1, -1, seqId);
Line 44... Line 46...
44
	}
46
	}
45
	
47
	
Line 85... Line 87...
85
	 *  @param	'start' et 'limit' sont les paramètres indispensables à la pagination. 'start'
87
	 *  @param	'start' et 'limit' sont les paramètres indispensables à la pagination. 'start'
86
	 *  		est le paramètre qui décrit le numéro du tuple de départ et 'limit' le nombre
88
	 *  		est le paramètre qui décrit le numéro du tuple de départ et 'limit' le nombre
87
	 *  		d'éléments à collecter.
89
	 *  		d'éléments à collecter.
88
	 *  
90
	 *  
89
	 *****************************************************************************************************/
91
	 *****************************************************************************************************/
90
	public void selectionner(final String type, final Integer cle, final String abv, final String idValeur, final boolean pagination, final String recherche, final int start, final int limit, final Integer seqId) {
92
	public void selectionner(final String type, final Integer cle, final String abv, final String idValeur, final boolean pagination, final String recherche, final int start, final int limit, final Integer seqId) {		
91
 
-
 
92
		/**
93
		/**
93
		 * La cleParent en Integer est insuffisante pour les liste valeurs comme Région qui on plusieurs 
94
		 * La cleParent en Integer est insuffisante pour les liste valeurs comme Région qui on plusieurs 
94
		 * sections sur leur liste (ex : on ne sélectionne que les régions FR.__ puis les régions ES.__ sur la liste 1078 ....
95
		 * sections sur leur liste (ex : on ne sélectionne que les régions FR.__ puis les régions ES.__ sur la liste 1078 ....
95
		 **/
96
		 **/
96
		final String cleParentPourCache = cle + (abv == null ? "" : abv);
97
		final String cleParentPourCache = cle + (abv == null ? "" : abv);
Line 130... Line 131...
130
    		/** ENVOI DE LA REQUETE **/
131
    		/** ENVOI DE LA REQUETE **/
131
    		rb.envoyerRequete(null, new JsonRestRequestCallback()
132
    		rb.envoyerRequete(null, new JsonRestRequestCallback()
132
    		{
133
    		{
133
    			/** RECEPTION DE LA REPONSE **/
134
    			/** RECEPTION DE LA REPONSE **/
134
    			public void surReponse(JSONValue responseValue)
135
    			public void surReponse(JSONValue responseValue)
135
    			{
136
    			{    				
136
    				if (vueARafraichir instanceof Sequenceur)	{
137
    				if (vueARafraichir instanceof Sequenceur)	{
-
 
138
    					if (Mediateur.DEBUG) System.out.println("<-- ValeurListeAsyncDao > Liste paginée, retour au sequenceur");
137
    					Reponse reponse = new Reponse(responseValue, seqId);
139
    					Reponse reponse = new Reponse(responseValue, seqId);
138
    					vueARafraichir.rafraichir(reponse);
140
    					vueARafraichir.rafraichir(reponse);
Line 139... Line 141...
139
    					
141
    					
140
    				/** Dans le cas d'une liste paginée, vueARafraichir est un objet Proxy.
142
    				/** Dans le cas d'une liste paginée, vueARafraichir est un objet Proxy.
141
    				 * On retourne l'objet JSON au proxy afin que ce soit lui qui le traite **/
143
    				 * On retourne l'objet JSON au proxy afin que ce soit lui qui le traite **/
-
 
144
    				} else {
142
    				} else {
145
    					if (Mediateur.DEBUG) System.out.println("<-- ValeurListeAsyncDao > Liste paginée, retour à "+vueARafraichir.getClass().toString());
143
    					vueARafraichir.rafraichir(responseValue);
146
    					vueARafraichir.rafraichir(responseValue);
144
    				}
147
    				}
145
    			}
148
    			}
146
    		});
149
    		});
Line 162... Line 165...
162
			}
165
			}
Line 163... Line 166...
163
			
166
			
164
			/** Si l'on est pas dans un processus de récupération d'une liste, alors si le cache contient déjà la liste recherchée **/
167
			/** Si l'on est pas dans un processus de récupération d'une liste, alors si le cache contient déjà la liste recherchée **/
Line 165... Line 168...
165
			if (!nextPage && ontologieCache.containsKey(cleParentPourCache)) {
168
			if (!nextPage && ontologieCache.containsKey(cleParentPourCache)) {
-
 
169
					
-
 
170
				/** on retourne à la vue la liste contenue dans le cache **/				
-
 
171
				if (vueARafraichir instanceof Sequenceur)	{
-
 
172
					if (Mediateur.DEBUG) System.out.println("<-- ValeurListeAsyncDao > Liste en cache, retour au sequenceur");
-
 
173
					vueARafraichir = (Sequenceur) vueARafraichir;
-
 
174
					Reponse reponse = new Reponse(ontologieCache.get(cleParentPourCache), seqId);
-
 
175
					vueARafraichir.rafraichir(reponse);
166
					
176
				} else {
-
 
177
					System.out.println("<-- ValeurListeAsyncDao > Liste en cache, retour à "+vueARafraichir.getClass().toString());
167
				/** on retourne à la vue la liste contenue dans le cache **/
178
					vueARafraichir.rafraichir(ontologieCache.get(cleParentPourCache));
168
				vueARafraichir.rafraichir(ontologieCache.get(cleParentPourCache));
179
				}
169
			}
180
			}
Line 170... Line 181...
170
			/** Si l'on est en train de récupérer une liste (c-a-d que l'on est en train de charger des blocs de données afin de récupérer totalement une liste) **/
181
			/** Si l'on est en train de récupérer une liste (c-a-d que l'on est en train de charger des blocs de données afin de récupérer totalement une liste) **/
Line 269... Line 280...
269
			cptPage = 0;
280
			cptPage = 0;
Line 270... Line 281...
270
 
281
 
271
			/** On retourne la liste à la vue **/ 		
282
			/** On retourne la liste à la vue **/ 		
272
			if (ontologieCache.get(id) != null) {
283
			if (ontologieCache.get(id) != null) {
-
 
284
				if (vueARafraichir instanceof Sequenceur)	{
273
				if (vueARafraichir instanceof Sequenceur)	{
285
					System.out.println("<-- ValeurListeAsyncDao > Liste en cache, retour au sequenceur");
274
					vueARafraichir = (Sequenceur) vueARafraichir;
286
					vueARafraichir = (Sequenceur) vueARafraichir;
275
					Reponse reponse = new Reponse(ontologieCache.get(id), seqId);
287
					Reponse reponse = new Reponse(ontologieCache.get(id), seqId);
276
					vueARafraichir.rafraichir(reponse);
288
					vueARafraichir.rafraichir(reponse);
-
 
289
				} else {
277
				} else {
290
					System.out.println("<-- ValeurListeAsyncDao > Liste en cache, retour à "+vueARafraichir.getClass().toString());
278
					vueARafraichir.rafraichir(ontologieCache.get(id));
291
					vueARafraichir.rafraichir(ontologieCache.get(id));
279
				}
292
				}
280
			}
293
			}
281
		}
294
		}