Subversion Repositories eFlore/Applications.cel

Rev

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