Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 82 Rev 86
1
package org.tela_botanica.client.observation;
1
package org.tela_botanica.client.observation;
2
 
2
 
-
 
3
 
-
 
4
import java.io.Console;
3
 
5
 
4
// TODO : systematiser les onQuelquechose, appelle depuis les vues
6
// TODO : systematiser les onQuelquechose, appelle depuis les vues
5
 
7
 
6
import org.tela_botanica.client.CarnetEnLigneMediateur;
8
import org.tela_botanica.client.CarnetEnLigneMediateur;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.ListeObservation;
10
import org.tela_botanica.client.modeles.ListeObservation;
9
import org.tela_botanica.client.modeles.Observation;
11
import org.tela_botanica.client.modeles.Observation;
10
import org.tela_botanica.client.vues.ArbreEntiteGeographiqueObservationFiltreVue;
12
import org.tela_botanica.client.vues.ArbreEntiteGeographiqueObservationFiltreVue;
11
import org.tela_botanica.client.vues.FormulaireSaisieObservationVue;
13
import org.tela_botanica.client.vues.FormulaireSaisieObservationVue;
12
import org.tela_botanica.client.vues.ImageGeneriqueVue;
14
import org.tela_botanica.client.vues.ImageGeneriqueVue;
13
import org.tela_botanica.client.vues.InformationRepartitionVue;
15
import org.tela_botanica.client.vues.InformationRepartitionVue;
14
import org.tela_botanica.client.vues.ListeObservationVue;
16
import org.tela_botanica.client.vues.ListeObservationVue;
15
import org.tela_botanica.client.vues.PanneauFiltresObservationVues;
17
import org.tela_botanica.client.vues.PanneauFiltresObservationVues;
16
 
18
 
17
import com.google.gwt.core.client.GWT;
19
import com.google.gwt.core.client.GWT;
18
import com.google.gwt.user.client.Window;
20
import com.google.gwt.user.client.Window;
19
import com.gwtext.client.core.EventObject;
21
import com.gwtext.client.core.EventObject;
-
 
22
import com.gwtext.client.core.Ext;
-
 
23
import com.gwtext.client.core.ExtElement;
20
import com.gwtext.client.core.RegionPosition;
24
import com.gwtext.client.core.RegionPosition;
-
 
25
import com.gwtext.client.widgets.Component;
21
import com.gwtext.client.widgets.Panel;
26
import com.gwtext.client.widgets.Panel;
-
 
27
import com.gwtext.client.widgets.event.ContainerListener;
-
 
28
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
22
import com.gwtext.client.widgets.layout.BorderLayout;
29
import com.gwtext.client.widgets.layout.BorderLayout;
23
import com.gwtext.client.widgets.layout.BorderLayoutData;
30
import com.gwtext.client.widgets.layout.BorderLayoutData;
24
import com.gwtext.client.widgets.layout.RowLayout;
31
import com.gwtext.client.widgets.layout.RowLayout;
25
import com.gwtext.client.widgets.layout.RowLayoutData;
32
import com.gwtext.client.widgets.layout.RowLayoutData;
26
 
33
 
27
 
34
 
28
/**
35
/**
29
 * Mediateur gérant les interactions entre vues et les echanges de données
36
 * Mediateur gérant les interactions entre vues et les echanges de données
30
 * C'est un singleton. 
37
 * C'est un singleton. 
31
 * @author aurelien
38
 * @author aurelien
32
 *
39
 *
33
 */
40
 */
