Subversion Repositories eFlore/Applications.cel

Rev

Rev 318 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 318 Rev 325
1
package org.tela_botanica.client.observation;
1
package org.tela_botanica.client.observation;
2
 
2
 
3
 
3
 
4
//TODO : normaliser les noms de methodes (obtenir, ajouter ...)
4
//TODO : normaliser les noms de methodes (obtenir, ajouter ...)
5
 
5
 
6
import java.util.HashMap;
6
import java.util.HashMap;
7
import org.tela_botanica.client.interfaces.FournisseurListe;
7
import org.tela_botanica.client.interfaces.FournisseurListe;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.modeles.Configuration;
9
import org.tela_botanica.client.modeles.Configuration;
10
import org.tela_botanica.client.modeles.ExportObservationsDAO;
10
import org.tela_botanica.client.modeles.ExportObservationsDAO;
11
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
11
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
12
import org.tela_botanica.client.modeles.ImageCarnet;
12
import org.tela_botanica.client.modeles.ImageCarnet;
13
import org.tela_botanica.client.modeles.ImageGeneriqueVueAsynchroneDAO;
13
import org.tela_botanica.client.modeles.ImageGeneriqueVueAsynchroneDAO;
14
import org.tela_botanica.client.modeles.ImageInformationRepartitionAsynchroneDAO;
14
import org.tela_botanica.client.modeles.ImageInformationRepartitionAsynchroneDAO;
15
import org.tela_botanica.client.modeles.ImportObservationAsynchroneDAO;
15
import org.tela_botanica.client.modeles.ImportObservationAsynchroneDAO;
16
import org.tela_botanica.client.modeles.InformationCommuneDAO;
16
import org.tela_botanica.client.modeles.InformationCommuneDAO;
17
import org.tela_botanica.client.modeles.LienImageAsynchroneDAO;
17
import org.tela_botanica.client.modeles.LienImageAsynchroneDAO;
18
import org.tela_botanica.client.modeles.ListeDateObservationAsynchroneDAO;
18
import org.tela_botanica.client.modeles.ListeDateObservationAsynchroneDAO;
19
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservationAsynchroneDAO;
19
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservationAsynchroneDAO;
20
import org.tela_botanica.client.modeles.ListeObservation;
20
import org.tela_botanica.client.modeles.ListeObservation;
21
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO;
21
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO;
22
import org.tela_botanica.client.modeles.ListeReferentielCommuneAsynchroneDAO;
22
import org.tela_botanica.client.modeles.ListeReferentielCommuneAsynchroneDAO;
23
import org.tela_botanica.client.modeles.ListeReferentielNomAsynchroneDAO;
23
import org.tela_botanica.client.modeles.ListeReferentielNomAsynchroneDAO;
24
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
24
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
25
import org.tela_botanica.client.modeles.NomRetenuAsynchroneDao;
25
import org.tela_botanica.client.modeles.NomRetenuAsynchroneDao;
26
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO;
26
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO;
27
import org.tela_botanica.client.modeles.Observation;
27
import org.tela_botanica.client.modeles.Observation;
28
import org.tela_botanica.client.modeles.ObservationAsynchroneDAO;
28
import org.tela_botanica.client.modeles.ObservationAsynchroneDAO;
29
import org.tela_botanica.client.modeles.TransmissionObservationAsynchroneDAO;
29
import org.tela_botanica.client.modeles.TransmissionObservationAsynchroneDAO;
30
import org.tela_botanica.client.vues.observation.ListeObservationVue;
30
import org.tela_botanica.client.vues.observation.ListeObservationVue;
-
 
31
 
31
 
32
import com.google.gwt.core.client.GWT;
32
import com.google.gwt.json.client.JSONArray;
33
import com.google.gwt.json.client.JSONArray;
33
import com.google.gwt.json.client.JSONObject;
34
import com.google.gwt.json.client.JSONObject;
34
import com.google.gwt.maps.client.geom.LatLng;
35
import com.google.gwt.maps.client.geom.LatLng;
35
import com.google.gwt.user.client.Window;
36
import com.google.gwt.user.client.Window;
36
import com.gwtext.client.data.Node;
37
import com.gwtext.client.data.Node;
37
import com.gwtext.client.data.Tree;
38
import com.gwtext.client.data.Tree;
38
import com.gwtext.client.widgets.map.LatLonPoint;
39
import com.gwtext.client.widgets.map.LatLonPoint;
39
import com.gwtext.client.widgets.tree.TreeNode;
40
import com.gwtext.client.widgets.tree.TreeNode;
40
 
41
 
41
 
42
 
