Subversion Repositories eFlore/Applications.cel

Rev

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

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