34
public class ObservationMediateur {
41
public class ObservationMediateur {
35
	
42
	
36
	/**
43
	/**
37
	 * booleen qui verifie l'unicite de l'instance (donc static)
44
	 * booleen qui verifie l'unicite de l'instance (donc static)
38
	 */
45
	 */
39
	private static boolean estInstancie = false ;
46
	private static boolean estInstancie = false ;
40
 
47
 
41
	/**
48
	/**
42
	 * pointeur sur le médiateur (pour le pattern singleton)
49
	 * pointeur sur le médiateur (pour le pattern singleton)
43
	 */
50
	 */
44
	private static ObservationMediateur thisMediateur = null ;  
51
	private static ObservationMediateur thisMediateur = null ;  
45
	
52
	
46
	/** Mediateur general de l'application carnet en ligne
53
	/** Mediateur general de l'application carnet en ligne
47
	 * 
54
	 * 
48
	 * 
55
	 * 
49
	 */
56
	 */
50
	
57
	
51
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
58
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
52
	
59
	
53
	
60
	
54
	/**
61
	/**
55
	 * modele de données
62
	 * modele de données
56
	 */
63
	 */
57
	private ObservationModele observationModele = null ;
64
	private ObservationModele observationModele = null ;
58
	
65
	
59
	
66
	
60
	/**
67
	/**
61
	 * panneau principal des Observation (onglet "observation")
68
	 * panneau principal des Observation (onglet "observation")
62
	 */
69
	 */
63
	private final Panel panneauPrincipalObservation = new Panel("Observation");
70
	private final Panel panneauPrincipalObservation = new Panel("Observation");
64
	
71
	
65
	
72
	
66
	/**
73
	/**
67
	 * liste détaillée des Observations
74
	 * liste détaillée des Observations
68
	 */
75
	 */
69
	private ListeObservationVue listeObservation = null ;
76
	private ListeObservationVue listeObservation = null ;
70
	
77
	
71
	/**
78
	/**
72
	 * Saisie des Observations
79
	 * Saisie des Observations
73
	 */
80
	 */
74
	
81
	
75
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
82
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
76
	
83
	
77
	
84
	
78
 
85
 
79
	/**
86
	/**
80
	 * booleen explicitant s'il y a une selection en cours
87
	 * booleen explicitant s'il y a une selection en cours
81
	 */
88
	 */
82
	private boolean selection = false ;
89
	private boolean selection = false ;
83
 
90
 
84
	
91
	
85
	
92
	
86
	/**
93
	/**
87
	 * La liste des observations affichées en cours (verifier utilité)
94
	 * La liste des observations affichées en cours (verifier utilité)
88
	 */
95
	 */
89
	
96
	
90
	private ListeObservation cacheObservation = new ListeObservation(0) ;
97
	private ListeObservation cacheObservation = new ListeObservation(0) ;
91
	/**
98
	/**
92
	
99
	
93
	
100
	
94
	/**
101
	/**
95
	 * panneau conteneur pour le panneau  des informations lies à l'observation
102
	 * panneau conteneur pour le panneau  des informations lies à l'observation
96
	 */
103
	 */
97
	
104
	
98
  	private Panel details = new Panel("Détails");
105
  	private Panel details = new Panel("Détails");
99
 
106
 
100
 
107
 
101
 
108
 
102
	/**
109
	/**
103
	 * panneau conteneur pour le panneau des filtres
110
	 * panneau conteneur pour le panneau des filtres
104
	 */
111
	 */
105
	
112
	
106
  	private PanneauFiltresObservationVues filtres = null;
113
  	private PanneauFiltresObservationVues filtres = null;
107
 
114
 
108
	
115
	
109
  	
116
  	
110
  	/** 
117
  	/** 
111
  	 * panneau d'information de repartition sur le nom selectionné 
118
  	 * panneau d'information de repartition sur le nom selectionné 
112
  	 * 
119
  	 * 
113
  	 */
120
  	 */
114
  	
121
  	
115
  	private InformationRepartitionVue informationRepartitionVue=null;
122
  	private InformationRepartitionVue informationRepartitionVue=null;
116
  	
123
  	
117
  	
124
  	
118
  	/** 
125
  	/** 
119
  	 * panneau d'affichage d'une image generique associe au nom selectionne 
126
  	 * panneau d'affichage d'une image generique associe au nom selectionne 
120
  	 * 
127
  	 * 
121
  	 */
128
  	 */
122
  	
129
  	
123
  	private ImageGeneriqueVue imageGeneriqueVue=null;
130
  	private ImageGeneriqueVue imageGeneriqueVue=null;
124
 
-
 
125
	private ArbreEntiteGeographiqueObservationFiltreVue arbreEntiteGeographiqueObservationFiltreVue=null;
-
 
126
  	
131
  	
127
  	
132
  	
128
	/**
133
	/**
129
	 * constructeur privé (on accède a la classe par la méthode getInstance
134
	 * constructeur privé (on accède a la classe par la méthode getInstance
130
	 */
135
	 */
131
	
136
	
132
	
137
	
133
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
138
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
134
	{
139
	{
135
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
140
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
136
		
141
		
137
		
142
		
138
		// on crée un modèle
143
		// on crée un modèle
139
		observationModele = ObservationModele.Instance(this);
144
		observationModele = ObservationModele.Instance(this);
140
		
145
		
141
		
146
		
142
	
147
	
143
		listeObservation = new ListeObservationVue(this);
148
		listeObservation = new ListeObservationVue(this);
144
		listeObservation.setTitle("Observations");
149
		listeObservation.setTitle("Observations");
145
		
150
		
146
		// quelques variables de position pour les borderlayouts
151
		// quelques variables de position pour les borderlayouts
147
		final BorderLayoutData regionNord = new BorderLayoutData(
152
		final BorderLayoutData regionNord = new BorderLayoutData(
148
				RegionPosition.NORTH);
153
				RegionPosition.NORTH);
149
 
154
 
150
		final BorderLayoutData regionCentre = new BorderLayoutData(
155
		final BorderLayoutData regionCentre = new BorderLayoutData(
151
				RegionPosition.CENTER);
156
				RegionPosition.CENTER);
152
 
157
 
153
		  
158
		  
154
		final BorderLayoutData regionEst = new BorderLayoutData(
159
		final BorderLayoutData regionEst = new BorderLayoutData(
155
				RegionPosition.EAST);
160
				RegionPosition.EAST);
156
	
161
	
157
			
162
			
158
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted
163
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted
159
			regionEst.setSplit(true);
164
			regionEst.setSplit(true);
160
		}
165
		}
161
 
166
 
162
		final BorderLayoutData regionOuest = new BorderLayoutData(
167
		final BorderLayoutData regionOuest = new BorderLayoutData(
163
				RegionPosition.WEST);
168
				RegionPosition.WEST);
164
		
169
		
165
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted			
170
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted			
166
			regionOuest.setSplit(true);
171
			regionOuest.setSplit(true);
167
		}
172
		}