42
public class ObservationModele implements Rafraichissable {
43
public class ObservationModele implements Rafraichissable {
43
 
44
 
44
	
45
	
45
	
46
	
46
	/**
47
	/**
47
	 * Booleen indiquant si le médiateur est instancié (l'instance doit être unique donc le booleen est static)
48
	 * Booleen indiquant si le médiateur est instancié (l'instance doit être unique donc le booleen est static)
48
	 */
49
	 */
49
	private static boolean estInstancie = false ;
50
	private static boolean estInstancie = false ;
50
	
51
	
51
	private static ObservationModele thisModele = null ;
52
	private static ObservationModele thisModele = null ;
52
	
53
	
53
	
54
	
54
	
55
	
55
	
56
	
56
	/**
57
	/**
57
	 * La configuration en cours
58
	 * La configuration en cours
58
	 */
59
	 */
59
	private Configuration config = null;
60
	private Configuration config = null;
60
 
61
 
61
	
62
	
62
	/**
63
	/**
63
	 * Le médiateur associé au modèle
64
	 * Le médiateur associé au modèle
64
	 */
65
	 */
65
	
66
	
66
	private ObservationMediateur observationMediateur = null ;
67
	private ObservationMediateur observationMediateur = null ;
67
	
68
	
68
	/**
69
	/**
69
	 * La liste des mots clés en cours 
70
	 * La liste des mots clés en cours 
70
	 */
71
	 */
71
	private HashMap<String, String> motsCles = new HashMap<String, String>(0);
72
	private HashMap<String, String> motsCles = new HashMap<String, String>(0);
72
	
73
	
73
	private Tree arbreMotsCles = new Tree() ;
74
	private Tree arbreMotsCles = new Tree() ;
74
	
75
	
75
	/**
76
	/**
76
	 * La liste des observations affichées en cours (verifier utilité)
77
	 * La liste des observations affichées en cours (verifier utilité)
77
	 */
78
	 */
78
	
79
	
79
	private ListeObservation cacheObservation = new ListeObservation(0) ;
80
	private ListeObservation cacheObservation = new ListeObservation(0) ;
80
	
81
	
81
	/**
82
	/**
82
	 * DAO dont le resultat peut etre mis en cache 
83
	 * DAO dont le resultat peut etre mis en cache 
83
	 * 
84
	 * 
84
	 */
85
	 */
85
	
86
	
86
	private ListeReferentielNomAsynchroneDAO nomDAO=null;
87
	private ListeReferentielNomAsynchroneDAO nomDAO=null;
87
	private ListeReferentielCommuneAsynchroneDAO refDAO=null;
88
	private ListeReferentielCommuneAsynchroneDAO refDAO=null;
88
	
89
	
89
 
90
 
90
	
91
	
91
 
92
 
92
	/**
93
	/**
93
	 * Retourne une instance de manière unique
94
	 * Retourne une instance de manière unique
94
	 * @param im le médiateur à associer
95
	 * @param im le médiateur à associer
95
	 * @return l'instance du modèle
96
	 * @return l'instance du modèle
96
	 */
97
	 */
97
	
98
	
98
	static ObservationModele Instance(ObservationMediateur observationMediateur)
99
	static ObservationModele Instance(ObservationMediateur observationMediateur)
99
	{
100
	{
100
		// si le modèle n'est pas encore instancié
101
		// si le modèle n'est pas encore instancié
101
		if(!estInstancie)
102
		if(!estInstancie)
102
		{
103
		{
103
			// on en crée un nouveau
104
			// on en crée un nouveau
104
			estInstancie = true ;
105
			estInstancie = true ;
105
			thisModele = new ObservationModele(observationMediateur);
106
			thisModele = new ObservationModele(observationMediateur);
106
		}
107
		}
107
		return thisModele ;
108
		return thisModele ;
108
	}
109
	}
109
 
110
 
110
	
111
	
111
	
112
	
112
	private ObservationModele(ObservationMediateur observationMediateur) {
113
	private ObservationModele(ObservationMediateur observationMediateur) {
113
		
114
		
114
		this.observationMediateur=observationMediateur;
115
		this.observationMediateur=observationMediateur;
115
		
116
		
116
		config = new Configuration();
117
		config = new Configuration();
117
 
118
 
118
		
119
		
119
	}
120
	}
120
 
121
 
121
	/**
122
	/**
122
	 * Appelle le DAO asynchrone pour obtenir le nombre d'observation
123
	 * Appelle le DAO asynchrone pour obtenir le nombre d'observation
123
	 * @param r le rafraichissable auxquel on enverra les données
124
	 * @param r le rafraichissable auxquel on enverra les données
124
	 * @param filtrage 
125
	 * @param filtrage 
125
	 * @param taillePage 
126
	 * @param taillePage 
126
	 */
127
	 */
127
	public void obtenirNombreObservation(Rafraichissable r) {	
128
	public void obtenirNombreObservation(Rafraichissable r) {	
128
	
129
	
129
		String[][] criteres = {{"",""}} ;		
130
		String[][] criteres = {{"",""}} ;		
130
		 	criteres = observationMediateur.renvoyerFiltres() ;			
131
		 	criteres = observationMediateur.renvoyerFiltres() ;			
131
			// on rassemble les critères
132
			// on rassemble les critères
132
			
-
 
133
			
-
 
134
			// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
133
			// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
135
			NombreObservationAsynchroneDAO noaDAO = new NombreObservationAsynchroneDAO(this) ;
134
			NombreObservationAsynchroneDAO noaDAO = new NombreObservationAsynchroneDAO(this) ;
136
			noaDAO.obtenirNombreObservation(r, observationMediateur.getIdentifiant(), criteres) ;
135
			noaDAO.obtenirNombreObservation(r, observationMediateur.getIdentifiant(), criteres) ;
137
					
136
					
138
	}
137
	}
139
	
138
	
140
	
139
	
141
	public void obtenirListeObservation(Rafraichissable r) {
140
	public void obtenirListeObservation(Rafraichissable r) {
142
		obtenirListeObservation(r,observationMediateur.getTaillePage(),observationMediateur.getPageEnCours());
141
		obtenirListeObservation(r,observationMediateur.getTaillePage(),observationMediateur.getPageEnCours());
143
	}
142
	}
144
	
143
	
145
	/**
144
	/**
146
	 * Appelle le DAO asynchrone pour obtenir la liste des images
145
	 * Appelle le DAO asynchrone pour obtenir la liste des images
147
	 * @param r le rafraichissable auxquel on enverra les données
146
	 * @param r le rafraichissable auxquel on enverra les données
148
	 * @param taillePage 
147
	 * @param taillePage 
149
	 */
148
	 */
150
	public void obtenirListeObservation(Rafraichissable r, int taillePage, int pageEncours) {	
149
	public void obtenirListeObservation(Rafraichissable r, int taillePage, int pageEncours) {	
151
		
150
		
152
		
151
		
153
		 	String[][] criteres = {{"",""}} ;
152
		 	String[][] criteres = {{"",""}} ;
154
			criteres = observationMediateur.renvoyerFiltres() ;			
153
			criteres = observationMediateur.renvoyerFiltres() ;			
155
			// on rassemble les critères
154
			// on rassemble les critères
156
			
155
			
157
			
156
			
158
			// ensuite on demande la page correspondante avec les mêmes critères
157
			// ensuite on demande la page correspondante avec les mêmes critères
159
			String[][] criteres2 = new String[criteres.length+2][2] ;
158
			String[][] criteres2 = new String[criteres.length+2][2] ;
160
			
159
			
161
			criteres2[0][0] = "limite" ;
160
			criteres2[0][0] = "limite" ;
162
			criteres2[0][1] = ""+taillePage ;
161
			criteres2[0][1] = ""+taillePage ;
163
			criteres2[1][0] = "numero_page" ;
162
			criteres2[1][0] = "numero_page" ;
164
			criteres2[1][1] = ""+pageEncours ;
163
			criteres2[1][1] = ""+pageEncours ;
165
			for(int i = 0 ; i < criteres.length ; i++)
164
			for(int i = 0 ; i < criteres.length ; i++)
166
			{
165
			{
167
				criteres2[i+2][0] = criteres[i][0] ; 
166
				criteres2[i+2][0] = criteres[i][0] ; 
168
				criteres2[i+2][1] = criteres[i][1] ; 
167
				criteres2[i+2][1] = criteres[i][1] ; 
169
			}
168
			}
170
			
169
			
171
			// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
170
			// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
172
			ListeObservationAsynchroneDAO loaDAO = new ListeObservationAsynchroneDAO(this);
171
			ListeObservationAsynchroneDAO loaDAO = new ListeObservationAsynchroneDAO(this);
173
			loaDAO.obtenirListeObservation(r, observationMediateur.getIdentifiant(), criteres2);		
172
			loaDAO.obtenirListeObservation(r, observationMediateur.getIdentifiant(), criteres2);		
174
	}
173
	}
175
	
174
	
176
 
175
 
177
	/**
176
	/**
178
	 * Obtenir une liste de commune 
177
	 * Obtenir une liste de commune 
179
	 * @param r
178
	 * @param r
180
	 * @param critere
179
	 * @param critere
181
	 */
180
	 */
182
	
181
	
183
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
182
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
184
		
183
		
185
		if (refDAO==null) {
184
		if (refDAO==null) {
186
			refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
185
			refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
187
		}
186
		}
188
		ListeReferentielCommuneAsynchroneDAO refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
187
		ListeReferentielCommuneAsynchroneDAO refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
189
		refDAO.obtenirListeDonnees(r, critere);
188
		refDAO.obtenirListeDonnees(r, critere);
190
 
189
 
191
	}
190
	}
