Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 107 Rev 108
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 org.tela_botanica.client.interfaces.FournisseurListe;
6
import org.tela_botanica.client.interfaces.FournisseurListe;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.Configuration;
8
import org.tela_botanica.client.modeles.Configuration;
9
import org.tela_botanica.client.modeles.ExportObservationsDAO;
9
import org.tela_botanica.client.modeles.ExportObservationsDAO;
10
import org.tela_botanica.client.modeles.ImageGeneriqueVueAsynchroneDAO;
10
import org.tela_botanica.client.modeles.ImageGeneriqueVueAsynchroneDAO;
11
import org.tela_botanica.client.modeles.ImageInformationRepartitionAsynchroneDAO;
11
import org.tela_botanica.client.modeles.ImageInformationRepartitionAsynchroneDAO;
12
import org.tela_botanica.client.modeles.LienImageAsynchroneDAO;
12
import org.tela_botanica.client.modeles.LienImageAsynchroneDAO;
13
import org.tela_botanica.client.modeles.ListeDateObservationAsynchroneDAO;
13
import org.tela_botanica.client.modeles.ListeDateObservationAsynchroneDAO;
14
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservation;
14
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservation;
15
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservationAsynchroneDAO;
15
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservationAsynchroneDAO;
16
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO;
16
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO;
17
import org.tela_botanica.client.modeles.ListeReferentielCommuneAsynchroneDAO;
17
import org.tela_botanica.client.modeles.ListeReferentielCommuneAsynchroneDAO;
18
import org.tela_botanica.client.modeles.ListeReferentielNom;
18
import org.tela_botanica.client.modeles.ListeReferentielNom;
19
import org.tela_botanica.client.modeles.ListeReferentielNomAsynchroneDAO;
19
import org.tela_botanica.client.modeles.ListeReferentielNomAsynchroneDAO;
20
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO;
20
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO;
21
import org.tela_botanica.client.modeles.Observation;
21
import org.tela_botanica.client.modeles.Observation;
22
import org.tela_botanica.client.modeles.ObservationAsynchroneDAO;
22
import org.tela_botanica.client.modeles.ObservationAsynchroneDAO;
-
 
23
import org.tela_botanica.client.modeles.TransmissionObservationAsynchroneDAO;
23
import org.tela_botanica.client.vues.ArbreDateObservationFiltreVue;
24
import org.tela_botanica.client.vues.ArbreDateObservationFiltreVue;
24
import org.tela_botanica.client.vues.InformationRepartitionVue;
25
import org.tela_botanica.client.vues.InformationRepartitionVue;
25
import org.tela_botanica.client.vues.ListeObservationVue;
26
import org.tela_botanica.client.vues.ListeObservationVue;
26
import org.tela_botanica.client.vues.MiniZoomImageVue;
27
import org.tela_botanica.client.vues.MiniZoomImageVue;
27
 
28
 
28
import com.google.gwt.user.client.Window;
29
import com.google.gwt.user.client.Window;
29
 
30
 
30
 
31
 
