Subversion Repositories eFlore/Applications.coel

Rev

Rev 875 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 875 Rev 883
Line 19... Line 19...
19
import org.tela_botanica.client.modeles.UniteBase;
19
import org.tela_botanica.client.modeles.UniteBase;
20
import org.tela_botanica.client.modeles.UniteRangement;
20
import org.tela_botanica.client.modeles.UniteRangement;
21
import org.tela_botanica.client.modeles.Valeur;
21
import org.tela_botanica.client.modeles.Valeur;
22
import org.tela_botanica.client.modeles.ValeurListe;
22
import org.tela_botanica.client.modeles.ValeurListe;
23
import org.tela_botanica.client.modeles.aDonnee;
23
import org.tela_botanica.client.modeles.aDonnee;
-
 
24
import org.tela_botanica.client.util.Debug;
Line 24... Line 25...
24
 
25
 
25
import com.extjs.gxt.ui.client.event.BaseEvent;
26
import com.extjs.gxt.ui.client.event.BaseEvent;
26
import com.extjs.gxt.ui.client.event.ButtonEvent;
27
import com.extjs.gxt.ui.client.event.ButtonEvent;
27
import com.extjs.gxt.ui.client.event.ComponentEvent;
28
import com.extjs.gxt.ui.client.event.ComponentEvent;
Line 59... Line 60...
59
import com.google.gwt.event.dom.client.KeyCodes;
60
import com.google.gwt.event.dom.client.KeyCodes;
Line 60... Line 61...
60
 
61
 
Line 61... Line 62...
61
public class CollectionFormPersonne extends FormulaireOnglet implements Rafraichissable {
62
public class CollectionFormPersonne extends FormulaireOnglet implements Rafraichissable {
62
	
63
	
Line 63... Line 64...
63
	private Collection collection = null;
64
	private Collection collection = null;
64
	private Collection collectionCollectee = null;
65
	private static int idGenere = 1;
65
	
66
	
66
	private ContentPanel panneauPrincipal = null;
67
	private ContentPanel panneauPrincipal = null;
Line 67... Line -...
67
	private ToolBar barreOutils = null;
-
 
68
	private Grid<CollectionAPersonne> grille;
68
	private ToolBar barreOutils = null;
69
	private ComboBox<Valeur> typeRelationCombo = null;
-
 
70
	
69
	private EditorGrid<CollectionAPersonne> grille;
71
	private CollectionAPersonneListe personnes = null;
70
	private ComboBox<Valeur> typeRelationCombo = null;
72
	private CollectionAPersonneListe personnesAjoutees = null;
71
	
73
	private CollectionAPersonneListe personnesModifiees = null;
72
	private CollectionAPersonneListe personnesAjoutees = null;
74
	private CollectionAPersonneListe personnesSupprimees = null;
73
	private CollectionAPersonneListe personnesSupprimees = null;
Line 75... Line 74...
75
	private ComboBox<Personne> personnesSaisisComboBox = null;
74
	private ComboBox<Personne> personnesSaisisComboBox = null;
Line 76... Line -...
76
	private Button personnesBoutonSupprimer = null;
-
 
77
	private Button personnesBoutonModifier = null;
-
 
78
	private ValeurListe listeIon = null;
-
 
79
	
75
	private Button personnesBoutonSupprimer = null;
80
	private FenetreForm fenetreFormulaire = null;
76
	private Button personnesBoutonModifier = null;
81
	
77
	private ListStore<Valeur> listeIon = null;
82
	private static final String ETAT_AJOUTE = "A";
78
	
83
	private static final String ETAT_SUPPRIME = "S";
79
	private FenetreForm fenetreFormulaire = null;
Line 100... Line 96...
100
		initialiser();
96
		initialiser();
101
	}
97
	}
Line 102... Line 98...
102
	
98
	
103
	private void initialiser() {
99
	private void initialiser() {
-
 
100
		// Remise à zéro des modification dans la liste des auteurs
104
		// Remise à zéro des modification dans la liste des auteurs
101
		idGenere = 1;
105
		personnesAjoutees = new CollectionAPersonneListe();
-
 
106
		personnesModifiees = new CollectionAPersonneListe();
102
		personnesAjoutees = new CollectionAPersonneListe();
Line 107... Line 103...
107
		personnesSupprimees = new CollectionAPersonneListe();
103
		personnesSupprimees = new CollectionAPersonneListe();
108
		
104
		
109
		// Actualisation de l'état des boutons de la barre d'outils
-
 
110
		actualiserEtatBoutonsBarreOutils();
105
		// Actualisation de l'état des boutons de la barre d'outils
111
	}
-
 
112
	
106
		actualiserEtatBoutonsBarreOutils();
113
	private void initialiserCollection() {
-
 
114
		collection = ((CollectionForm) formulaire).collection;
107
		
115
		collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
108
		collection = ((CollectionForm) formulaire).collection;
116
	}
109
	}