192
	
191
	
193
	/**
192
	/**
194
	 * Obtenir une liste de nom scientifique de plante
193
	 * Obtenir une liste de nom scientifique de plante
195
	 * @param r
194
	 * @param r
196
	 * @param critere
195
	 * @param critere
197
	 */
196
	 */
198
	
197
	
199
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
198
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
200
		
199
		
201
		if (nomDAO==null) {
200
		if (nomDAO==null) {
202
			nomDAO=new ListeReferentielNomAsynchroneDAO(this);
201
			nomDAO=new ListeReferentielNomAsynchroneDAO(this);
203
		}
202
		}
204
		nomDAO.obtenirListeDonnees(r, critere);
203
		nomDAO.obtenirListeDonnees(r, critere);
205
 
204
 
206
	}
205
	}
207
	
206
	
208
	
207
	
209
	/**
208
	/**
210
	 *  
209
	 *  
211
	 * Lance la creation d'une observation  
210
	 * Lance la creation d'une observation  
212
	 * @param r : la vue demandeuse de donnee
211
	 * @param r : la vue demandeuse de donnee
213
	 * @param critere : les criteres de selection
212
	 * @param critere : les criteres de selection
214
	 */
213
	 */
215
	
214
	
216
	public void ajouterObservation(Rafraichissable r, Observation obs) {
215
	public void ajouterObservation(Rafraichissable r, Observation obs) {
217
		
216
		
218
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
217
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
219
		obsDAO.ajouter(r, observationMediateur.getIdentifiant(), obs);
218
		obsDAO.ajouter(r, observationMediateur.getIdentifiant(), obs);
220
			
219
			
221
	}
220
	}
222
 
221
 
223
	/**
222
	/**
224
	 *  
223
	 *  
225
	 * Lance la creation d'une observation  
224
	 * Lance la creation d'une observation  
226
	 * @param r : la vue demandeuse de donnee
225
	 * @param r : la vue demandeuse de donnee
227
	 * @param critere : les criteres de selection
226
	 * @param critere : les criteres de selection
228
	 */
227
	 */
229
	
228
	
230
	public void modifierObservation(Rafraichissable r, Observation obs) {
229
	public void modifierObservation(Rafraichissable r, Observation obs) {
231
		
230
		
232
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
231
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
233
		obsDAO.modifier(r, observationMediateur.getIdentifiant(), obs);
232
		obsDAO.modifier(r, observationMediateur.getIdentifiant(), obs);
234
			
233
			
235
	}
234
	}
236
	
235
	
237
 
236
 
238
 
237
 
239
	public void modifierObservationEnMasse(
238
	public void modifierObservationEnMasse(
240
			Rafraichissable r, Observation obs) {
239
			Rafraichissable r, Observation obs) {
241
		ListeObservationAsynchroneDAO liObsDAO=new ListeObservationAsynchroneDAO(this);
240
		ListeObservationAsynchroneDAO liObsDAO=new ListeObservationAsynchroneDAO(this);
242
		liObsDAO.modifierEnMasse(r, observationMediateur.getIdentifiant(), obs);
241
		liObsDAO.modifierEnMasse(r, observationMediateur.getIdentifiant(), obs);
243
		
242
		
244
	}
243
	}
245
 
244
 
246
 
245
 
247
	
246
	
248
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
247
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
249
		
248
		
250
		ObservationAsynchroneDAO obsDao = new ObservationAsynchroneDAO(this) ;
249
		ObservationAsynchroneDAO obsDao = new ObservationAsynchroneDAO(this) ;
251
		obsDao.supprimer(r,observationMediateur.getIdentifiant(),numeroOrdre) ;
250
		obsDao.supprimer(r,observationMediateur.getIdentifiant(),numeroOrdre) ;
252
		