168
		
173
		
169
		panneauPrincipalObservation.setLayout(new BorderLayout()) ;
174
		panneauPrincipalObservation.setLayout(new BorderLayout()) ;
170
		
175
		
171
		
176
		
172
		// Le formulaire de saisie / modification d'observation
177
		// Le formulaire de saisie / modification d'observation
173
		
178
		
174
		formulaireSaisieObservationVue = new FormulaireSaisieObservationVue(this);
179
		formulaireSaisieObservationVue = new FormulaireSaisieObservationVue(this);
175
		formulaireSaisieObservationVue.setTitle("Saisie");
180
		formulaireSaisieObservationVue.setTitle("Saisie");
176
		formulaireSaisieObservationVue.setTitleCollapse(true);
181
		formulaireSaisieObservationVue.setTitleCollapse(true);
177
	 	formulaireSaisieObservationVue.setCollapsible(true) ;
182
	 	formulaireSaisieObservationVue.setCollapsible(true) ;
178
		
183
		
179
 
184
 
180
		Panel centre = new Panel();
185
		Panel centre = new Panel();
181
		centre.setLayout(new RowLayout()) ;
186
		centre.setLayout(new RowLayout()) ;
182
 
187
 
183
		centre.setHeight(panneauPrincipalObservation.getHeight()) ;
188
		centre.setHeight(panneauPrincipalObservation.getHeight()) ;
