Subversion Repositories eFlore/Applications.cel

Rev

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