251
		
253
		
252
		
254
	}
253
	}
255
	
254
	
256
	
255
	
257
 
256
 
258
 
257
 
259
	/**
258
	/**
260
	 * Accesseur pour la configuration en cours d'utilisation
259
	 * Accesseur pour la configuration en cours d'utilisation
261
	 * 
260
	 * 
262
	 * @return la configuration
261
	 * @return la configuration
263
	 */
262
	 */
264
	public Configuration getConfig() {
263
	public Configuration getConfig() {
265
 
264
 
266
		return config;
265
		return config;
267
	}
266
	}
268
 
267
 
269
	
268
	
270
	/**
269
	/**
271
	 * Obtenir des informations de repartition relative a un numero nomenclatural
270
	 * Obtenir des informations de repartition relative a un numero nomenclatural
272
	 * @param r
271
	 * @param r
273
	 * @param numeroNomenclaturalSaisiObservation
272
	 * @param numeroNomenclaturalSaisiObservation
274
	 */
273
	 */
275
 
274
 
276
 
275
 
277
	public void obtenirImageInformationRepartition( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
276
	public void obtenirImageInformationRepartition( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
278
		
277
		
279
		ImageInformationRepartitionAsynchroneDAO repDAO=new ImageInformationRepartitionAsynchroneDAO(this);
278
		ImageInformationRepartitionAsynchroneDAO repDAO=new ImageInformationRepartitionAsynchroneDAO(this);
280
		repDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
279
		repDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
281
		
280
		
282
		
281
		
283
	}
282
	}
284
 
283
 
285
	/**
284
	/**
286
	 * Obtenir une image generique associee a un numero nomenclatural
285
	 * Obtenir une image generique associee a un numero nomenclatural
287
	 * @param r
286
	 * @param r
288
	 * @param numeroNomenclaturalSaisiObservation
287
	 * @param numeroNomenclaturalSaisiObservation
289
	 */
288
	 */
290
 
289
 
291
	public void obtenirImageGenerique( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
290
	public void obtenirImageGenerique( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
292
		
291
		
293
		ImageGeneriqueVueAsynchroneDAO imgDAO=new ImageGeneriqueVueAsynchroneDAO(this);
292
		ImageGeneriqueVueAsynchroneDAO imgDAO=new ImageGeneriqueVueAsynchroneDAO(this);
294
		imgDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
293
		imgDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
295
		
294
		
296
		
295
		
297
	}
296
	}
298
 
297
 
299
 
298
 
300
	/**
299
	/**
301
	 * Obtenir la liste de l'ensemble des entites geographiques associes aux observation d'un utilisateur 
300
	 * Obtenir la liste de l'ensemble des entites geographiques associes aux observation d'un utilisateur 
302
	 * @param r
301
	 * @param r
303
	 */
302
	 */
304
 
303
 
305
	public void obtenirListeEntiteGeographique(Rafraichissable r) {
304
	public void obtenirListeEntiteGeographique(Rafraichissable r) {
306
 
305
 
307
	    ListeEntiteGeographiqueObservationAsynchroneDAO entDAO = new ListeEntiteGeographiqueObservationAsynchroneDAO(this);
306
	    ListeEntiteGeographiqueObservationAsynchroneDAO entDAO = new ListeEntiteGeographiqueObservationAsynchroneDAO(this);
308
	    entDAO.obtenirListeEntitesGeographiques(r, observationMediateur.getIdentifiant());
307
	    entDAO.obtenirListeEntitesGeographiques(r, observationMediateur.getIdentifiant());
309
 
308
 
310
	}
309
	}
311
 
310
 
312
 
311
 
313
 
312
 
314
	public void obtenirDatesObservation(
313
	public void obtenirDatesObservation(
315
			Rafraichissable r) {
314
			Rafraichissable r) {
316
	    ListeDateObservationAsynchroneDAO ldoDAO = new ListeDateObservationAsynchroneDAO(this);
315
	    ListeDateObservationAsynchroneDAO ldoDAO = new ListeDateObservationAsynchroneDAO(this);
317
	    ldoDAO.obtenirListeDate(r, observationMediateur.getIdentifiant());
316
	    ldoDAO.obtenirListeDate(r, observationMediateur.getIdentifiant());
318
		
317
		
319
	}
318
	}
320
 
319
 
321
 
320
 
322
 
321
 
323
	public void obtenirLiaisonImage(Rafraichissable r,
322
	public void obtenirLiaisonImage(Rafraichissable r,
324
			String ordreObservation) {
323
			String ordreObservation) {
325
		
324
		
326
		LienImageAsynchroneDAO liaDAO = new LienImageAsynchroneDAO(this) ;
325
		LienImageAsynchroneDAO liaDAO = new LienImageAsynchroneDAO(this) ;
327
		liaDAO.obtenirLiaisonsObservationsImages(r, ordreObservation,observationMediateur.getIdentifiant()) ;
326
		liaDAO.obtenirLiaisonsObservationsImages(r, ordreObservation,observationMediateur.getIdentifiant()) ;
328
		
327
		
329
	}
328
	}
330
 
329
 
331
 
330
 
332
 
331
 
333
	public void exporterObservations() {
332
	public void exporterObservations() {
334
		
333
		
335
		String[][] criteres = {{"",""}} ;		
334
		String[][] criteres = {{"",""}} ;		
336
	 	criteres = observationMediateur.renvoyerFiltres() ;			
335
	 	criteres = observationMediateur.renvoyerFiltres() ;			
337
		// on rassemble les critères
336
		// on rassemble les critères
338
		// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)	
337
		// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)	
339
		ExportObservationsDAO exoDAO = new ExportObservationsDAO(this) ;
338
		ExportObservationsDAO exoDAO = new ExportObservationsDAO(this) ;
340
		exoDAO.exporterObservations(observationMediateur.getIdentifiant(), criteres) ;
339
		exoDAO.exporterObservations(observationMediateur.getIdentifiant(), criteres) ;
341
				
340
				
342
	}
341
	}
343
 
342
 
344
 
343
 