184
		
189
		
185
		centre.add(formulaireSaisieObservationVue, new RowLayoutData("30%")) ;
190
		centre.add(formulaireSaisieObservationVue, new RowLayoutData("30%")) ;
186
		centre.add(listeObservation, new RowLayoutData("70%"));
191
		centre.add(listeObservation, new RowLayoutData("70%"));
187
 
192
 
188
		// on initialise le volet qui contient les details
193
		// on initialise le volet qui contient les details
189
		details.setWidth("15%");
194
		details.setWidth("15%");
190
		details.setTitleCollapse(true);
195
		details.setTitleCollapse(true);
191
		details.setCollapsible(true);
196
		details.setCollapsible(true);
192
		details.setLayout(new RowLayout());
197
		details.setLayout(new RowLayout());
193
		
198
		
194
		
199
		
195
		
200
		
196
		// Information de repartition
201
		// Information de repartition
197
		informationRepartitionVue=new InformationRepartitionVue(this);
202
		informationRepartitionVue=new InformationRepartitionVue(this);
198
		// TODO : calcul de la hauteur automatique par le panel ?
203
		// TODO : calcul de la hauteur automatique par le panel ?
199
		informationRepartitionVue.setHeight(160);
204
		informationRepartitionVue.setHeight(160);
200
		details.add(informationRepartitionVue);
205
		details.add(informationRepartitionVue);
201
		
206
		
202
		
207
		
203
		// Image generique
208
		// Image generique
204
		imageGeneriqueVue=new ImageGeneriqueVue(this);
209
		imageGeneriqueVue=new ImageGeneriqueVue(this);
205
		// TODO : calcul de la hauteur automatique par le panel ?
210
		// TODO : calcul de la hauteur automatique par le panel ?
206
		
211
		
207
		imageGeneriqueVue.setHeight(160);
212
		imageGeneriqueVue.setHeight(160);
208
		details.add(imageGeneriqueVue);
213
		details.add(imageGeneriqueVue);
209
		
214
		
210
		
215
		
211
		// on crée le panneau des filtres
216
		// on crée le panneau des filtres
212
		filtres = new PanneauFiltresObservationVues(this);
217
		filtres = new PanneauFiltresObservationVues(this);
213
		
218
		
214
		// on initialise le volet qui contient les filtres
219
		// on initialise le volet qui contient les filtres
215
		filtres.setWidth("15%");
220
		filtres.setWidth("15%");
216
		filtres.setTitleCollapse(true);
221
		filtres.setTitleCollapse(true);
217
		filtres.setCollapsible(true);
222
		filtres.setCollapsible(true);
218
		
223
		
219
		panneauPrincipalObservation.add(details,regionEst);
224
		panneauPrincipalObservation.add(details,regionEst);
220
		panneauPrincipalObservation.add(filtres,regionOuest);
225
		panneauPrincipalObservation.add(filtres,regionOuest);
221
		panneauPrincipalObservation.add(centre,regionCentre);
226
		panneauPrincipalObservation.add(centre,regionCentre);
222
		
227
		
223
	}
228
	}
224
 
229
 
225
 
230
 
226
	/**
231
	/**
227
	 * Retourne une instance de manière unique
232
	 * Retourne une instance de manière unique
228
	 * @return l'instance unique du médiateur
233
	 * @return l'instance unique du médiateur
229
	 */
234
	 */
230
	public static ObservationMediateur Instance(CarnetEnLigneMediateur carnetEnLigneMediateur)
235
	public static ObservationMediateur Instance(CarnetEnLigneMediateur carnetEnLigneMediateur)
231
	{
236
	{
232
			if(!estInstancie || thisMediateur == null)
237
			if(!estInstancie || thisMediateur == null)
233
			{
238
			{
234
				estInstancie = true ;
239
				estInstancie = true ;
235
				thisMediateur = new ObservationMediateur(carnetEnLigneMediateur) ;
240
				thisMediateur = new ObservationMediateur(carnetEnLigneMediateur) ;
236
			}
241
			}
237
			
242
			
238
	
243
	
239
			return thisMediateur ;	
244
			return thisMediateur ;	
240
	}
245
	}