31
public class ObservationModele  {
32
public class ObservationModele  {
32
 
33
 
33
	
34
	
34
	
35
	
35
	/**
36
	/**
36
	 * Booleen indiquant si le médiateur est instancié (l'instance doit être unique donc le booleen est static)
37
	 * Booleen indiquant si le médiateur est instancié (l'instance doit être unique donc le booleen est static)
37
	 */
38
	 */
38
	private static boolean estInstancie = false ;
39
	private static boolean estInstancie = false ;
39
	
40
	
40
	private static ObservationModele thisModele = null ;
41
	private static ObservationModele thisModele = null ;
41
	
42
	
42
	
43
	
43
	/**
44
	/**
44
	 * La configuration en cours
45
	 * La configuration en cours
45
	 */
46
	 */
46
	private Configuration config = null;
47
	private Configuration config = null;
47
 
48
 
48
	
49
	
49
	/**
50
	/**
50
	 * Le médiateur associé au modèle
51
	 * Le médiateur associé au modèle
51
	 */
52
	 */
52
	
53
	
53
	private ObservationMediateur observationMediateur = null ;
54
	private ObservationMediateur observationMediateur = null ;
54
	
55
	
55
	
56
	
56
	
57
	
57
 
58
 
58
	/**
59
	/**
59
	 * Retourne une instance de manière unique
60
	 * Retourne une instance de manière unique
60
	 * @param im le médiateur à associer
61
	 * @param im le médiateur à associer
61
	 * @return l'instance du modèle
62
	 * @return l'instance du modèle
62
	 */
63
	 */
63
	
64
	
64
	static ObservationModele Instance(ObservationMediateur observationMediateur)
65
	static ObservationModele Instance(ObservationMediateur observationMediateur)
65
	{
66
	{
66
		// si le modèle n'est pas encore instancié
67
		// si le modèle n'est pas encore instancié
67
		if(!estInstancie)
68
		if(!estInstancie)
68
		{
69
		{
69
			// on en crée un nouveau
70
			// on en crée un nouveau
70
			estInstancie = true ;
71
			estInstancie = true ;
71
			thisModele = new ObservationModele(observationMediateur);
72
			thisModele = new ObservationModele(observationMediateur);
72
		}
73
		}
73
		return thisModele ;
74
		return thisModele ;
74
	}
75
	}
75
 
76
 
76
	
77
	
77
	
78
	
78
	private ObservationModele(ObservationMediateur observationMediateur) {
79
	private ObservationModele(ObservationMediateur observationMediateur) {
79
		
80
		
80
		this.observationMediateur=observationMediateur;
81
		this.observationMediateur=observationMediateur;
81
		
82
		
82
		config = new Configuration();
83
		config = new Configuration();
83
 
84
 
84
		
85
		
85
	}
86
	}
86
 
87
 
87
 
88
 
88
	
89
	
89
	/**
90
	/**
90
	 * Appelle le DAO asynchrone pour obtenir le nombre d'observation
91
	 * Appelle le DAO asynchrone pour obtenir le nombre d'observation
91
	 * @param r le rafraichissable auxquel on enverra les données
92
	 * @param r le rafraichissable auxquel on enverra les données
92
	 * @param filtrage 
93
	 * @param filtrage 
93
	 * @param taillePage 
94
	 * @param taillePage 
94
	 */
95
	 */
95
	public void obtenirNombreObservation(Rafraichissable r) {	
96
	public void obtenirNombreObservation(Rafraichissable r) {	
96
	
97
	
97
		String[][] criteres = {{"",""}} ;		
98
		String[][] criteres = {{"",""}} ;		
98
		 	criteres = observationMediateur.renvoyerFiltres() ;			
99
		 	criteres = observationMediateur.renvoyerFiltres() ;			
99
			// on rassemble les critères
100
			// on rassemble les critères
100
			
101
			
101
			
102
			
102
			// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
103
			// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
103
			
104
			
104
			NombreObservationAsynchroneDAO noaDAO = new NombreObservationAsynchroneDAO(this) ;
105
			NombreObservationAsynchroneDAO noaDAO = new NombreObservationAsynchroneDAO(this) ;
105
			noaDAO.obtenirNombreObservation(r, observationMediateur.getIdentifiant(), criteres) ;
106
			noaDAO.obtenirNombreObservation(r, observationMediateur.getIdentifiant(), criteres) ;
106
					
107
					
107
	}
108
	}
108
	
109
	
109
	
110
	
110
	/**
111
	/**
111
	 * Appelle le DAO asynchrone pour obtenir la liste des images
112
	 * Appelle le DAO asynchrone pour obtenir la liste des images
112
	 * @param r le rafraichissable auxquel on enverra les données
113
	 * @param r le rafraichissable auxquel on enverra les données
113
	 * @param taillePage 
114
	 * @param taillePage 
114
	 */
115
	 */
115
	public void obtenirListeObservation(Rafraichissable r, int taillePage, int pageEncours) {	
116
	public void obtenirListeObservation(Rafraichissable r, int taillePage, int pageEncours) {	
116
		
117
		
117
		
118
		
118
		 	String[][] criteres = {{"",""}} ;
119
		 	String[][] criteres = {{"",""}} ;
119
				criteres = observationMediateur.renvoyerFiltres() ;			
120
				criteres = observationMediateur.renvoyerFiltres() ;			
120
				// on rassemble les critères
121
				// on rassemble les critères
121
			
122
			
122
			
123
			
123
			// ensuite on demande la page correspondante avec les mêmes critères
124
			// ensuite on demande la page correspondante avec les mêmes critères
124
			String[][] criteres2 = new String[criteres.length+2][2] ;
125
			String[][] criteres2 = new String[criteres.length+2][2] ;
125
			
126
			
126
			criteres2[0][0] = "limite" ;
127
			criteres2[0][0] = "limite" ;
127
			criteres2[0][1] = ""+taillePage ;
128
			criteres2[0][1] = ""+taillePage ;
128
			criteres2[1][0] = "numero_page" ;
129
			criteres2[1][0] = "numero_page" ;
129
			criteres2[1][1] = ""+pageEncours ;
130
			criteres2[1][1] = ""+pageEncours ;
130
			for(int i = 0 ; i < criteres.length ; i++)
131
			for(int i = 0 ; i < criteres.length ; i++)
131
			{
132
			{
132
				criteres2[i+2][0] = criteres[i][0] ; 
133
				criteres2[i+2][0] = criteres[i][0] ; 
133
				criteres2[i+2][1] = criteres[i][1] ; 
134
				criteres2[i+2][1] = criteres[i][1] ; 
134
			}
135
			}
135
			
136
			
136
			// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
137
			// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
137
			
138
			
138
			ListeObservationAsynchroneDAO loaDAO = new ListeObservationAsynchroneDAO(this);
139
			ListeObservationAsynchroneDAO loaDAO = new ListeObservationAsynchroneDAO(this);
139
			loaDAO.obtenirListeObservation(r, observationMediateur.getIdentifiant(), criteres2);		
140
			loaDAO.obtenirListeObservation(r, observationMediateur.getIdentifiant(), criteres2);		
140
	}
141
	}
141
	
142
	
142
 
143
 
143
	/**
144
	/**
144
	 * Obtenir une liste de commune 
145
	 * Obtenir une liste de commune 
145
	 * @param r
146
	 * @param r
146
	 * @param critere
147
	 * @param critere
147
	 */
148
	 */
148
	
149
	
149
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
150
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
150
		
151
		
151
		ListeReferentielCommuneAsynchroneDAO refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
152
		ListeReferentielCommuneAsynchroneDAO refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
152
		refDAO.obtenirListeDonnees(r, critere);
153
		refDAO.obtenirListeDonnees(r, critere);
153
 
154
 
154
	}
155
	}