345
 
344
 
346
	public void supprimerLiaisonImages(String idImg, String idObs) {
345
	public void supprimerLiaisonImages(String idImg, String idObs) {
347
		
346
		
348
		LienImageAsynchroneDAO lienDAO = new LienImageAsynchroneDAO(this) ;
347
		LienImageAsynchroneDAO lienDAO = new LienImageAsynchroneDAO(this) ;
349
		lienDAO.supprimerLienImageObservation(idImg, idObs) ;		
348
		lienDAO.supprimerLienImageObservation(idImg, idObs) ;		
350
		
349
		
351
	}
350
	}
352
 
351
 
353
	public String getIdentifiant() {
352
	public String getIdentifiant() {
354
		
353
		
355
		return observationMediateur.getIdentifiant() ;
354
		return observationMediateur.getIdentifiant() ;
356
	}
355
	}
357
 
356
 
358
	public void supprimerListeObservation(Rafraichissable r,
357
	public void supprimerListeObservation(Rafraichissable r,
359
			String numObs) {
358
			String numObs) {
360
		ListeObservationAsynchroneDAO lioaDAO = new ListeObservationAsynchroneDAO(this);
359
		ListeObservationAsynchroneDAO lioaDAO = new ListeObservationAsynchroneDAO(this);
361
		lioaDAO.supprimerListeObservation(r, observationMediateur.getIdentifiant(), numObs);
360
		lioaDAO.supprimerListeObservation(r, observationMediateur.getIdentifiant(), numObs);
362
		
361
		
363
	}
362
	}
364
 
363
 
365
	public void transmettreListeObservation(
364
	public void transmettreListeObservation(
366
			Rafraichissable r, String numObsapl, boolean publier) {
365
			Rafraichissable r, String numObsapl, boolean publier) {
367
		TransmissionObservationAsynchroneDAO toaDAO = new TransmissionObservationAsynchroneDAO(this);
366
		TransmissionObservationAsynchroneDAO toaDAO = new TransmissionObservationAsynchroneDAO(this);
368
		toaDAO.transmettreObservations(r, observationMediateur.getIdentifiant(), numObsapl, publier);
367
		toaDAO.transmettreObservations(r, observationMediateur.getIdentifiant(), numObsapl, publier);
369
		
368
		
370
	}
369
	}
371
 
370
 
372
	public void analyserHistorique(Rafraichissable r,String anum) {
371
	public void analyserHistorique(Rafraichissable r,String anum) {
373
		
372
		
374
		NomRetenuAsynchroneDao nraDAO = new NomRetenuAsynchroneDao(this);
373
		NomRetenuAsynchroneDao nraDAO = new NomRetenuAsynchroneDao(this);
375
		nraDAO.obtenirNomRetenu(r, anum);
374
		nraDAO.obtenirNomRetenu(r, anum);
376
		
375
		
377
	}
376
	}
378
 
377
 
379
 
378
 
380
 
379
 
381
	public void importerObservations() {
380
	public void importerObservations() {
382
		ImportObservationAsynchroneDAO ioDAO = new ImportObservationAsynchroneDAO(this);
381
		ImportObservationAsynchroneDAO ioDAO = new ImportObservationAsynchroneDAO(this);
383
		ioDAO.importerObservations();
382
		ioDAO.importerObservations();
384
		
383
		
385
	}
384
	}
386
 
385
 
387
 
386
 
388
 
387
 
389
	public void obtenirArbreMotsCles(Rafraichissable r) {
388
	public void obtenirArbreMotsCles(Rafraichissable r) {
390
		
389
		
391
		MotsClesAsynchroneDAO mcoDAO = new MotsClesAsynchroneDAO(this);
390
		MotsClesAsynchroneDAO mcoDAO = new MotsClesAsynchroneDAO(this);
392
		mcoDAO.obtenirListeMotsCles(this);
391
		mcoDAO.obtenirListeMotsCles(this);
393
		
392
		
394
	}
393
	}
395
 
394
 
