Subversion Repositories eFlore/Applications.cel

Rev

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

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