Subversion Repositories eFlore/Applications.cel

Rev

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