155
	
156
	
156
	/**
157
	/**
157
	 * Obtenir une liste de nom scientifique de plante
158
	 * Obtenir une liste de nom scientifique de plante
158
	 * @param r
159
	 * @param r
159
	 * @param critere
160
	 * @param critere
160
	 */
161
	 */
161
	
162
	
162
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
163
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
163
		
164
		
164
		ListeReferentielNomAsynchroneDAO nomDAO=new ListeReferentielNomAsynchroneDAO(this);
165
		ListeReferentielNomAsynchroneDAO nomDAO=new ListeReferentielNomAsynchroneDAO(this);
165
		nomDAO.obtenirListeDonnees(r, critere);
166
		nomDAO.obtenirListeDonnees(r, critere);
166
 
167
 
167
	}
168
	}
168
	
169
	
169
	
170
	
170
	/**
171
	/**
171
	 *  
172
	 *  
172
	 * Lance la creation d'une observation  
173
	 * Lance la creation d'une observation  
173
	 * @param r : la vue demandeuse de donnee
174
	 * @param r : la vue demandeuse de donnee
174
	 * @param critere : les criteres de selection
175
	 * @param critere : les criteres de selection
175
	 */
176
	 */
176
	
177
	
177
	public void ajouterObservation(Rafraichissable r, Observation obs) {
178
	public void ajouterObservation(Rafraichissable r, Observation obs) {
178
		
179
		
179
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
180
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
180
		obsDAO.ajouter(r, observationMediateur.getIdentifiant(), obs);
181
		obsDAO.ajouter(r, observationMediateur.getIdentifiant(), obs);
181
			
182
			
182
	}
183
	}
183
 
184
 
184
	/**
185
	/**
185
	 *  
186
	 *  
186
	 * Lance la creation d'une observation  
187
	 * Lance la creation d'une observation  
187
	 * @param r : la vue demandeuse de donnee
188
	 * @param r : la vue demandeuse de donnee
188
	 * @param critere : les criteres de selection
189
	 * @param critere : les criteres de selection
189
	 */
190
	 */
190
	
191
	
191
	public void modifierObservation(Rafraichissable r, Observation obs) {
192
	public void modifierObservation(Rafraichissable r, Observation obs) {
192
		
193
		
193
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
194
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
194
		obsDAO.modifier(r, observationMediateur.getIdentifiant(), obs);
195
		obsDAO.modifier(r, observationMediateur.getIdentifiant(), obs);
195
			
196
			
196
	}
197
	}
