Subversion Repositories eFlore/Applications.cel

Rev

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