Subversion Repositories eFlore/Applications.cel

Rev

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