241
 
246
 
242
	
247
	
243
	
248
	
244
	// ACTIONS  a entreprendre lors d'un evenement particulier 
249
	// ACTIONS  a entreprendre lors d'un evenement particulier 
245
	
250
	
246
	
251
	
247
	/**
252
	/**
248
	 * Lors du raffraichissement de la liste d'observation  
253
	 * Lors du raffraichissement de la liste d'observation  
249
	 */
254
	 */
250
	
255
	
251
	
256
	
252
	public void onRafraichissementListeObservations() {
257
	public void onRafraichissementListeObservations() {
253
		
-
 
254
		obtenirListeEntiteGeographique();
-
 
255
		
-
 
256
		
258
		
257
		cacheObservation = listeObservation.getCacheListeObservation() ;
259
		cacheObservation = listeObservation.getCacheListeObservation() ;
258
		if(cacheObservation.size() == 0)
260
		if(cacheObservation.size() == 0)
259
		{
261
		{
260
			formulaireSaisieObservationVue.viderChampsObservation() ;
262
			formulaireSaisieObservationVue.viderChampsObservation() ;
261
		}
263
		}
262
		carnetEnLigneMediateur.donneesRafraichies(cacheObservation) ;
264
		carnetEnLigneMediateur.donneesRafraichies(cacheObservation) ;
263
 
265
 
264
		
266
		
265
	}
267
	}
266
	
268
	
267
	/**
269
	/**
268
	 * 
270
	 * 
269
	 * TODO : fonction plus generique, appelle sur un clic ou une selection de ligne, a appeller : SelectionnerObservation 
271
	 * TODO : fonction plus generique, appelle sur un clic ou une selection de ligne, a appeller : SelectionnerObservation 
270
	 * est appelé lors d'un clic de souris sur un enregistrement de la liste le
272
	 * est appelé lors d'un clic de souris sur un enregistrement de la liste le
271
	 * médiateur gère alors les conséquences
273
	 * médiateur gère alors les conséquences
272
	 * 
274
	 * 
273
	 * @param rowIndex
275
	 * @param rowIndex
274
	 *            le numéro de ligne selectionné
276
	 *            le numéro de ligne selectionné
275
	 */
277
	 */
276
	
278
	
277
	public void onClicListeObservation(int rowIndex, String ordreObservation) {
279
	public void onClicListeObservation(int rowIndex, String ordreObservation) {
278
	
280
	
279
		
281
		
280
		Observation obs = cacheObservation.get(ordreObservation) ;
282
		Observation obs = cacheObservation.get(ordreObservation) ;
-
 
283
		
-
 
284
		masquerChargementInfosObservations() ;
281
		
285
		
282
		// Affichage de la carte de repartition correspondante
286
		// Affichage de la carte de repartition correspondante
283
		String numeroNomenclaturalSaisiObservation = obs.getNumeroNomenclaturalSaisi() ;
287
		String numeroNomenclaturalSaisiObservation = obs.getNumeroNomenclaturalSaisi() ;
284
		
288
		
285
		observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
289
		observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
286
 
290
 
287
		// affichage des détails dans le formulaire d'observation
291
		// affichage des détails dans le formulaire d'observation
288
		formulaireSaisieObservationVue.rafraichir(obs, false) ;
292
		formulaireSaisieObservationVue.rafraichir(obs, false) ;
289
 
293
 
290
		// Affichage de l'image correspondante
294
		// Affichage de l'image correspondante
291
				
295
				
292
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
296
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
293
 
297
 
294
 
298
 
295
	}
299
	}
296
	
300
	
297
	
301
	
298
 
302
 
299
 
303
 
300
	
304
	
301
	// ACCES au Modèle 
305
	// ACCES au Modèle 
