Subversion Repositories eFlore/Applications.cel

Rev

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

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