Subversion Repositories eFlore/Applications.cel

Rev

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