302
	
306
	
303
	
307
	
304
	// C du CRUD 
308
	// C du CRUD 
305
	
309
	
306
	
310
	
307
	
311
	
308
	/**
312
	/**
309
	 * TODO : afficher un message du type "observation ajouté".  
313
	 * TODO : afficher un message du type "observation ajouté".  
310
	 * Lance la creation d'une observation
314
	 * Lance la creation d'une observation
311
	 * @param obs : l'observation saisie
315
	 * @param obs : l'observation saisie
312
	 */
316
	 */
313
	
317
	
314
	
318
	
315
	
319
	
316
	public void ajouterObservation(Observation obs) {
320
	public void ajouterObservation(Observation obs) {
317
	
321
	
318
		
322
		
319
	  // On raffraichi la liste d'observation 
323
	  // On raffraichi la liste d'observation 
320
	  observationModele.ajouterObservation(listeObservation, obs) ;
324
	  observationModele.ajouterObservation(listeObservation, obs) ;
321
		
325
		
322
	}
326
	}
323
	
327
	
324
	
328
	
325
	
329
	
326
	// R du CRUD 
330
	// R du CRUD 
327
	
331
	
328
	/**
332
	/**
329
	 * Demande au modele le nombre d'Observation à afficher
333
	 * Demande au modele le nombre d'Observation à afficher
330
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
334
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
331
	 */
335
	 */
332
 
336
 
333
	public void obtenirNombreObservation() {
337
	public void obtenirNombreObservation() {
334
		
338
		
335
	
339
	
336
		  observationModele.obtenirNombreObservation(listeObservation) ;
340
		  observationModele.obtenirNombreObservation(listeObservation) ;
337
		
341
		
338
	}
342
	}
339
 
343
 
340
	
344
	
341
	
345
	
342
	public void obtenirListeObservation() {
346
	public void obtenirListeObservation() {
343
		obtenirListeObservation(listeObservation);
347
		obtenirListeObservation(listeObservation);
344
	}
348
	}
345
	
349
	
346
	/**
350
	/**
347
	 * Demande au modele le detail  des Observations à afficher
351
	 * Demande au modele le detail  des Observations à afficher
348
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
352
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
349
	 */
353
	 */
350
 
354
 
351
	
355
	