117
		
110
	
Line 118... Line 111...
118
	private ContentPanel creerPanneauContenantGrille() {
111
	private ContentPanel creerPanneauContenantGrille() {
119
		ContentPanel panneau = new ContentPanel();
112
		ContentPanel panneau = new ContentPanel();
Line 260... Line 253...
260
		Button bouton = new Button(i18nC.rafraichir());
253
		Button bouton = new Button(i18nC.rafraichir());
261
		bouton.setIcon(Images.ICONES.rafraichir());
254
		bouton.setIcon(Images.ICONES.rafraichir());
262
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
255
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
263
			@Override
256
			@Override
264
			public void componentSelected(ButtonEvent ce) {
257
			public void componentSelected(ButtonEvent ce) {
265
				// TODO : mettre en place le rafraichissement de la liste
258
				actualiserGrille();
266
			}   
259
			}   
267
		});
260
		});
268
		return bouton;
261
		return bouton;
269
	}
262
	}
Line 300... Line 293...
300
		});
293
		});
301
		return comboBox;
294
		return comboBox;
302
	}
295
	}
Line 303... Line 296...
303
	
296
	
-
 
297
	private void ajouterDansGrille(Personne personne) {
-
 
298
		ajouterDansGrille(personne, 0);
-
 
299
	}
-
 
300
	
304
	private void ajouterDansGrille(Personne personne) {
301
	private void ajouterDansGrille(Personne personne, int index) {
305
		if (personne != null) {
302
		if (personne != null) {
306
			CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne();
303
			CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne();
307
			relationCollectionPersonne.setPersonne(personne);
-
 
-
 
304
			relationCollectionPersonne.setPersonne(personne);
308
			
305
			relationCollectionPersonne.setIdPersonne(personne.getId());
309
			// Ajout de la personne ajoutée à la liste
306
			// Gestion de l'id de la collection
310
			if (relationCollectionPersonne.getId() != null && !relationCollectionPersonne.getId().equals("")) {
307
			if (mode.equals(Formulaire.MODE_MODIFIER)) {
311
				personnesAjoutees.put(relationCollectionPersonne.getId(), relationCollectionPersonne);
308
				relationCollectionPersonne.setIdCollection(collection.getId());
312
			}
-
 
313
			
-
 
314
			// Définition de l'état
309
			}
-
 
310
			relationCollectionPersonne.set("_etat_", aDonnee.ETAT_AJOUTE);
Line 315... Line 311...
315
			relationCollectionPersonne.set("etat", ETAT_AJOUTE);
311
			corrigerChampsGrille(relationCollectionPersonne);
-
 
312
			
316
			
313
			// Ajout à la grille
-
 
314
			grille.stopEditing();
317
			// Ajout à la grille
315
			grille.getStore().insert(relationCollectionPersonne, index);
318
			grille.getStore().insert(relationCollectionPersonne, 0);
316
			grille.startEditing(0, 0);
319
			grille.getSelectionModel().select(0, false);
317
			grille.getSelectionModel().select(0, false);
Line 320... Line 318...
320
		}
318
		}
321
	}
319
	}
322
	
320
	
323
	private void supprimerDansGrille(CollectionAPersonne relationCollectionPersonne) {
321
	private void supprimerDansGrille(CollectionAPersonne relationCollectionPersonne) {
324
		if (relationCollectionPersonne != null) {
322
		if (relationCollectionPersonne != null) {
325
			// Ajout de la personne supprimée à la liste
323
			// Ajout de la personne supprimée à la liste
-
 
324
			if ((relationCollectionPersonne.get("_etat_").equals("") || !relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) 
326
			if ((relationCollectionPersonne.get("etat") == null || !relationCollectionPersonne.get("etat").equals(ETAT_AJOUTE)) 
325
					&& relationCollectionPersonne.getId() != null 
-
 
326
					&& !relationCollectionPersonne.getId().equals("")) {
-
 
327
				Debug.log("Nbre personnes supprimées avant:"+personnesSupprimees.size());
327
					&& relationCollectionPersonne.getId() != null 
328
				personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne);
Line 328... Line 329...
328
					&& !relationCollectionPersonne.getId().equals("")) {
329
				GWT.log("Personne supprimées : "+relationCollectionPersonne.getPersonne().getId()+" "+relationCollectionPersonne.getPersonne().getPrenom()+" "+relationCollectionPersonne.getPersonne().getNom(), null);
329
				personnesSupprimees.put(relationCollectionPersonne.getId(), relationCollectionPersonne);
330
				Debug.log("Nbre personnes supprimées :"+personnesSupprimees.size());
330
			}
331
			}
331
			
332
			
Line 332... Line 333...
332
			// Suppression de l'enregistrement de la grille
333
			// Suppression de l'enregistrement de la grille
333
			grille.getStore().remove(relationCollectionPersonne);			
334
			grille.getStore().remove(relationCollectionPersonne);			
334
		}
335
		}
335
	}