197
	
198
	
198
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
199
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
199
		
200
		
200
		ObservationAsynchroneDAO obsDao = new ObservationAsynchroneDAO(this) ;
201
		ObservationAsynchroneDAO obsDao = new ObservationAsynchroneDAO(this) ;
201
		obsDao.supprimer(r,observationMediateur.getIdentifiant(),numeroOrdre) ;
202
		obsDao.supprimer(r,observationMediateur.getIdentifiant(),numeroOrdre) ;
202
		
203
		
203
		
204
		
204
	}
205
	}
205
	
206
	
206
	
207
	
207
 
208
 
208
 
209
 
209
	/**
210
	/**
210
	 * Accesseur pour la configuration en cours d'utilisation
211
	 * Accesseur pour la configuration en cours d'utilisation
211
	 * 
212
	 * 
212
	 * @return la configuration
213
	 * @return la configuration
213
	 */
214
	 */
214
	public Configuration getConfig() {
215
	public Configuration getConfig() {
215
 
216
 
216
		return config;
217
		return config;
217
	}
218
	}
218
 
219
 
219
	
220
	
220
	/**
221
	/**
221
	 * Obtenir des informations de repartition relative a un numero nomenclatural
222
	 * Obtenir des informations de repartition relative a un numero nomenclatural
222
	 * @param r
223
	 * @param r
223
	 * @param numeroNomenclaturalSaisiObservation
224
	 * @param numeroNomenclaturalSaisiObservation
224
	 */
225
	 */
225
 
226
 
226
 
227
 
227
	public void obtenirImageInformationRepartition( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
228
	public void obtenirImageInformationRepartition( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
228
		
229
		
229
		ImageInformationRepartitionAsynchroneDAO repDAO=new ImageInformationRepartitionAsynchroneDAO(this);
230
		ImageInformationRepartitionAsynchroneDAO repDAO=new ImageInformationRepartitionAsynchroneDAO(this);
230
		repDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
231
		repDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
231
		
232
		
232
		
233
		
233
	}
234
	}
234
 
235
 
235
	/**
236
	/**
236
	 * Obtenir une image generique associee a un numero nomenclatural
237
	 * Obtenir une image generique associee a un numero nomenclatural
237
	 * @param r
238
	 * @param r
238
	 * @param numeroNomenclaturalSaisiObservation
239
	 * @param numeroNomenclaturalSaisiObservation
239
	 */
240
	 */
240
 
241
 
241
	public void obtenirImageGenerique( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
242
	public void obtenirImageGenerique( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
242
		
243
		
243
		ImageGeneriqueVueAsynchroneDAO imgDAO=new ImageGeneriqueVueAsynchroneDAO(this);
244
		ImageGeneriqueVueAsynchroneDAO imgDAO=new ImageGeneriqueVueAsynchroneDAO(this);
244
		imgDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
245
		imgDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
245
		
246
		
246
		
247
		
247
	}
248
	}
248
 
249
 
249
 
250
 
250
	/**
251
	/**
251
	 * Obtenir la liste de l'ensemble des entites geographiques associes aux observation d'un utilisateur 
252
	 * Obtenir la liste de l'ensemble des entites geographiques associes aux observation d'un utilisateur 
252
	 * @param r
253
	 * @param r
253
	 */
254
	 */
254
 
255
 
255
	public void obtenirListeEntiteGeographique(Rafraichissable r) {
256
	public void obtenirListeEntiteGeographique(Rafraichissable r) {
256
 
257
 
257
	    ListeEntiteGeographiqueObservationAsynchroneDAO entDAO = new ListeEntiteGeographiqueObservationAsynchroneDAO(this);
258
	    ListeEntiteGeographiqueObservationAsynchroneDAO entDAO = new ListeEntiteGeographiqueObservationAsynchroneDAO(this);
258
	    entDAO.obtenirListeEntitesGeographiques(r, observationMediateur.getIdentifiant());
259
	    entDAO.obtenirListeEntitesGeographiques(r, observationMediateur.getIdentifiant());
259
 
260
 
260
	}
261
	}
261
 
262
 
262
 
263
 
263
 
264
 
