Subversion Repositories eFlore/Applications.cel

Rev

Rev 119 | Rev 128 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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