336
	}
336
 
337
 
337
	private Grid<CollectionAPersonne> creerGrille() {
338
	private EditorGrid<CollectionAPersonne> creerGrille() {
338
		ListStore<Personne> storeGrille = new ListStore<Personne>();
339
		ListStore<CollectionAPersonne> storeGrille = new ListStore<CollectionAPersonne>();
339
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<Personne>>() {
340
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionAPersonne>>() {
340
			public void handleEvent(StoreEvent<Personne> ce) {
341
			public void handleEvent(StoreEvent<CollectionAPersonne> ce) {
341
				actualiserEtatBoutonsBarreOutils();
342
				actualiserEtatBoutonsBarreOutils();
342
			}
343
			}
343
		});
344
		});
-
 
345
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionAPersonne>>() {
-
 
346
			public void handleEvent(StoreEvent<CollectionAPersonne> ce) {
-
 
347
				actualiserEtatBoutonsBarreOutils();
-
 
348
			}
-
 
349
		});
-
 
350
		storeGrille.addListener(Store.Update, new Listener<StoreEvent<CollectionAPersonne>>() {
-
 
351
			public void handleEvent(StoreEvent<CollectionAPersonne> ce) {
-
 
352
				if (ce.getRecord().isModified("_role_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
Line 344... Line 353...
344
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<Personne>>() {
353
					Debug.log("id role modifié");
Line 345... Line 354...
345
			public void handleEvent(StoreEvent<Personne> ce) {
354
					ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
346
				actualiserEtatBoutonsBarreOutils();
355
				}
Line 362... Line 371...
362
		CellEditor editeurRelation = new CellEditor(typeRelationCombo) {  
371
		CellEditor editeurRelation = new CellEditor(typeRelationCombo) {  
363
			@Override  
372
			@Override  
364
			public Object preProcessValue(Object valeur) {  
373
			public Object preProcessValue(Object valeur) {  
365
				Valeur retour = null;
374
				Valeur retour = null;
366
				if (valeur != null ) {
375
				if (valeur != null ) {
-
 
376
					Debug.log(valeur.toString());
367
					if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
377
					if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
368
						retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
378
						retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
369
					} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
379
					} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
370
						retour = typeRelationCombo.getStore().findModel("abr", valeur.toString());
380
						retour = typeRelationCombo.getStore().findModel("abr", valeur.toString());
-
 
381
					} else if (typeRelationCombo.getStore().findModel("id_valeur", valeur.toString()) != null) {
-
 
382
						retour = typeRelationCombo.getStore().findModel("id_valeur", valeur.toString());
371
					}
383
					}
372
				}
384
				}
373
				return retour;
385
				return retour;
374
			}  
386
			}  
Line 384... Line 396...
384
				}
396
				}
385
				return retour;  
397
				return retour;  
386
			}  
398
			}  
387
		};
399
		};
Line -... Line 400...
-
 
400
		
-
 
401
		GridCellRenderer<CollectionAPersonne> relationRendu = new GridCellRenderer<CollectionAPersonne>() {
-
 
402
			@Override
-
 
403
			public String render(CollectionAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPersonne> store, Grid<CollectionAPersonne> grid) {
-
 
404
				String role = modele.get("_role_");
-
 
405
				if (typeRelationCombo.getStore() != null && role.matches("[0-9]+")) {
-
 
406
					role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
-
 
407
				}
-
 
408
				modele.set("_role_", role);
-
 
409
				return role;
-
 
410
			}
-
 
411
		};
388
		
412
		
389
		ColumnConfig typeRelationColonne = new ColumnConfig("id_role", i18nC.typeRelationPersonneCollection(), 75);