352
	public void obtenirListeObservation(Rafraichissable r) {
356
	public void obtenirListeObservation(Rafraichissable r) {
353
		
357
		
354
		listeObservation.masquerChargement() ;
358
		listeObservation.masquerChargement() ;
355
		formulaireSaisieObservationVue.viderChampsObservation() ;
359
		formulaireSaisieObservationVue.viderChampsObservation() ;
356
		observationModele.obtenirListeObservation(r,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
360
		observationModele.obtenirListeObservation(r,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
357
	}
361
	}
-
 
362
	
-
 
363
	public void obtenirCacheObservation(Rafraichissable r) {
-
 
364
		
-
 
365
		r.rafraichir(cacheObservation, false) ;
-
 
366
	}
358
	
367
	
359
 
368
 
360
	/**
369
	/**
361
	 * Envoie au modèle une demande pour obtenir l'arbre des localites
370
	 * Envoie au modèle une demande pour obtenir l'arbre des localites
362
	 * 
371
	 * 
363
	 * @param r
372
	 * @param r
364
	 *            le raffraichissable qui a demandé la mise à jour
373
	 *            le raffraichissable qui a demandé la mise à jour
365
	 */
374
	 */
366
	public void obtenirListeEntiteGeographique() {
375
	public void obtenirListeEntiteGeographique() {
367
		
376
		
368
		observationModele.obtenirListeEntiteGeographique(filtres.getarbreEntiteGeographiqueObservationFiltreVue());
377
		observationModele.obtenirListeEntiteGeographique(filtres.getarbreEntiteGeographiqueObservationFiltreVue());
369
		
378
		
370
	}
379
	}
371
	
380
	
372
	
381
	
373
	// U du CRUD
382
	// U du CRUD
374
	
383
	
375
	
384
	
376
 
385
 
377
	
386
	
378
	public void modifierObservation(Observation obs) {
387
	public void modifierObservation(Observation obs) {
379
	
388
	
380
		
389
		
381
	  // On raffraichi la liste d'observation 
390
	  // On raffraichi la liste d'observation 
382
	  observationModele.modifierObservation(listeObservation, obs) ;
391
	  observationModele.modifierObservation(listeObservation, obs) ;
383
		
392
		
384
	}
393
	}
385
	
394
	
386
	
395
	
387
	
396
	
388
	// D du CRUD
397
	// D du CRUD
389
	
398
	
390
	
399
	
391
	/**
400
	/**
392
	 * TODO : afficher un message du type "observation modifie".  
401
	 * TODO : afficher un message du type "observation modifie".  
393
	 * Lance la modification d'une observation
402
	 * Lance la modification d'une observation
394
	 * @param obs : l'observation a modifier
403
	 * @param obs : l'observation a modifier
395
	 */
404
	 */
396
	
405
	
397
	
406
	
398
	
407
	
399
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
408
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
400
		
409
		
401
		if(listeObservation.getSelectionModel().getCount() > 0)
410
		if(listeObservation.getSelectionModel().getCount() > 0)
402
		{
411
		{
403
			if(Window.confirm("Êtes vous sur de vouloir supprimer cette observation ?")) {
412
			if(Window.confirm("Êtes vous sur de vouloir supprimer cette observation ?")) {
404
			observationModele.supprimerObservation(r,numeroOrdre) ;
413
			observationModele.supprimerObservation(r,numeroOrdre) ;
405
			}
414
			}
406
		}
415
		}
407
		
416
		
408
	}
417
	}
409
	
418
	
410
	
419
	
411
	
420
	
412
	
421
	
413
 
422
 
414
	// Assistants de saisie
423
	// Assistants de saisie
415
	
424
	
416
	/**
425
	/**
417
	 *  
426
	 *  
418
	 * Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne 
427
	 * Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne 
419
	 * @param r : la vue demandeuse de donnee
428
	 * @param r : la vue demandeuse de donnee
420
	 * @param critere : les criteres de selection
429
	 * @param critere : les criteres de selection
421
	 */
430
	 */
422
	
431
	
423
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
432
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
424
		
433
		
425
		observationModele.obtenirListeReferentielCommune(r,critere) ;
434
		observationModele.obtenirListeReferentielCommune(r,critere) ;
426
 
435
 
427
		
436
		
428
	}
437
	}
429
	
438
	
430
	
439
	
431
	
440
	
432
	/**
441
	/**
433
	 *  
442
	 *  
434
	 * Lance un appel de recherche d'une liste de nom scientifique correspondant aux criteres de selectionne 
443
	 * Lance un appel de recherche d'une liste de nom scientifique correspondant aux criteres de selectionne 
435
	 * @param r : la vue demandeuse de donnee
444
	 * @param r : la vue demandeuse de donnee
436
	 * @param critere : les criteres de selection
445
	 * @param critere : les criteres de selection
437
	 */
446
	 */
438
	
447
	
439
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
448
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
440
		
449
		
441
		observationModele.obtenirListeReferentielNom(r,critere) ;
450
		observationModele.obtenirListeReferentielNom(r,critere) ;
442
 
451
 
443
		
452
		
444
	}
453
	}
445
	
-
 
446
	
-
 
447
 
-
 
448
 
-
 
449
	
454
	
450
	// Etat du syteme
455
	// Etat du syteme
451
	
456
	
452
	/**
457
	/**
453
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
458
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
454
	 * sous forme de tableau [nom, valeur]
459
	 * sous forme de tableau [nom, valeur]
455
	 * @return Les noms et valeurs des filtres
460
	 * @return Les noms et valeurs des filtres
456
	 */
461
	 */
457
	public String[][] renvoyerFiltres()
