Subversion Repositories eFlore/Applications.cel

Rev

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