Subversion Repositories eFlore/Applications.cel

Rev

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

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