462
	public String[][] renvoyerFiltres()
458
	{
463
	{
-
 
464
		if(filtres.getarbreEntiteGeographiqueObservationFiltreVue() != null)
-
 
465
		{
-
 
466
			String[][] valeursFiltres = { filtres.getarbreEntiteGeographiqueObservationFiltreVue().renvoyerValeursAFiltrer() } ;
-
 
467
			//Window.alert(valeursFiltres[0][0]+" "+valeursFiltres[0][1]) ;
-
 
468
			return valeursFiltres ;
-
 
469
		}
-
 
470
		else
-
 
471
		{
-
 
472
			//Window.alert("le filtre est nul") ;
459
		String[][] valeursFiltres = { {"",""} } ;
473
			String[][] valeursFiltres = {{"",""}} ;
-
 
474
			return valeursFiltres ;
460
		
475
		}
461
		
-
 
462
		return valeursFiltres ;
476
		
463
	}
477
	}
464
 
478
 
465
	
479
	
466
	/**
480
	/**
467
	 * Retourne l'identifiant de l'utilisateur connecte
481
	 * Retourne l'identifiant de l'utilisateur connecte
468
	 * @return : identifiant de l'utilisateur connecte
482
	 * @return : identifiant de l'utilisateur connecte
469
	 */
483
	 */
470
	public String getIdentifiant() {
484
	public String getIdentifiant() {
471
		
485
		
472
		return carnetEnLigneMediateur.getUtilisateur().getIdentifiant();
486
		return carnetEnLigneMediateur.getUtilisateur().getIdentifiant();
473
	
487
	
474
	}
488
	}
475
 
489
 
476
 
490
 
477
	/**
491
	/**
478
	 * 
492
	 * 
479
	 * @return
493
	 * @return
480
	 * 
494
	 * 
481
	 */
495
	 */
482
	
496
	
483
	public Panel getPanneauPrincipalObservation() {
497
	public Panel getPanneauPrincipalObservation() {
484
		return panneauPrincipalObservation;
498
		return panneauPrincipalObservation;
485
	}
499
	}
486
	
-
 
487
 
-
 
488
 
-
 
489
 
-
 
490
 
-
 
491
		
-
 
492
 
500
 
493
 
501
 
494
	public void montrerContextMenu(EventObject e) {
502
	public void montrerContextMenu(EventObject e) {
495
		
503
		
496
		
504
		
497
		
505
		
498
	}
506
	}
499
 
507
 
500
	public void doubleClicListeObservation(int rowIndex) {
508
	public void doubleClicListeObservation(int rowIndex) {
501
		
509
		
502
		
510
		
503
	}
511
	}
504
 
512
 
505
 
513
 
506
	
514
	
507
	// Getters 
515
	// Getters 
508
	
516
	
509
	public PanneauFiltresObservationVues getPanneauFiltres() {
517
	public PanneauFiltresObservationVues getPanneauFiltres() {
510
		
518
		
511
		return filtres;
519
		return filtres;
512
		
520
		
513
	}
521
	}
514
 
-
 
515
 
-
 
516
 
-
 
-
 
522
	
-
 
523
	public void masquerChargementInfosObservations()
-
 
524
	{
-
 
525
		ExtElement masked = Ext.get(details.getId());
-
 
526
 
-
 
527
		if (masked != null && !masked.isMasked()) {
-
 
528
			informationRepartitionVue.raz() ;
-
 
529
			imageGeneriqueVue.raz() ;
-
 
530
			masked.mask("Chargement", true);
-
 
531
		}
-
 
532
	}
-
 
533
	
-
 
534
	public void deMasquerChargementInfosObservations()
-
 
535
	{
-
 
536
		ExtElement masked = Ext.get(details.getId());
-
 
537
 
-
 
538
		if (masked != null && masked.isMasked()) {
517
	
539
			masked.unmask() ;
518
 
540
		}	
519
 
541
	}
520
	
542
	
521
}
543
}