413
		ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
-
 
414
		typeRelationColonne.setEditor(editeurRelation);
390
		typeRelationColonne.setEditor(editeurRelation);
415
		typeRelationColonne.setRenderer(relationRendu);
Line 391... Line 416...
391
		colonnes.add(typeRelationColonne);
416
		colonnes.add(typeRelationColonne);
392
		
417
		
393
		colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
418
		colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
Line 423... Line 448...
423
		GridCellRenderer<CollectionAPersonne> decesRendu = new GridCellRenderer<CollectionAPersonne>() {
448
		GridCellRenderer<CollectionAPersonne> decesRendu = new GridCellRenderer<CollectionAPersonne>() {
424
			@Override
449
			@Override
425
			public String render(CollectionAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPersonne> store, Grid<CollectionAPersonne> grid) {
450
			public String render(CollectionAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPersonne> store, Grid<CollectionAPersonne> grid) {
426
				String deces = modele.getPersonne().getDeces();
451
				String deces = modele.getPersonne().getDeces();
427
				if (listeIon != null && modele.getPersonne().getDeces().matches("[0-9]+")) {
452
				if (listeIon != null && modele.getPersonne().getDeces().matches("[0-9]+")) {
428
					deces = listeIon.get(modele.getPersonne().getDeces()).getNom();
453
					deces = listeIon.findModel("id_valeur", modele.getPersonne().getDeces()).getNom();
429
				}
454
				}
430
				modele.set("_deces_", deces);
455
				modele.set("_deces_", deces);
431
				return deces;
456
				return deces;
432
			}
457
			}
433
		};
458
		};
Line 461... Line 486...
461
		}
486
		}
462
	}
487
	}
Line 463... Line 488...
463
	
488
	
464
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
489
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
465
		if (listeValeurs.getId().equals(config.getListeId("ion"))) {
490
		if (listeValeurs.getId().equals(config.getListeId("ion"))) {
-
 
491
			listeIon = new ListStore<Valeur>();
466
			listeIon = listeValeurs;
492
			listeIon.add(listeValeurs.toList());
467
		} else if (listeValeurs.getId().equals(config.getListeId("relationPersonneCollection"))) {
493
		} else if (listeValeurs.getId().equals(config.getListeId("relationPersonneCollection"))) {
468
			Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
494
			Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
469
		} else {
495
		} else {
470
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
496
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
Line 483... Line 509...
483
				
509
				
484
				personnesSaisisComboBox.getStore().removeAll();
510
				personnesSaisisComboBox.getStore().removeAll();
485
				personnesSaisisComboBox.getStore().add(liste);
511
				personnesSaisisComboBox.getStore().add(liste);
486
				personnesSaisisComboBox.expand();
512
				personnesSaisisComboBox.expand();
487
			}
-
 
488
		} else if (type.equals("liste_collection_a_personne")) {
-
 
489
			if (info.getDonnee(0) != null) {
-
 
490
				initialiser();
-
 
491
				// TODO : passer à la méthode peupler un objet CollectionAPersonneListe et modifier le type de auteurs
-
 
492
				//auteurs = (CollectionAPersonneListe) info.getDonnee(0);
-
 
493
				peupler();
-
 
494
			}
513
			}
495
		} else if (info.getType().equals("ajout_collection")) {
514
		} else if (info.getType().equals("ajout_collection")) {
496
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
515
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
Line 497... Line 516...
497
				String collectionId = (String) info.getDonnee(0);
516
				String collectionId = (String) info.getDonnee(0);
498
				
517
				
499
				// Suite à la récupération de l'id de la collection nouvellement ajoutée nous ajoutons les personnes liées
518
				// Suite à la récupération de l'id de la collection nouvellement ajoutée nous ajoutons les personnes liées
500
				// En mode AJOUT, il ne peut que y avoir des personnes liées ajoutées
519
				// En mode AJOUT, il ne peut que y avoir des personnes liées ajoutées
-
 
520
				mediateur.ajouterCollectionAPersonne(this, collectionId, personnesAjoutees);
-
 
521
			}
501
				mediateur.ajouterCollectionAPersonne(this, collectionId, personnesAjoutees);
