Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1453 Rev 1475
Line 1... Line 1...
1
package org.tela_botanica.client.vues.collection;
1
package org.tela_botanica.client.vues.collection;
Line 2... Line 2...
2
 
2
 
-
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.HashMap;
-
 
5
import java.util.List;
Line 4... Line 6...
4
import java.util.List;
6
import java.util.Map;
5
 
7
 
6
import org.tela_botanica.client.ComposantClass;
8
import org.tela_botanica.client.ComposantClass;
7
import org.tela_botanica.client.Mediateur;
9
import org.tela_botanica.client.Mediateur;
Line 407... Line 409...
407
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
409
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
408
		modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
410
		modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
409
		modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
411
		modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
410
		modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
412
		modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
Line -... Line 413...
-
 
413
		
-
 
414
		HashMap<String, String> virtualFields = new HashMap<String, String>();
-
 
415
		virtualFields.put("_role_", "ccap_id_role");
-
 
416
		virtualFields.put("_etat_", "");
411
		
417
		
412
		// Grille
418
		// Grille
Line 413... Line 419...
413
		GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
419
		GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, virtualFields, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
414
		
420
		
415
		// Rajouter des écouteurs
421
		// Rajouter des écouteurs
416
		grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
422
		grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
Line 435... Line 441...
435
		typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire());
441
		typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire());
Line 436... Line 442...
436
 
442
 
