Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 989 Rev 1293
Line 6... Line 6...
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.ListeReferentielNom;
8
import org.tela_botanica.client.modeles.objets.ListeReferentielNom;
9
import org.tela_botanica.client.modeles.objets.ReferentielNom;
9
import org.tela_botanica.client.modeles.objets.ReferentielNom;
10
import org.tela_botanica.client.observation.ObservationModele;
10
import org.tela_botanica.client.observation.ObservationModele;
11
import org.tela_botanica.client.util.Util;
-
 
Line 12... Line 11...
12
 
11
 
13
import com.google.gwt.http.client.Request;
12
import com.google.gwt.http.client.Request;
14
import com.google.gwt.http.client.RequestBuilder;
13
import com.google.gwt.http.client.RequestBuilder;
15
import com.google.gwt.http.client.RequestCallback;
14
import com.google.gwt.http.client.RequestCallback;
Line 41... Line 40...
41
	 * Cache
40
	 * Cache
42
	 * 
41
	 * 
43
	 */
42
	 */
Line 44... Line 43...
44
	
43
	
45
	private HashMap <String,ListeReferentielNom> cache = new HashMap();
-
 
46
	
-
 
Line 47... Line -...
47
	
-
 
48
 
44
	private HashMap <String,ListeReferentielNom> cache = new HashMap();
49
	
45
 
Line 50... Line 46...
50
	public ListeReferentielNomAsynchroneDAO(ObservationModele observationModele)
46
	public ListeReferentielNomAsynchroneDAO(ObservationModele observationModele)
51
	{
47
	{
Line 60... Line 56...
60
	 * @param r le rafraichissable qui demande la mise à jour
56
	 * @param r le rafraichissable qui demande la mise à jour
61
	 * @param criteres un string contenant le terme a rechercher
57
	 * @param criteres un string contenant le terme a rechercher
62
	 */
58
	 */
Line -... Line 59...
-
 
59
	
63
	
60
	
64
	
61
	@Override
Line 65... Line 62...
65
	public void obtenirListeDonnees(final Rafraichissable r, final String critere)
62
	public void obtenirListeDonnees(final Rafraichissable r, final String critere)
Line 93... Line 90...
93
		
90
		
Line 94... Line 91...
94
		try {
91
		try {
Line -... Line 92...
-
 
92
			
95
			
93
			rb.sendRequest(null, new RequestCallback() {
96
			rb.sendRequest(null, new RequestCallback() {
94
 
Line 97... Line 95...
97
 
95
				@Override
Line -... Line 96...
-
 
96
				public void onError(Request request, Throwable exception) {
98
				public void onError(Request request, Throwable exception) {
97
					// TODO Auto-generated method stub
99
					// TODO Auto-generated method stub
98
					
Line 100... Line 99...
100
					
99
				}
Line 115... Line 114...
115
						
114
						
116
						JSONArray noms;
115
						JSONArray noms;
Line 117... Line 116...
117
						final int taillemax = reponse.size();
116
						final int taillemax = reponse.size();
118
						
-
 
119
						referentielNomData = new ListeReferentielNom(taillemax);
117
						
120
						
118
						referentielNomData = new ListeReferentielNom(taillemax);
121
						for (int i = 0; i < taillemax; i++) {
-
 
122
							if ((noms=reponse.get(i).isArray()) != null) {
-
 
123
								
119
						for (int i = 0; i < taillemax; i++) {
124
								
120
							if ((noms=reponse.get(i).isArray()) != null) {
125
								String nom = ((JSONString) noms.get(0)).toString();
121
								String nom = ((JSONString) noms.get(0)).stringValue();
126
								String numeroNom = ((JSONString) noms.get(1)).toString();
-
 
127
								String statut= ((JSONString) noms.get(2)).toString();
-
 
128
								
122
								String numeroNom = ((JSONString) noms.get(1)).stringValue();
129
								
-
 
130
								ReferentielNom nomScientifique=new ReferentielNom(nom, numeroNom, statut);
123
								String statut= ((JSONString) noms.get(2)).stringValue();
131
				
-
 
132
								// FIXME : et si le numero de nom n'est pas unique ? (cas de multirefrentiel....)
124
								ReferentielNom nomScientifique = new ReferentielNom(nom, numeroNom, statut);
133
								
-
 
134
								referentielNomData.put(nomScientifique.getNumeroNom(),nomScientifique);
-
 
135
		
125
								// FIXME : et si le numero de nom n'est pas unique ? (cas de multirefrentiel....)					
136
								
-
 
137
							}
126
								referentielNomData.put(nomScientifique.getNumeroNom(),nomScientifique);								
138
		
127
							}
Line 139... Line 128...
139
						}
128
						}
140
					} else {
129
					} else {
141
						
-
 
142
						referentielNomData = new ListeReferentielNom(0) ;
-
 
143
					}
-
 
144
					
-
 
145
					// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
130
						
146
					// le premier à les recevoir
-
 
147
				
131
						referentielNomData = new ListeReferentielNom(0) ;
148
					addToCache(critere, referentielNomData);
-
 
149
					
132
					}
150
					r.rafraichir(referentielNomData,true);
-
 
151
					
-
 
152
				}
133
					addToCache(critere, referentielNomData);
Line 153... Line 134...
153
				
134
					r.rafraichir(referentielNomData,true);
Line 154... Line 135...
154
				
135
				}
Line 165... Line 146...
165
	  private void addToCache(String query, ListeReferentielNom result)	  {
146
	  private void addToCache(String query, ListeReferentielNom result)	  {
166
		  cache.put(query.toLowerCase(),result);
147
		  cache.put(query.toLowerCase(),result);
167
	  }
148
	  }
Line 168... Line 149...
168
 
149
 
169
	  private ListeReferentielNom getFromCache (String query) {
150
	  private ListeReferentielNom getFromCache (String query) {
170
		  return (ListeReferentielNom) cache.get(query.toLowerCase());
151
		  return cache.get(query.toLowerCase());
Line 171... Line 152...
171
	  }
152
	  }