Subversion Repositories eFlore/Applications.cel

Rev

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

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