396
	public void rafraichir(Object nouvelleDonnees,
395
	public void rafraichir(Object nouvelleDonnees,
397
			boolean repandreRaffraichissement) {
396
			boolean repandreRaffraichissement) {
398
		
397
		
399
		if(nouvelleDonnees instanceof JSONArray) {
398
		if(nouvelleDonnees instanceof JSONArray) {
400
			// alors on a reçu les informations sur les mots clés
399
			// alors on a reçu les informations sur les mots clés
401
			JSONArray reponse = (JSONArray) nouvelleDonnees;
400
			JSONArray reponse = (JSONArray) nouvelleDonnees;
402
 
401
 
403
			final int taillemax = reponse.size();
402
			final int taillemax = reponse.size();
404
 
403
 
405
			// si le tableau est vide
404
			// si le tableau est vide
406
			if (taillemax == 0) {
405
			if (taillemax == 0) {
407
				// on crée un arbre vide
406
				// on crée un arbre vide
408
				TreeNode root = new TreeNode();
407
				TreeNode root = new TreeNode();
409
				root.setId("racine_obs");
408
				root.setId("racine_obs");
410
				root.setText("Tags");
409
				root.setText("Tags");
411
				String[] usObj = { "Tags", "racine_obs" };
410
				String[] usObj = { "Tags", "racine_obs" };
412
				root.setUserObject(usObj);
411
				root.setUserObject(usObj);
413
				arbreMotsCles.setRootNode(root);
412
				arbreMotsCles.setRootNode(root);
414
			}
413
			}
415
 
414
 
416
			// pour chacun des élements du tableau
415
			// pour chacun des élements du tableau
417
			for (int j = 0; j < taillemax; j++) {
416
			for (int j = 0; j < taillemax; j++) {
418
				// on extrait les élements du tableau
417
				// on extrait les élements du tableau
419
				if (reponse.get(j).isObject() != null) {
418
				if (reponse.get(j).isObject() != null) {
420
					JSONObject noeud = (JSONObject) reponse.get(j);
419
					JSONObject noeud = (JSONObject) reponse.get(j);
421
 
420
 
422
					String id_noeud = noeud.get("cmc_id_mot_cle_utilisateur")
421
					String id_noeud = noeud.get("cmc_id_mot_cle_utilisateur")
423
							.isString().stringValue();
422
							.isString().stringValue();
424
					String mot_cle = noeud.get("cmc_mot_cle").isString()
423
					String mot_cle = noeud.get("cmc_mot_cle").isString()
425
							.stringValue();
424
							.stringValue();
426
					String parent = noeud.get("cmc_id_parent").isString()
425
					String parent = noeud.get("cmc_id_parent").isString()
427
							.stringValue();
426
							.stringValue();
428
 
427
 
429
					String[] usObj = { mot_cle, id_noeud };
428
					String[] usObj = { mot_cle, id_noeud };
430
 
429
 
431
					// et on construit l'arbre à partir de la racine (qui est
430
					// et on construit l'arbre à partir de la racine (qui est
432
					// toujoursl e premier élément)
431
					// toujoursl e premier élément)
433
					if (id_noeud.equals("racine_obs")) {
432
					if (id_noeud.equals("racine_obs")) {
434
						TreeNode root = new TreeNode();
433
						TreeNode root = new TreeNode();
435
						root.setId(id_noeud);
434
						root.setId(id_noeud);
436
						root.setText(mot_cle);
435
						root.setText(mot_cle);
437
						root.setUserObject(usObj);
436
						root.setUserObject(usObj);
438
						arbreMotsCles.setRootNode(root);
437
						arbreMotsCles.setRootNode(root);
439
					} else {
438
					} else {
440
						// et en ajoutant les noeuds un à un (qui sont renvoyé
439
						// et en ajoutant les noeuds un à un (qui sont renvoyé
441
						// dans l'ordre hierarchique de leur niveau
440
						// dans l'ordre hierarchique de leur niveau
442
						// ce qui permet de les traiter séquentiellement)
441
						// ce qui permet de les traiter séquentiellement)
443
						TreeNode node = new TreeNode();
442
						TreeNode node = new TreeNode();
444
						node.setId(id_noeud);
443
						node.setId(id_noeud);
445
						node.setText(mot_cle);
444
						node.setText(mot_cle);
446
						node.setChecked(false);
445
						node.setChecked(false);
447
						Node parentNode = arbreMotsCles.getNodeById(parent);
446
						Node parentNode = arbreMotsCles.getNodeById(parent);
448
						node.setUserObject(usObj);
447
						node.setUserObject(usObj);
449
						parentNode.appendChild(node);
448
						parentNode.appendChild(node);
450
					}
449
					}
451
				}
450
				}
452
			}
451
			}
453
			
452
			
454
			// enfin on met à jour l'arbre des mots clés contenu dans le modèle
453
			// enfin on met à jour l'arbre des mots clés contenu dans le modèle
455
			//rafraichirArbreMotsCles(arbreMotsCles);
454
			//rafraichirArbreMotsCles(arbreMotsCles);
456
			// et on notifie le médiateur de la mise à jour en lui passant une
455
			// et on notifie le médiateur de la mise à jour en lui passant une
457
			// copie des données
456
			// copie des données
458
			observationMediateur.rafraichirArbreMotsCles(arbreMotsCles);
457
			observationMediateur.rafraichirArbreMotsCles(arbreMotsCles);
459
		}
458
		}
460
		
459
		
461
	}
460
	}
462
 
461
 
463
	/**
462
	/**
464
	 * Met à jour l'arbre des mots clés à partir d'un objet
463
	 * Met à jour l'arbre des mots clés à partir d'un objet
465
	 * 
464
	 * 
466
	 * @param o
465
	 * @param o
467
	 *            le nouvel arbre de mots clés
466
	 *            le nouvel arbre de mots clés
468
	 */
467
	 */
469
	public void rafraichirArbreMotsCles(Object o) {
468
	public void rafraichirArbreMotsCles(Object o) {
470
		arbreMotsCles = (com.gwtext.client.data.Tree) o;
469
		arbreMotsCles = (com.gwtext.client.data.Tree) o;
471
	}
470
	}
472
 
471
 
473
	/**
472
	/**
474
	 * Met à jour la table de correspondance mots clés / ids à partir d'un objet
473
	 * Met à jour la table de correspondance mots clés / ids à partir d'un objet
475
	 * 
474
	 * 
476
	 * @param o
475
	 * @param o
477
	 *            la nouvelle table des mots clés
476
	 *            la nouvelle table des mots clés
478
	 */
477
	 */
479
	@SuppressWarnings("unchecked")
478
	@SuppressWarnings("unchecked")
480
	public void rafraichirMotsCles(Object o) {
479
	public void rafraichirMotsCles(Object o) {
481
		if (o instanceof HashMap) {
480
		if (o instanceof HashMap) {
482
			motsCles = (HashMap<String, String>) o;
481
			motsCles = (HashMap<String, String>) o;
483
		}
482
		}
484
	}
483
	}
485
	
484
	
486
	/**
485
	/**
487
	 * Va chercher les mots clés associés à une image dans la liste des images
486
	 * Va chercher les mots clés associés à une image dans la liste des images
488
	 * chargée dans le modèle
487
	 * chargée dans le modèle
489
	 * 
488
	 * 
490
	 * @param r
489
	 * @param r
491
	 *            le rafraichissable auquel on enverra les informations
490
	 *            le rafraichissable auquel on enverra les informations
492
	 * @param id
491
	 * @param id
493
	 *            l'identifiant de l'image
492
	 *            l'identifiant de l'image
494
	 */
493
	 */
495
	public void obtenirMotsClesId(Rafraichissable r, String id) {
494
	public void obtenirMotsClesId(Rafraichissable r, String id) {
496
		Observation o = cacheObservation.get(id);
495
		Observation o = cacheObservation.get(id);
497
		String motsClesId = o.getMotsCles();
496
		String motsClesId = o.getMotsCles();
498
		String[] motsClesIdTab = motsClesId.split(",");
497
		String[] motsClesIdTab = motsClesId.split(",");
499
		r.rafraichir(motsClesIdTab, false);
498
		r.rafraichir(motsClesIdTab, false);
500
	}
499
	}