Line 437... Line 443...
437
		CellEditor editeurRelation = new CellEditor(typeRelationCombo) {
443
		CellEditor editeurRelation = new CellEditor(typeRelationCombo) {
438
			
444
			
439
			// Sert à retourner un ModelData à partir d'une String (la string est passée par le Renderer)
445
			// Sert à retourner un ModelData à partir d'une String (la string est passée par le Renderer)
440
			public Object preProcessValue(Object valeur) {				
446
			public Object preProcessValue(Object valeur) {		
441
				Valeur retour = null;
447
				Valeur retour = null;
442
				if (valeur != null ) {
448
				if (valeur != null ) {
443
					if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
449
					if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
Line 451... Line 457...
451
				return retour;
457
				return retour;
452
			}
458
			}
Line 453... Line 459...
453
			
459
			
454
			// Sert à retourner un String à Partir d'une Valeur
460
			// Sert à retourner un String à Partir d'une Valeur
455
			// en postProcess on remplace la valeur du champ par l'Id de la valeur au lieu de son Nom
461
			// en postProcess on remplace la valeur du champ par l'Id de la valeur au lieu de son Nom
456
			public Object postProcessValue(Object valeur) {				
462
			public Object postProcessValue(Object valeur) {	
457
				String retour = null;
463
				String retour = null;
458
				if (valeur != null ) {
464
				if (valeur != null ) {
459
					if (valeur instanceof Valeur) {
465
					if (valeur instanceof Valeur) {
460
						Valeur valeurOntologie = (Valeur) valeur;
466
						Valeur valeurOntologie = (Valeur) valeur;
Line 468... Line 474...
468
		
474
		
469
		// Sert à afficher le nom du role au lieu de l'id
475
		// Sert à afficher le nom du role au lieu de l'id
470
		GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() {
476
		GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() {
471
			public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) {
477
			public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) {
472
				// Gestion du texte afficher dans la cellule				
478
				// Gestion du texte afficher dans la cellule				
473
				CollectionAPersonne cap = new CollectionAPersonne(modele);
-
 
474
 
479
				Map<String, Object> a = modele.getProperties();
475
				String role = cap.getIdRole();
-
 
476
				modele.set("_role_", role);
-
 
477
 
480
				String role = modele.get("_role_");
478
				if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) {					
481
				if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) {					
479
					role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
482
					role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
480
				}
-
 
481
 
483
				}
482
				return role;
484
				return role;
483
			}
485
			}
484
		};
486
		};
485
		ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
487
		ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
Line 560... Line 562...
560
				// En mode AJOUT, il ne peut que y avoir des personnes liées ajoutées
562
				// En mode AJOUT, il ne peut que y avoir des personnes liées ajoutées
561
				mediateur.ajouterCollectionAPersonne(this, collectionId, personnesAjoutees);
563
				mediateur.ajouterCollectionAPersonne(this, collectionId, personnesAjoutees);
562
			}
564
			}
563
		} else if (type.equals("personne_modifiee")) {
565
		} else if (type.equals("personne_modifiee")) {
564
			if (info.getDonnee(0) != null) {
566
			if (info.getDonnee(0) != null) {
565
				Personne personne = (Personne) info.getDonnee(0);
567
				Personne personne = (Personne) info.getDonnee(0);				
566
				ModelData personneDansGrille = grille.getStore().findModel("id_personne", personne.getId());
568
				ModelData personneDansGrille = grille.getStore().findModel("ccap_id_personne", personne.getId());
567
				int index = grille.getStore().indexOf(personneDansGrille);
569
				int index = grille.getStore().indexOf(personneDansGrille);
568
				grille.getStore().remove(personneDansGrille);
570
				grille.getStore().remove(personneDansGrille);
569
				String role = (String) personneDansGrille.get("_role_");
571
				String role = (String) personneDansGrille.get("_role_");
570
				ajouterDansGrille(personne, role, index);
572
				ajouterDansGrille(personne, role, index);
571
			}
573
			}
Line 589... Line 591...
589
		String personneNumero = "";
591
		String personneNumero = "";
590
		int nbrePersonne = grille.getStore().getCount();
592
		int nbrePersonne = grille.getStore().getCount();
Line 591... Line 593...
591
		
593
		
592
		if (nbrePersonne > 0) {
594
		if (nbrePersonne > 0) {
593
			for (int i = 0; i < nbrePersonne; i++) {
-
 
594
				CollectionAPersonne personne = new CollectionAPersonne(grille.getStore().getAt(i));
595
			for (int i = 0; i < nbrePersonne; i++) {
595
				if (personne.get("_role_").equals("")) {
596
				if (grille.getStore().getAt(i).get("_role_").equals("")) {
596
					personneNumero += (i != 0 ? ", " : "")+(i+1);
597
					personneNumero += (i != 0 ? ", " : "")+(i+1);
597
				}
598
				}
598
			}
599
			}
599
			if (!personneNumero.equals("")) {
600
			if (!personneNumero.equals("")) {
Line 607... Line 608...
607
	public void collecter() {
608
	public void collecter() {
608
		if (etreAccede()) {
609
		if (etreAccede()) {
609
			int nbrePersonne = grille.getStore().getCount();
610
			int nbrePersonne = grille.getStore().getCount();
610
			for (int i = 0; i < nbrePersonne; i++) {
611
			for (int i = 0; i < nbrePersonne; i++) {
611
				CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i));
612
				CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i));
-
 
613
				relationCollectionPersonne.set("_role_", grille.getStore().getAt(i).get("_role_"));
Line 612... Line 614...
612
				
614
				
Line 613... Line 615...
613
				if (relationCollectionPersonne.get("_etat_") != null) {
615
				if (grille.getStore().getAt(i).get("_etat_") != null) {
614
					
616
					
615
					if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
617
					if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
Line 616... Line 618...
616
						// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
618
						// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
617
						personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne);
619
						personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne);
618
						
620
						
619
						CollectionAPersonne relationAAjouter = (CollectionAPersonne) relationCollectionPersonne.cloner(new CollectionAPersonne());
621
						CollectionAPersonne relationAAjouter = (CollectionAPersonne) relationCollectionPersonne.cloner(new CollectionAPersonne());
620
						corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role
622
						corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role
621
						personnesAjoutees.put("id"+idGenere++, relationAAjouter);
623
						personnesAjoutees.put("id"+idGenere++, relationAAjouter);
622
					} 
624
					} 
623
					if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
625
					if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
624
						corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role
626
						corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role
625
						personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne);
627
						personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne);
626
					}
628
					}
627
					// Initialisation de la grille
629
					// Initialisation de la grille
628
					relationCollectionPersonne.set("_etat_", "");
630
					grille.getStore().getAt(i).set("_etat_", "");
629
				}
631
				}
630
			}
632
			}