Subversion Repositories eFlore/Applications.cel

Rev

Rev 140 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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