501
	
500
	
502
	/**
501
	/**
503
	 * Met à jour les mots clés associés à une image et appelle le DAO pour
502
	 * Met à jour les mots clés associés à une image et appelle le DAO pour
504
	 * synchroniser la base de données
503
	 * synchroniser la base de données
505
	 * 
504
	 * 
506
	 * @param ids
505
	 * @param ids
507
	 *            les identifiants des images selectionnées
506
	 *            les identifiants des images selectionnées
508
	 * @param motsClesEnCours
507
	 * @param motsClesEnCours
509
	 *            les mots clés à appliquer aux images
508
	 *            les mots clés à appliquer aux images
510
	 * @param arbreMC
509
	 * @param arbreMC
511
	 *            l'arbre de mots clés en cours
510
	 *            l'arbre de mots clés en cours
512
	 */
511
	 */
513
	public void mettreAjourMotsCles(String motsClesEnCours, String[] idsObsALier) {
512
	public void mettreAjourMotsCles(String motsClesEnCours, String[] idsObsALier) {
514
		for (int i = 0; i < idsObsALier.length; i++) {
513
		for (int i = 0; i < idsObsALier.length; i++) {
515
			if (cacheObservation.containsKey(idsObsALier[i])) {
514
			if (cacheObservation.containsKey(idsObsALier[i])) {
516
				Observation o = (Observation) cacheObservation.get(idsObsALier[i]);
515
				Observation o = (Observation) cacheObservation.get(idsObsALier[i]);
517
				o.setMotsCles(motsClesEnCours);
516
				o.setMotsCles(motsClesEnCours);
518
 
517
 
519
				ObservationAsynchroneDAO oDao = new ObservationAsynchroneDAO(this);
518
				ObservationAsynchroneDAO oDao = new ObservationAsynchroneDAO(this);
520
				oDao.modifier(this,observationMediateur.getIdentifiant(),o);
519
				oDao.modifier(this,observationMediateur.getIdentifiant(),o);
521
			}
520
			}
522
		}
521
		}
523
	}
522
	}
524
	
523
	
525
	/**
524
	/**
526
	 * Ajoute un mot clé à l'arbre des mots clés local et appelle le DAO qui
525
	 * Ajoute un mot clé à l'arbre des mots clés local et appelle le DAO qui
527
	 * fait la mise à jour de l'arbre des mots clés dans la base
526
	 * fait la mise à jour de l'arbre des mots clés dans la base
528
	 * 
527
	 * 
529
	 * @param n
528
	 * @param n
530
	 *            le nouveau noeud contenant le mot clé
529
	 *            le nouveau noeud contenant le mot clé
531
	 * @param arbreMC
530
	 * @param arbreMC
532
	 *            l'arbre des mots cles en cours
531
	 *            l'arbre des mots cles en cours
533
	 */
532
	 */
534
	public void ajouterMotCleDansArbre(TreeNode n,
533
	public void ajouterMotCleDansArbre(TreeNode n,
535
			com.gwtext.client.data.Tree arbreMC) {
534
			com.gwtext.client.data.Tree arbreMC) {
536
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
535
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
537
 
536
 
538
		String[] usObj = (String[]) n.getUserObject();
537
		String[] usObj = (String[]) n.getUserObject();
539
		String motCle = usObj[0];
538
		String motCle = usObj[0];
540
		String id = usObj[1];
539
		String id = usObj[1];
541
		String parentId = "";
540
		String parentId = "";
542
 
541
 
543
		if (!id.equals("racine")) {
542
		if (!id.equals("racine")) {
544
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
543
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
545
			parentId = parentUsObj[1];
544
			parentId = parentUsObj[1];
546
		} else {
545
		} else {
547
			parentId = "racine";
546
			parentId = "racine";
548
		}
547
		}
549
		
548
		
550
		rafraichirArbreMotsCles(arbreMC);
549
		rafraichirArbreMotsCles(arbreMC);
551
 
550
 
552
		String nouveauMotCle = "&identifiant=" + getIdentifiant() + "&motcle="
551
		String nouveauMotCle = "&identifiant=" + getIdentifiant() + "&motcle="
553
				+ motCle + "&id=" + id + "&parent=" + parentId;
552
				+ motCle + "&id=" + id + "&parent=" + parentId;
554
		MCDao.ajouterBaseDeDonnees(nouveauMotCle);
553
		MCDao.ajouterBaseDeDonnees(nouveauMotCle);
555
	}
554
	}
556
 
555
 
557
	/**
556
	/**
558
	 * Supprime un noeud de l'arbre des mots clés et appelle le DAO qui va
557
	 * Supprime un noeud de l'arbre des mots clés et appelle le DAO qui va
559
	 * supprimer les mots clés associés dans la base
558
	 * supprimer les mots clés associés dans la base
560
	 * 
559
	 * 
561
	 * @param n
560
	 * @param n
562
	 *            le noeud à supprimer
561
	 *            le noeud à supprimer
563
	 * @param arbreMC
562
	 * @param arbreMC
564
	 *            l'arbre des mots clés en cours
563
	 *            l'arbre des mots clés en cours
565
	 */
564
	 */
566
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
565
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
567
 
566
 
568
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
567
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
569
 
568
 
570
		String[] usObj = (String[]) n.getUserObject();
569
		String[] usObj = (String[]) n.getUserObject();
571
		String id = usObj[1];
570
		String id = usObj[1];
572
		
571
		
573
		rafraichirArbreMotsCles(arbreMC);
572
		rafraichirArbreMotsCles(arbreMC);
574
 
573
 
575
		MCDao.supprimerBaseDeDonnees(id);
574
		MCDao.supprimerBaseDeDonnees(id);
576
 
575
 
577
	}
576
	}
578
 
577
 