264
	public void obtenirDatesObservation(
265
	public void obtenirDatesObservation(
265
			Rafraichissable r) {
266
			Rafraichissable r) {
266
	    ListeDateObservationAsynchroneDAO ldoDAO = new ListeDateObservationAsynchroneDAO(this);
267
	    ListeDateObservationAsynchroneDAO ldoDAO = new ListeDateObservationAsynchroneDAO(this);
267
	    ldoDAO.obtenirListeDate(r, observationMediateur.getIdentifiant());
268
	    ldoDAO.obtenirListeDate(r, observationMediateur.getIdentifiant());
268
		
269
		
269
	}
270
	}
270
 
271
 
271
 
272
 
272
 
273
 
273
	public void obtenirLiaisonImage(Rafraichissable r,
274
	public void obtenirLiaisonImage(Rafraichissable r,
274
			String ordreObservation) {
275
			String ordreObservation) {
275
		
276
		
276
		LienImageAsynchroneDAO liaDAO = new LienImageAsynchroneDAO(this) ;
277
		LienImageAsynchroneDAO liaDAO = new LienImageAsynchroneDAO(this) ;
277
		liaDAO.obtenirLiaisonsObservationsImages(r, ordreObservation,observationMediateur.getIdentifiant()) ;
278
		liaDAO.obtenirLiaisonsObservationsImages(r, ordreObservation,observationMediateur.getIdentifiant()) ;
278
		
279
		
279
	}
280
	}
280
 
281
 
281
 
282
 
282
 
283
 
283
	public void exporterObservations() {
284
	public void exporterObservations() {
284
		
285
		
285
		String[][] criteres = {{"",""}} ;		
286
		String[][] criteres = {{"",""}} ;		
286
	 	criteres = observationMediateur.renvoyerFiltres() ;			
287
	 	criteres = observationMediateur.renvoyerFiltres() ;			
287
		// on rassemble les critères
288
		// on rassemble les critères
288
		
289
		
289
		
290
		
290
		// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
291
		// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
291
		
292
		
292
		ExportObservationsDAO exoDAO = new ExportObservationsDAO(this) ;
293
		ExportObservationsDAO exoDAO = new ExportObservationsDAO(this) ;
293
		exoDAO.exporterObservations(observationMediateur.getIdentifiant(), criteres) ;
294
		exoDAO.exporterObservations(observationMediateur.getIdentifiant(), criteres) ;
294
				
295
				
295
		
296
		
296
	}
297
	}
297
 
298
 
298
 
299
 
299
 
300
 
300
	public void supprimerLiaisonImages(String idImg, String idObs) {
301
	public void supprimerLiaisonImages(String idImg, String idObs) {
301
		
302
		
302
		LienImageAsynchroneDAO lienDAO = new LienImageAsynchroneDAO(this) ;
303
		LienImageAsynchroneDAO lienDAO = new LienImageAsynchroneDAO(this) ;
303
		lienDAO.supprimerLienImageObservation(idImg, idObs) ;		
304
		lienDAO.supprimerLienImageObservation(idImg, idObs) ;		
304
		
305
		
305
	}
306
	}
306
 
307
 
307
 
308
 
308
 
309
 
309
	public String getIdentifiant() {
310
	public String getIdentifiant() {
310
		
311
		
311
		return observationMediateur.getIdentifiant() ;
312
		return observationMediateur.getIdentifiant() ;
312
	}
313
	}
313
 
314
 
314
 
315
 
315
 
316
 
316
	public void supprimerListeObservation(Rafraichissable r,
317
	public void supprimerListeObservation(Rafraichissable r,
317
			String numObs) {
318
			String numObs) {
318
		ListeObservationAsynchroneDAO lioaDAO = new ListeObservationAsynchroneDAO(this);
319
		ListeObservationAsynchroneDAO lioaDAO = new ListeObservationAsynchroneDAO(this);
319
		lioaDAO.supprimerListeObservation(r, observationMediateur.getIdentifiant(), numObs);
320
		lioaDAO.supprimerListeObservation(r, observationMediateur.getIdentifiant(), numObs);
-
 
321
		
-
 
322
	}
-
 
323
 
-
 
324
 
-
 
325
 
-
 
326
	public void transmettreListeObservation(
-
 
327
			Rafraichissable r, String numObsapl) {
-
 
328
		TransmissionObservationAsynchroneDAO toaDAO = new TransmissionObservationAsynchroneDAO(this);
-
 
329
		toaDAO.transmettreObservations(r, observationMediateur.getIdentifiant(), numObsapl);
320
		
330
		
321
	}
331
	}
322
	
332
	
323
}
333
}