Subversion Repositories eFlore/Applications.cel

Rev

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

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