Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 991 Rev 1003
Line 1... Line 1...
1
package org.tela_botanica.client.vues.personne;
1
package org.tela_botanica.client.vues.personne;
Line 2... Line 2...
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
Line -... Line 4...
-
 
4
import java.util.List;
4
import java.util.List;
5
 
5
 
6
import org.tela_botanica.client.ComposantClass;
6
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.images.Images;
8
import org.tela_botanica.client.images.Images;
-
 
9
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
10
import org.tela_botanica.client.modeles.Information;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Valeur;
-
 
12
import org.tela_botanica.client.modeles.ValeurListe;
9
import org.tela_botanica.client.modeles.Information;
13
import org.tela_botanica.client.modeles.aDonnee;
10
import org.tela_botanica.client.modeles.aDonnee;
14
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
11
import org.tela_botanica.client.modeles.personne.Personne;
15
import org.tela_botanica.client.modeles.personne.Personne;
12
import org.tela_botanica.client.modeles.publication.Publication;
16
import org.tela_botanica.client.modeles.publication.Publication;
13
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
17
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
Line 37... Line 41...
37
import com.extjs.gxt.ui.client.widget.button.Button;
41
import com.extjs.gxt.ui.client.widget.button.Button;
38
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
42
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
39
import com.extjs.gxt.ui.client.widget.form.ComboBox;
43
import com.extjs.gxt.ui.client.widget.form.ComboBox;
40
import com.extjs.gxt.ui.client.widget.form.FormPanel;
44
import com.extjs.gxt.ui.client.widget.form.FormPanel;
41
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
45
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
-
 
46
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
42
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
47
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
43
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
48
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
44
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
49
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
45
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
50
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
46
import com.extjs.gxt.ui.client.widget.grid.Grid;
51
import com.extjs.gxt.ui.client.widget.grid.Grid;
Line 65... Line 70...
65
	private PublicationAPersonneListe publicationsAjoutees = null;
70
	private PublicationAPersonneListe publicationsAjoutees = null;
66
	private PublicationAPersonneListe publicationsSupprimees = null;
71
	private PublicationAPersonneListe publicationsSupprimees = null;
67
	private ComboBox<Publication> publicationsSaisiesComboBox = null;
72
	private ComboBox<Publication> publicationsSaisiesComboBox = null;
68
	private Button publicationsBoutonSupprimer = null;
73
	private Button publicationsBoutonSupprimer = null;
69
	private Button publicationsBoutonModifier = null;
74
	private Button publicationsBoutonModifier = null;
-
 
75
	private ComboBox<Valeur> typeRelationCombo = null;
Line 70... Line 76...
70
	
76
	
Line 71... Line 77...
71
	private FenetreForm fenetreFormulaire = null;
77
	private FenetreForm fenetreFormulaire = null;
72
	
78
	
Line 79... Line 85...
79
		panneauPrincipal = creerPanneauContenantGrille();
85
		panneauPrincipal = creerPanneauContenantGrille();
80
		barreOutils = creerBarreOutilsGrille();
86
		barreOutils = creerBarreOutilsGrille();
81
		panneauPrincipal.setTopComponent(barreOutils);
87
		panneauPrincipal.setTopComponent(barreOutils);
82
		grille = creerGrille();
88
		grille = creerGrille();
83
  		panneauPrincipal.add(grille);
89
  		panneauPrincipal.add(grille);
-
 
90
  		mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
84
		add(panneauPrincipal);
91
		add(panneauPrincipal);
Line 85... Line 92...
85
		
92
		
86
		initialiser();
93
		initialiser();
Line 255... Line 262...
255
		return bouton;
262
		return bouton;
256
	}
263
	}
Line 257... Line 264...
257
	
264
	
258
	private void actualiserGrille() {
265
	private void actualiserGrille() {
259
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
266
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
260
			mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), PublicationAPersonne.ROLE_SUJET);
267
			mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), "%");
261
		} else {
268
		} else {
262
			grille.getStore().removeAll();
269
			grille.getStore().removeAll();
263
			layout();
270
			layout();
264
		}
271
		}
Line 369... Line 376...
369
		expansionPlugin.setTemplate(infoTpl);
376
		expansionPlugin.setTemplate(infoTpl);
Line 370... Line 377...
370
		
377
		
371
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
378
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
372
		colonnes.add(expansionPlugin);
379
		colonnes.add(expansionPlugin);
-
 
380
		colonnes.add(numeroPlugin);
-
 
381
		
-
 
382
		
-
 
383
		typeRelationCombo = new ComboBox<Valeur>();
-
 
384
		typeRelationCombo.setForceSelection(true);
-
 
385
		typeRelationCombo.setTriggerAction(TriggerAction.ALL);
-
 
386
		typeRelationCombo.setDisplayField("nom");
-
 
387
		typeRelationCombo.setStore(new ListStore<Valeur>());
-
 
388
		typeRelationCombo.setEditable(false);
-
 
389
		typeRelationCombo.addStyleName(ComposantClass.OBLIGATOIRE);
-
 
390
		typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire());
-
 
391
		
-
 