522
		} else if (type.equals("modification_personne")) {
-
 
523
			if (info.getDonnee(0) != null) {
-
 
524
				Personne personne = (Personne) info.getDonnee(0);
-
 
525
				CollectionAPersonne personneDansGrille = grille.getStore().findModel("id_personne", personne.getId());
-
 
526
				int index = grille.getStore().indexOf(personneDansGrille);
-
 
527
				grille.getStore().remove(personneDansGrille);
-
 
528
				ajouterDansGrille(personne, index);
-
 
529
			}
-
 
530
		} else if (type.equals("ajout_personne")) {
-
 
531
			if (info.getDonnee(0) != null) {
502
			} else {
532
				Personne personne = (Personne) info.getDonnee(0);
503
				Info.display("Ajout d'une Institution", info.toString());
533
				ajouterDansGrille(personne);
504
			}
534
			}
505
		} else if (info.getType().equals("modif_collection_a_personne")) {
535
		} else if (info.getType().equals("modif_collection_a_personne")) {
506
			Info.display("Modification des personnes liées à la collection", info.toString());
536
			Info.display("Modification des personnes liées à la collection", info.toString());
507
		} else if (info.getType().equals("suppression_collection_a_personne")) {
537
		} else if (info.getType().equals("suppression_collection_a_personne")) {
508
			Info.display("Suppression des personnes liées à la collection", info.toString());
538
			Info.display("Suppression des personnes liées à la collection", info.toString());
-
 
539
		} else if (info.getType().equals("ajout_collection_a_personne")) {
-
 
540
			Info.display("Ajout des personnes liées à la collection", info.toString());
-
 
541
		} else if (info.getType().equals("liste_collection_a_personne")) {
-
 
542
			if (info.getDonnee(0) != null) {
-
 
543
				initialiser();
-
 
544
				collection.setPersonnesLiees((CollectionAPersonneListe) info.getDonnee(0));
509
		} else if (info.getType().equals("ajout_collection_a_personne")) {
545
				peupler();
510
			Info.display("Ajout des personnes liées à la collection", info.toString());
546
			}
Line 511... Line 547...
511
		}
547
		}
512
	}
548
	}
-
 
549
	
513
	
550
	public void peupler() {
514
	public void peupler() {
551
		grille.getStore().removeAll();
515
		initialiserCollection();
552
		grille.getStore().add(collection.getPersonnesLiees().toList());
Line 516... Line 553...
516
		layout();
553
		layout();
Line 523... Line 560...
523
		int nbrePersonne = grille.getStore().getCount();
560
		int nbrePersonne = grille.getStore().getCount();
Line 524... Line 561...
524
		
561
		
525
		if (nbrePersonne > 0) {
562
		if (nbrePersonne > 0) {
526
			for (int i = 0; i < nbrePersonne; i++) {
563
			for (int i = 0; i < nbrePersonne; i++) {
527
				CollectionAPersonne personne = grille.getStore().getAt(i);
564
				CollectionAPersonne personne = grille.getStore().getAt(i);
528
				if (personne.getIdRole().equals("")) {
565
				if (personne.get("_role_").equals("")) {
529
					personneNumero += (i != 0 ? ", " : "")+(i+1);
566
					personneNumero += (i != 0 ? ", " : "")+(i+1);
530
				}
567
				}
531
			}
568
			}
532
			if (!personneNumero.equals("")) {
569
			if (!personneNumero.equals("")) {
Line 536... Line 573...
536
		
573
		
537
		return messages;
574
		return messages;
Line 538... Line 575...
538
	}
575
	}
539
	
-
 
540
	public void collecter() {
576
	
541
		initialiserCollection();
577
	public void collecter() {
542
		if (etreAccede()) {
578
		if (etreAccede()) {
543
			int nbrePersonne = grille.getStore().getCount();
579
			int nbrePersonne = grille.getStore().getCount();
544
			for (int i = 0; i < nbrePersonne; i++) {
580
			for (int i = 0; i < nbrePersonne; i++) {
545
				CollectionAPersonne personne = grille.getStore().getAt(i);
581
				CollectionAPersonne relationCollectionPersonne = grille.getStore().getAt(i);
-
 
582
				if (relationCollectionPersonne.get("_etat_") != null) {
546
				// Seules les lignes ajoutées ou modifiées sont prises en compte.
583
					if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
547
				Record enregistrement = grille.getStore().getRecord(personne);
584
						// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
548
				if (grille.getStore().getModifiedRecords().contains(enregistrement) == true 
585
						personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne);
-
 
586
						Debug.log("AVANT:"+relationCollectionPersonne.getIdRole());
549
						|| (personne.get("etat") != null && personne.get("etat").equals(aDonnee.ETAT_AJOUTE) )) {
587
						
550
					
588
						CollectionAPersonne relationAAjouter = (CollectionAPersonne) relationCollectionPersonne.cloner(new CollectionAPersonne());
551
					// Gestion de l'id de la structure
589
						corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role
-
 
590
						Debug.log("APRES:"+relationAAjouter.getIdRole());
552
					if (mode.equals(Formulaire.MODE_MODIFIER)) {
591
						personnesAjoutees.put("id"+idGenere++, relationAAjouter);
553
						personne.setIdCollection(collection.getId());
-
 
554
					}
592
						GWT.log("Personne modifiées : "+relationAAjouter.getPersonne().getPrenom()+" "+relationAAjouter.getPersonne().getNom(), null);
555
					
593
					} 
556
					// Ajout de la personne dans la liste correspondant à son état (ajouté ou modifié)
594
					if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
557
					if (personne.get("etat") != null && personne.get("etat").equals(aDonnee.ETAT_AJOUTE)) {// Une personne ajoutée
-
 
558
						personnesAjoutees.put(""+i, personne);
595
						corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role
559
					} else {// Une personne modifiée
596
						personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne);
560
						personnesModifiees.put(personne.getId(), personne);
597
						GWT.log("Personne ajoutées : "+relationCollectionPersonne.getPersonne().getPrenom()+" "+relationCollectionPersonne.getPersonne().getNom(), null);
561
					}
598
					}
562
				} else {
599
					// Initialisation de la grille
563
					GWT.log("Personne non modifiées : "+personne.getPersonne().getPrenom()+" "+personne.getPersonne().getNom(), null);
600
					relationCollectionPersonne.set("_etat_", "");
-
 
601
				}
564
				}
602
			}
565
			}
603
			grille.getStore().commitChanges();
Line -... Line 604...
-
 
604
		}
-
 
605
	}
-
 
606
	
-
 
607
	private void corrigerChampsGrille(CollectionAPersonne relationCollectionPersonne) {
-
 
608
		String role = relationCollectionPersonne.get("_role_");
-
 
609
		String champModele = "nom";
-
 
610
		if (role.matches("[0-9]+")) {
-
 
611
			champModele = "id_valeur";
-
 
612
		}
-
 
613
		if (typeRelationCombo.getStore().findModel(champModele, role) != null) {
-
 
614
			String idRole = typeRelationCombo.getStore().findModel(champModele, role).getId();
-
 
615
			relationCollectionPersonne.setIdRole(idRole);
566
		}
616
		}
567
	}
617
	}