579
	/**
578
	/**
580
	 * Modifie le noeud donné dans l'arbre des mots clés en cours et appelle le
579
	 * Modifie le noeud donné dans l'arbre des mots clés en cours et appelle le
581
	 * DAO qui synchronise la modification dans la base de données
580
	 * DAO qui synchronise la modification dans la base de données
582
	 * 
581
	 * 
583
	 * @param n
582
	 * @param n
584
	 *            le noeud modifié
583
	 *            le noeud modifié
585
	 * @param arbreMC
584
	 * @param arbreMC
586
	 *            l'arbre des mots clés en cours
585
	 *            l'arbre des mots clés en cours
587
	 */
586
	 */
588
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
587
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
589
 
588
 
590
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
589
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
591
 
590
 
592
		String[] usObj = (String[]) n.getUserObject();
591
		String[] usObj = (String[]) n.getUserObject();
593
		String motCle = usObj[0];
592
		String motCle = usObj[0];
594
		String id = usObj[1];
593
		String id = usObj[1];
595
		String parentId = "";
594
		String parentId = "";
596
 
595
 
597
		if (!id.equals("racine")) {
596
		if (!id.equals("racine")) {
598
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
597
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
599
			parentId = parentUsObj[1];
598
			parentId = parentUsObj[1];
600
		} else {
599
		} else {
601
			parentId = "racine";
600
			parentId = "racine";
602
		}
601
		}
603
 
602
 
604
		rafraichirArbreMotsCles(arbreMC);
603
		rafraichirArbreMotsCles(arbreMC);
605
 
604
 
606
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
605
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
607
				+ parentId;
606
				+ parentId;
608
		MCDao.modifierBaseDeDonnees(motCleModifie);
607
		MCDao.modifierBaseDeDonnees(motCleModifie);
609
 
608
 
610
	}
609
	}
611
 
610
 
612
	/**
611
	/**
613
	 * Deplace un noeud dans l'arbre des mots cles et appelle le DAO qui
612
	 * Deplace un noeud dans l'arbre des mots cles et appelle le DAO qui
614
	 * reorganise l'arbre dans la base de donnees suivant le changement
613
	 * reorganise l'arbre dans la base de donnees suivant le changement
615
	 * 
614
	 * 
616
	 * @param n
615
	 * @param n
617
	 *            le noeud deplace (et son sous arbre associe)
616
	 *            le noeud deplace (et son sous arbre associe)
618
	 * @param arbreMC
617
	 * @param arbreMC
619
	 *            l'arbre des mots cles en cours
618
	 *            l'arbre des mots cles en cours
620
	 */
619
	 */
621
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
620
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
622
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
621
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this);
623
 
622
 
624
		String[] usObj = (String[]) n.getUserObject();
623
		String[] usObj = (String[]) n.getUserObject();
625
		String motCle = usObj[0];
624
		String motCle = usObj[0];
626
		String id = usObj[1];
625
		String id = usObj[1];
627
		String parentId = "";
626
		String parentId = "";
628
		if (!id.equals("racine")) {
627
		if (!id.equals("racine")) {
629
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
628
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
630
			parentId = parentUsObj[1];
629
			parentId = parentUsObj[1];
631
		} else {
630
		} else {
632
			parentId = "racine";
631
			parentId = "racine";
633
		}
632
		}
634
		
633
		
635
		rafraichirArbreMotsCles(arbreMC);
634
		rafraichirArbreMotsCles(arbreMC);
636
 
635
 
637
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
636
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
638
				+ parentId;
637
				+ parentId;
639
		MCDao.deplacerBaseDeDonnees(motCleModifie);
638
		MCDao.deplacerBaseDeDonnees(motCleModifie);
640
	}
639
	}
641
	
640
	
642
	/**
641
	/**
643
	 * Ajoute un nouveau mot clés à la liste des mots clés locale
642
	 * Ajoute un nouveau mot clés à la liste des mots clés locale
644
	 * 
643
	 * 
645
	 * @param text
644
	 * @param text
646
	 *            le mot clé
645
	 *            le mot clé
647
	 * @param id
646
	 * @param id
648
	 *            l'identifiant du mot clé
647
	 *            l'identifiant du mot clé
649
	 */
648
	 */
650
	public void mettreAjourMotsClesId(String text, String id) {
649
	public void mettreAjourMotsClesId(String text, String id) {
651
		motsCles.put(id, text);
650
		motsCles.put(id, text);
652
	}
651
	}
653
	
652
	
654
	public void rafraichirCacheObservation(ListeObservation li) {
653
	public void rafraichirCacheObservation(ListeObservation li) {
655
		cacheObservation = li ;
654
		cacheObservation = li ;
656
	}
655
	}
657
 
656
 
658
	public ListeObservation getCacheObservation() {
657
	public ListeObservation getCacheObservation() {
659
		return cacheObservation ;
658
		return cacheObservation ;
660
	}
659
	}
661
 
660
 
662
	public void obtenirInformationCommune(Rafraichissable r, String nomCommune, String codePostal) {
661
	public void obtenirInformationCommune(Rafraichissable r, String nomCommune, String codePostal) {
663
		InformationCommuneDAO infocommune = new InformationCommuneDAO(r);
662
		InformationCommuneDAO infocommune = new InformationCommuneDAO(r);
664
		infocommune.obtenirInfosCommune(r, nomCommune, codePostal);
663
		infocommune.obtenirInfosCommune(r, nomCommune, codePostal);
665
	}
664
	}
666
	
665
	
667
	public void obtenirInformationCoord(Rafraichissable r, LatLng coord) {
666
	public void obtenirInformationCoord(Rafraichissable r, LatLng coord) {
668
		InformationCommuneDAO infocommune = new InformationCommuneDAO(r);
667
		InformationCommuneDAO infocommune = new InformationCommuneDAO(r);
669
		infocommune.obtenirCommunePlusProche(r, coord.getLongitude(), coord.getLatitude());
668
		infocommune.obtenirCommunePlusProche(r, coord.getLongitude(), coord.getLatitude());
670
	}
669
	}
671
 
670
 
672
	
671
	
673
}
672
}