392
		CellEditor editeurRelation = new CellEditor(typeRelationCombo) {  
-
 
393
			@Override  
-
 
394
			public Object preProcessValue(Object valeur) {  
-
 
395
				Valeur retour = null;
-
 
396
				if (valeur != null ) {
-
 
397
					Debug.log(valeur.toString());
-
 
398
					if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
-
 
399
						retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
-
 
400
					} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
-
 
401
						retour = typeRelationCombo.getStore().findModel("abr", valeur.toString());
-
 
402
					} else if (typeRelationCombo.getStore().findModel("id_valeur", valeur.toString()) != null) {
-
 
403
						retour = typeRelationCombo.getStore().findModel("id_valeur", valeur.toString());
-
 
404
					}
-
 
405
				}
-
 
406
				return retour;
-
 
407
			}  
-
 
408
 
-
 
409
			@Override  
-
 
410
			public Object postProcessValue(Object valeur) {  
-
 
411
				String retour = null;
-
 
412
				if (valeur != null ) {
-
 
413
					if (valeur instanceof Valeur) {
-
 
414
						Valeur valeurOntologie = (Valeur) valeur;
-
 
415
						retour = valeurOntologie.getId();
-
 
416
					}
-
 
417
				}
-
 
418
				return retour;  
-
 
419
			}  
-
 
420
		};
-
 
421
		
-
 
422
		GridCellRenderer<PublicationAPersonne> relationRendu = new GridCellRenderer<PublicationAPersonne>() {
-
 
423
			@Override
-
 
424
			public String render(PublicationAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grille) {
-
 
425
				// Gestion du texte afficher dans la cellule
-
 
426
				String role = modele.get("_role_");
-
 
427
				if (typeRelationCombo.getStore() != null && role.matches("[0-9]+")) {
-
 
428
					role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
-
 
429
				}
-
 
430
				modele.set("_role_", role);
-
 
431
				
-
 
432
				return role;
-
 
433
			}
-
 
434
		};
-
 
435
		
-
 
436
		
-
 
437
		ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
-
 
438
		typeRelationColonne.setEditor(editeurRelation);
-
 
439
		typeRelationColonne.setRenderer(relationRendu);
-
 
440
		colonnes.add(typeRelationColonne);
373
		colonnes.add(numeroPlugin);
441
		
374
		colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
442
		colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
375
		colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
443
		colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
376
		colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
444
		colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
377
		colonnes.add(creerColonneEditeur());
445
		colonnes.add(creerColonneEditeur());
Line 442... Line 510...
442
	
510
	
443
	public void rafraichir(Object nouvellesDonnees) {
511
	public void rafraichir(Object nouvellesDonnees) {
444
		if (nouvellesDonnees instanceof Information) {
512
		if (nouvellesDonnees instanceof Information) {
445
			Information info = (Information) nouvellesDonnees;
513
			Information info = (Information) nouvellesDonnees;
-
 
514
			rafraichirInformation(info);
-
 
515
		} else if (nouvellesDonnees instanceof ValeurListe)	{
-
 
516
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;			
-
 
517
			if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication")))	{
-
 
518
				Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
446
			rafraichirInformation(info);
519
			}
447
		} else if (nouvellesDonnees instanceof PublicationListe) {
520
		} else if (nouvellesDonnees instanceof PublicationListe) {
448
			PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
521
			PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
449
			rafraichirPublicationListe(listePublications);
522
			rafraichirPublicationListe(listePublications);
450
		} else {
523
		} else {
Line 491... Line 564...
491
		}
564
		}
492
	}
565
	}
Line 493... Line 566...
493
 
566
 
494
	public void peupler() {
567
	public void peupler() {
495
		grille.getStore().removeAll();
-
 
496
		System.out.println("publica lié" + personneSelectionnee.getPublicationsLiees().toList());
568
		grille.getStore().removeAll();
497
		grille.getStore().add(personneSelectionnee.getPublicationsLiees().toList());
569
		grille.getStore().add(personneSelectionnee.getPublicationsLiees().toList());
498
		layout();
570
		layout();
Line 499... Line 571...
499
		Info.display(i18nC.chargementPublication(), i18nC.ok());
571
		Info.display(i18nC.chargementPublication(), i18nC.ok());
Line 532... Line 604...
532
				Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
604
				Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
533
			} else {
605
			} else {
534
				// Ajout des relations CollectionAPublication
606
				// Ajout des relations CollectionAPublication
535
				if (publicationsAjoutees.size() != 0) {
607
				if (publicationsAjoutees.size() != 0) {
536
					//TODO : utiliser le role d'une liste déroulante
608
					//TODO : utiliser le role d'une liste déroulante
537
					mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), PublicationAPersonne.ROLE_SUJET);
609
					mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), null);
538
				}
610
				}
539
				// Suppression des relations CollectionAPublication
611
				// Suppression des relations CollectionAPublication
540
				if (publicationsSupprimees.size() != 0) {
612
				if (publicationsSupprimees.size() != 0) {
541
					// TODO : fix under 
-
 
542
					mediateur.supprimerPublicationAPersonne(this, publicationsSupprimees);
613
					mediateur.supprimerPublicationAPersonne(this, publicationsSupprimees);
543
					/*Debug.log("Nbre publications supprimées :"+publicationsSupprimees.size());*/
-
 
544
				}
614
				}
545
			}
615
			}
546
		}
616
		}
547
	}
617
	}