568
	
618
 
569
	public void soumettre() {
619
	public void soumettre() {
570
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
620
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
571
			if (personnesModifiees.size() == 0 && personnesAjoutees.size() == 0 && personnesSupprimees.size() == 0) {
-
 
572
				Info.display("Modification des personnes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
-
 
573
			} else {
-
 
574
				if (personnesModifiees.size() != 0) {
621
			if (personnesAjoutees.size() == 0 && personnesSupprimees.size() == 0) {
575
					mediateur.modifierCollectionAPersonne(this, personnesModifiees);
622
				Info.display("Modification des personnes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
576
				}
623
			} else {
577
				// Ajout des relations CollectionAPersonne
624
				// Ajout des relations CollectionAPersonne
578
				if (personnesAjoutees.size() != 0) {
625
				if (personnesAjoutees.size() != 0) {
579
					mediateur.ajouterCollectionAPersonne(this, collection.getId(), personnesAjoutees);
626
					mediateur.ajouterCollectionAPersonne(this, collection.getId(), personnesAjoutees);
580
				}
627
				}
-
 
628
				// Suppression des relations StructureAPersonne
581
				// Suppression des relations StructureAPersonne
629
				if (personnesSupprimees.size() != 0) {
582
				if (personnesSupprimees.size() != 0) {
630
					mediateur.supprimerCollectionAPersonne(this, personnesSupprimees);
583
					mediateur.supprimerCollectionAPersonne(this, personnesSupprimees);
631
					Debug.log("Nbre personnes supprimées :"+personnesSupprimees.size());
584
				}
632
				}
Line 585... Line 633...
585
			}
633
			}
586
		}
634
		}
587
	}
635
	}
-
 
636
	
-
 
637
	private void obtenirPersonnesSaisis(String nom) {
-
 
638
		mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); 
-
 
639
	}
-
 
640
	
-
 
641
	private void actualiserGrille() {
-
 
642
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
643
			mediateur.selectionnerCollectionAPersonne(this, collection.getId(), null);
-
 
644
		} else {
588
	
645
			grille.getStore().removeAll();