Subversion Repositories eFlore/Applications.cel

Rev

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

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