Subversion Repositories eFlore/Applications.cel

Rev

Rev 79 | 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
 
35
 
36
	/**
37
	 * La configuration en cours
38
	 */
39
	private Configuration config = null;
7 aperonnet 40
 
12 david 41
 
42
	/**
43
	 * Le médiateur associé au modèle
44
	 */
45
 
46
	private ObservationMediateur observationMediateur = null ;
47
 
48
 
49
 
50
 
51
	/**
52
	 * Retourne une instance de manière unique
53
	 * @param im le médiateur à associer
54
	 * @return l'instance du modèle
55
	 */
56
 
57
	static ObservationModele Instance(ObservationMediateur observationMediateur)
58
	{
59
		// si le modèle n'est pas encore instancié
60
		if(!estInstancie)
61
		{
62
			// on en crée un nouveau
63
			estInstancie = true ;
64
			return 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
		}
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
 
115
		 	String[][] motsClesFiltres = {{"",""}} ;
116
				motsClesFiltres = observationMediateur.renvoyerFiltres() ;
117
				// on rassemble les critères
12 david 118
 
119
 
120
			// 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]}} ;
122
 
123
			// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
124
 
125
			ListeObservationAsynchroneDAO loaDAO = new ListeObservationAsynchroneDAO(this);
126
			loaDAO.obtenirListeObservation(r, observationMediateur.getIdentifiant(), criteres2);
127
	}
128
 
2 aperonnet 129
 
54 david 130
	/**
131
	 * Obtenir une liste de commune
132
	 * @param r
133
	 * @param critere
134
	 */
12 david 135
 
13 david 136
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
12 david 137
 
13 david 138
		ListeReferentielCommuneAsynchroneDAO refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
139
		refDAO.obtenirListeDonnees(r, critere);
140
 
12 david 141
	}
20 david 142
 
54 david 143
	/**
144
	 * Obtenir une liste de nom scientifique de plante
145
	 * @param r
146
	 * @param critere
147
	 */
20 david 148
 
149
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
150
 
151
		ListeReferentielNomAsynchroneDAO nomDAO=new ListeReferentielNomAsynchroneDAO(this);
152
		nomDAO.obtenirListeDonnees(r, critere);
153
 
154
	}
155
 
156
 
157
	/**
158
	 *
159
	 * Lance la creation d'une observation
160
	 * @param r : la vue demandeuse de donnee
161
	 * @param critere : les criteres de selection
162
	 */
163
 
39 david 164
	public void ajouterObservation(Rafraichissable r, Observation obs) {
20 david 165
 
166
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
39 david 167
		obsDAO.ajouter(r, observationMediateur.getIdentifiant(), obs);
20 david 168
 
169
	}
2 aperonnet 170
 
74 david 171
	/**
172
	 *
173
	 * Lance la creation d'une observation
174
	 * @param r : la vue demandeuse de donnee
175
	 * @param critere : les criteres de selection
176
	 */
20 david 177
 
79 david 178
	public void modifierObservation(Rafraichissable r, Observation obs) {
74 david 179
 
180
		ObservationAsynchroneDAO obsDAO=new ObservationAsynchroneDAO(this);
79 david 181
		obsDAO.modifier(r, observationMediateur.getIdentifiant(), obs);
74 david 182
 
183
	}
20 david 184
 
77 jpm 185
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
186
 
187
		ObservationAsynchroneDAO obsDao = new ObservationAsynchroneDAO(this) ;
188
		obsDao.supprimer(r,observationMediateur.getIdentifiant(),numeroOrdre) ;
189
 
190
 
191
	}
74 david 192
 
77 jpm 193
 
7 aperonnet 194
 
20 david 195
 
12 david 196
	/**
197
	 * Accesseur pour la configuration en cours d'utilisation
198
	 *
199
	 * @return la configuration
200
	 */
201
	public Configuration getConfig() {
202
 
203
		return config;
2 aperonnet 204
	}
205
 
66 david 206
 
207
	/**
208
	 * Obtenir des informations de repartition relative a un numero nomenclatural
209
	 * @param r
210
	 * @param numeroNomenclaturalSaisiObservation
211
	 */
12 david 212
 
54 david 213
 
214
	public void obtenirImageInformationRepartition( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
215
 
216
		ImageInformationRepartitionAsynchroneDAO repDAO=new ImageInformationRepartitionAsynchroneDAO(this);
217
		repDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
218
 
219
 
220
	}
221
 
66 david 222
	/**
223
	 * Obtenir une image generique associee a un numero nomenclatural
224
	 * @param r
225
	 * @param numeroNomenclaturalSaisiObservation
226
	 */
54 david 227
 
228
	public void obtenirImageGenerique( Rafraichissable r,String numeroNomenclaturalSaisiObservation) {
229
 
230
		ImageGeneriqueVueAsynchroneDAO imgDAO=new ImageGeneriqueVueAsynchroneDAO(this);
231
		imgDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation);
232
 
233
 
234
	}
235
 
236
 
66 david 237
	/**
238
	 * Obtenir la liste de l'ensemble des entites geographiques associes aux observation d'un utilisateur
239
	 * @param r
240
	 */
54 david 241
 
66 david 242
	public void obtenirListeEntiteGeographique(Rafraichissable r) {
54 david 243
 
66 david 244
	    ListeEntiteGeographiqueObservationAsynchroneDAO entDAO = new ListeEntiteGeographiqueObservationAsynchroneDAO(this);
245
	    entDAO.obtenirListeEntitesGeographiques(r, observationMediateur.getIdentifiant());
54 david 246
 
247
	}
12 david 248
 
2 aperonnet 249
}