Subversion Repositories eFlore/Applications.cel

Rev

Rev 94 | Rev 104 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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