Subversion Repositories eFlore/Applications.cel

Rev

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

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