Subversion Repositories eFlore/Applications.cel

Rev

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

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