Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 977 Rev 1284
Line 2... Line 2...
2
 
2
 
3
import java.util.Collection;
3
import java.util.Collection;
4
import java.util.HashMap;
4
import java.util.HashMap;
5
import java.util.Iterator;
5
import java.util.Iterator;
6
import java.util.LinkedList;
6
import java.util.LinkedList;
Line 7... Line 7...
7
import java.util.MissingResourceException;
7
import java.util.List;
8
 
8
 
9
import org.tela_botanica.client.ComposantId;
9
import org.tela_botanica.client.ComposantId;
10
import org.tela_botanica.client.Mediateur;
10
import org.tela_botanica.client.Mediateur;
11
import org.tela_botanica.client.RegistreId;
11
import org.tela_botanica.client.RegistreId;
12
import org.tela_botanica.client.configuration.Configuration;
12
import org.tela_botanica.client.configuration.Configuration;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
14
import org.tela_botanica.client.modeles.Valeur;
14
import org.tela_botanica.client.modeles.Valeur;
15
import org.tela_botanica.client.modeles.ValeurListe;
15
import org.tela_botanica.client.modeles.ValeurListe;
-
 
16
import org.tela_botanica.client.modeles.personne.Personne;
-
 
17
import org.tela_botanica.client.modeles.publication.Publication;
16
import org.tela_botanica.client.modeles.personne.Personne;
18
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
Line 17... Line 19...
17
import org.tela_botanica.client.util.Debug;
19
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
18
import org.tela_botanica.client.vues.DetailVue;
20
import org.tela_botanica.client.vues.DetailVue;
19
 
21
 
Line 39... Line 41...
39
	
41
	
40
	private TabItem tabIdentite;
42
	private TabItem tabIdentite;
41
	private TabItem tabAdresse;
43
	private TabItem tabAdresse;
42
	private TabItem tabInfosNat;
44
	private TabItem tabInfosNat;
-
 
45
	private TabItem tabLogos;
43
	private TabItem tabLogos;
46
	private TabItem tabPublications;
44
 
47
	
Line 45... Line 48...
45
	private HashMap hmLabelFieldRegion = new HashMap();
48
	private HashMap hmLabelFieldRegion = new HashMap();
46
	
49
	
47
	private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
50
	private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
Line -... Line 51...
-
 
51
	private boolean ontologieRecue = false;
-
 
52
	private Personne personneAAfficher = null;
-
 
53
 
Line 48... Line 54...
48
	private boolean ontologieRecue = false;
54
	private boolean personneAffichee = false;
49
	private Personne personneAAfficher = null;
55
	private String tableauPublicationsLieesTpl = "";
50
 
56
	private String lignePublicationLieeTpl = "";
-
 
57
	
51
	
58
	private void chargerOntologie() {
Line 52... Line 59...
52
	private void chargerOntologie() {
59
		mediateur.obtenirListeValeurEtRafraichir(this, "pays");
53
		mediateur.obtenirListeValeurEtRafraichir(this, "pays");
60
		mediateur.obtenirListeValeurEtRafraichir(this, "tel");
54
		mediateur.obtenirListeValeurEtRafraichir(this, "tel");
61
		mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
55
	}
-
 
56
	
-
 
Line 57... Line 62...
57
	
62
	}
Line 58... Line 63...
58
	public PersonneDetailVue(Mediateur mediateur) {
63
	
59
		super(mediateur);
64
	
Line 81... Line 86...
81
		tabAdresse.setScrollMode(Scroll.AUTO);
86
		tabAdresse.setScrollMode(Scroll.AUTO);
Line 82... Line 87...
82
 
87
 
83
		tabInfosNat = new TabItem(i18nC.personneInfoNat());
88
		tabInfosNat = new TabItem(i18nC.personneInfoNat());
Line -... Line 89...
-
 
89
		tabInfosNat.setScrollMode(Scroll.AUTO);
-
 
90
 
-
 
91
		//Greg : ajout d'un résumé des publications
-
 
92
		tabPublications = new TabItem(i18nC.tabPublications());
-
 
93
		tabPublications.setScrollMode(Scroll.AUTO);
84
		tabInfosNat.setScrollMode(Scroll.AUTO);
94
		tabPublications.setLayout(new FlowLayout());
85
 
95
		
86
		tabLogos = new TabItem(i18nC.personneLogos());
96
		tabLogos = new TabItem(i18nC.personneLogos());
Line 87... Line 97...
87
		tabLogos.setScrollMode(Scroll.AUTO);
97
		tabLogos.setScrollMode(Scroll.AUTO);
Line 92... Line 102...
92
		tabPanel.setBodyBorder(false);
102
		tabPanel.setBodyBorder(false);
Line 93... Line 103...
93
 
103
 
94
		tabPanel.add(tabIdentite);
104
		tabPanel.add(tabIdentite);
95
		tabPanel.add(tabAdresse);
105
		tabPanel.add(tabAdresse);
-
 
106
		tabPanel.add(tabInfosNat);
96
		tabPanel.add(tabInfosNat);
107
		tabPanel.add(tabPublications);
Line 97... Line 108...
97
		tabPanel.add(tabLogos);
108
		tabPanel.add(tabLogos);
98
 
109
 
99
		panneauPrincipal.add(tabPanel);
110
		panneauPrincipal.add(tabPanel);
Line 100... Line 111...
100
		add(panneauPrincipal);
111
		add(panneauPrincipal);
101
	}
112
	}
102
 
113
 
-
 
114
	public void afficherDetailPersonne(Personne personne) {
-
 
115
		if (personne != null) {
-
 
116
			String tplEntete = initialiserTplEntete();
Line 103... Line 117...
103
	public void afficherDetailPersonne(Personne personne) {
117
			
104
		if (personne != null) {
118
			//Sélection des publication à personne
105
			String tplEntete = initialiserTplEntete();
119
			mediateur.selectionnerPublicationAPersonne(this, null, personne.getId(), new LinkedList());
Line 138... Line 152...
138
			String tplIdentite = initialiserTplIdentite();
152
			String tplIdentite = initialiserTplIdentite();
Line 139... Line 153...
139
 
153
 
140
			Params tabIdentiteParams = new Params();
154
			Params tabIdentiteParams = new Params();
141
			tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
155
			tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
142
			tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
156
			tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
143
			tabIdentiteParams.set("naissance_date", personne.getNaissanceDate());
157
			tabIdentiteParams.set("naissance_date", personne.getAnneeOuDateNaiss().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateNaiss());
144
			tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu"));
158
			tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu"));
145
			String tplDeces = "";
159
			String tplDeces = "";
146
			if (personne.estDecedee())	{
160
			if (personne.estDecedee())	{
147
				tplDeces = " <h2>Décès:</h2>"
161
				tplDeces = " <h2>Décès:</h2>"
Line 150... Line 164...
150
						+ ":</b></span> {deces_date}<br />"
164
						+ ":</b></span> {deces_date}<br />"
151
						+ " 	 <span><b>"
165
						+ " 	 <span><b>"
152
						+ i18nC.personneLieuDeces()
166
						+ i18nC.personneLieuDeces()
153
						+ ":</b></span> {deces_lieu}<br /><br />";
167
						+ ":</b></span> {deces_lieu}<br /><br />";
Line 154... Line 168...
154
				
168
				
155
				tabIdentiteParams.set("deces_date", personne.getDecesDate());
169
				tabIdentiteParams.set("deces_date", personne.getAnneeOuDateDeces().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateDeces());
156
				tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
170
				tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
Line 157... Line 171...
157
			}
171
			}
158
			
172
			
Line 240... Line 254...
240
			tabAdresse.setStyleAttribute("padding", "15px");
254
			tabAdresse.setStyleAttribute("padding", "15px");
Line 241... Line 255...
241
 
255
 
242
			// Infos naturalistes :Biographie, Spécialité (typé)
256
			// Infos naturalistes :Biographie, Spécialité (typé)
243
			String tplInfosNat = "<div class='{css_corps}'>"
257
			String tplInfosNat = "<div class='{css_corps}'>"
244
					+ "	<div class='{css_fieldset}'>" + "		<h2>"
258
					+ "	<div class='{css_fieldset}'>" + "		<h2>"
-
 
259
					+ i18nC.personneBiographie() + "</h2>"
-
 
260
					+ "			{biographie}" + "		"
245
					+ i18nC.personneSpecialite() + "</h1>"
261
					+ "<h2>" + i18nC.personneSpecialite() + "</h2>"
246
					+ "			{specialites}" + "		<h2>"
262
					+ "			{specialites}" + "	<h2>"
247
					+ i18nC.personneRecolte() + "</h2>"
263
					+ i18nC.personneRecolte() + "</h2>"
248
					+ "		{recoltes}" + "  </div>" + "</div>";
264
					+ "		{recoltes}" + "  </div>" + "</div>";
Line 249... Line 265...
249
			Params prmInfosNat = new Params();
265
			Params prmInfosNat = new Params();
250
 
266
 
251
			// TODO : replace id region par valeur
267
			prmInfosNat.set("biographie", personne.get("biographie"));
252
 
268
			
Line 253... Line 269...
253
			String specialite = construireTxtTruck(personne.getSpecialite());
269
			String specialite = construireTxtTruck(personne.getSpecialite());
254
			prmInfosNat.set("specialites", specialite);
270
			prmInfosNat.set("specialites", specialite);
Line 324... Line 340...
324
			// Ajout au fieldSet
340
			// Ajout au fieldSet
325
			fs.add(tf);
341
			fs.add(tf);
326
		}
342
		}
327
	}
343
	}
Line -... Line 344...
-
 
344
	
-
 
345
	
-
 
346
	private void initialiserTableauPublicationsLieesTpl() {
-
 
347
		
-
 
348
		tableauPublicationsLieesTpl =
-
 
349
			"<div class='{css_corps}'>" +
-
 
350
			"	<h2>{i18n_titre_publication}</h2>"+
-
 
351
			"	<table>"+
-
 
352
			"	<thead>"+
-
 
353
			"		<tr>" +
-
 
354
			"			<th>{i18n_relation}</th>" +
-
 
355
			"			<th>{i18n_auteur}</th>" +
-
 
356
			"			<th>{i18n_titre}</th>" +
-
 
357
			"			<th>{i18n_revue}</th>" +
-
 
358
			"			<th>{i18n_editeur}</th>" +
-
 
359
			"			<th>{i18n_annee}</th>" +
-
 
360
			"			<th>{i18n_nvt}</th>" +
-
 
361
			"			<th>{i18n_fascicule}</th>" +
-
 
362
			"			<th>{i18n_page}</th>" +
-
 
363
			"		</tr>"+
-
 
364
			"	</thead>"+
-
 
365
			"	<tbody>"+
-
 
366
			"		{lignes}"+
-
 
367
			"	</tbody>"+
-
 
368
			"</table>";
-
 
369
	}
-
 
370
	
-
 
371
	private void initialiserLignePublicationLieeTpl() {
-
 
372
		lignePublicationLieeTpl =
-
 
373
			"<tr>"+
-
 
374
			"	<td>{relation}</td>"+
-
 
375
			"	<td>{auteur}</td>"+
-
 
376
			"	<td>{titre}</td>"+
-
 
377
			"	<td>{revue}</td>"+
-
 
378
			"	<td>{editeur}</td>"+
-
 
379
			"	<td>{annee}</td>"+
-
 
380
			"	<td>{nvt}</td>"+
-
 
381
			"	<td>{fascicule}</td>"+
-
 
382
			"	<td>{page}</td>"+
-
 
383
			"</tr>";
-
 
384
	}
-
 
385
	/**
-
 
386
	 * @author greg
-
 
387
	 * Rempli l'onglet des publications liées
-
 
388
	 * @param listePublications la liste des publications
-
 
389
	 */
-
 
390
	private void afficherPublications(PublicationAPersonneListe listePublications)	{
-
 
391
		List<PublicationAPersonne> publicationsLiees = listePublications.toList();
-
 
392
		Iterator<PublicationAPersonne> iterateur = publicationsLiees.iterator();
-
 
393
		
-
 
394
		//Onglet Publications
-
 
395
		initialiserTableauPublicationsLieesTpl();
-
 
396
		Params paramsPublis = new Params();
-
 
397
		
-
 
398
		String contenuLignes = "";
-
 
399
		while (iterateur.hasNext())	{
-
 
400
			initialiserLignePublicationLieeTpl();
-
 
401
			
-
 
402
			PublicationAPersonne publicationAPersonneCourante = iterateur.next();
-
 
403
			Publication publication = publicationAPersonneCourante.getPublicationLiee();
-
 
404
			
-
 
405
			Params ligneParams = new Params();
-
 
406
			ligneParams.set("relation", construireTxtListeOntologie(publicationAPersonneCourante.getRole()));
-
 
407
			ligneParams.set("auteur", publication.getAuteur());
-
 
408
			ligneParams.set("titre", publication.getTitre());
-
 
409
			ligneParams.set("revue", publication.getCollection());
-
 
410
			ligneParams.set("editeur", publication.getEditeur());
-
 
411
			ligneParams.set("annee", publication.getAnneeParution());
-
 
412
			ligneParams.set("nvt", publication.getIndicationNvt());
-
 
413
			ligneParams.set("fascicule", publication.getFascicule());
-
 
414
			ligneParams.set("page", publication.getPages());
-
 
415
			contenuLignes += Format.substitute(lignePublicationLieeTpl, ligneParams);
-
 
416
		}
-
 
417
		
-
 
418
		paramsPublis.set("lignes", contenuLignes);
-
 
419
		paramsPublis.set("i18n_titre_publication", i18nC.tabPublications());
-
 
420
		paramsPublis.set("i18n_relation", i18nC.publicationAuteurs());
-
 
421
		paramsPublis.set("i18n_auteur", i18nC.publicationAuteurs());
-
 
422
		paramsPublis.set("i18n_titre", i18nC.publicationTitre());
-
 
423
		paramsPublis.set("i18n_revue", i18nC.publicationRevueCollection());
-
 
424
		paramsPublis.set("i18n_editeur", i18nC.publicationEditeur());
-
 
425
		paramsPublis.set("i18n_annee", i18nC.publicationDateParution());
-
 
426
		paramsPublis.set("i18n_nvt", i18nC.publicationNvt());
-
 
427
		paramsPublis.set("i18n_fascicule", i18nC.publicationFascicule());
-
 
428
		paramsPublis.set("i18n_page", i18nC.publicationPage());
-
 
429
		afficherOnglet(tableauPublicationsLieesTpl, paramsPublis, tabPublications);
-
 
430
		
-
 
431
	}
328
	
432
	
-
 
433
	public void rafraichir(Object nouvellesDonnees) {
-
 
434
		
-
 
435
		// FIXME : Ci-dessous, on utilise le booléen personneAffichee pour éviter un affichage répété de personnes.
-
 
436
		// Se règlerait avec une gestion Synchrone/Asynchrone
329
	public void rafraichir(Object nouvellesDonnees) {
437
		
330
		// Si on a reçu une personne on en affiche les détails
438
		// Si on a reçu une personne on en affiche les détails
331
		if (nouvellesDonnees instanceof Personne) {
439
		if (nouvellesDonnees instanceof Personne) {
-
 
440
			personneAAfficher = (Personne) nouvellesDonnees;
332
			personneAAfficher = (Personne) nouvellesDonnees;
441
			personneAffichee = false;
333
		} else if (nouvellesDonnees instanceof ValeurListe) {
442
		} else if (nouvellesDonnees instanceof ValeurListe) {
334
			ValeurListe ontologieReceptionnee = (ValeurListe) nouvellesDonnees;
443
			ValeurListe ontologieReceptionnee = (ValeurListe) nouvellesDonnees;
335
			ajouterListeValeursAOntologie(ontologieReceptionnee);
444
			ajouterListeValeursAOntologie(ontologieReceptionnee);
Line 356... Line 465...
356
						}
465
						}
Line 357... Line 466...
357
 
466
 
358
					}
467
					}
359
				}
468
				}
-
 
469
			}
-
 
470
		} else if (nouvellesDonnees instanceof PublicationAPersonneListe)	{
360
			}
471
			afficherPublications((PublicationAPersonneListe) nouvellesDonnees);
Line 361... Line 472...
361
		}
472
		}
362
		
473
		
-
 
474
		if (ontologieRecue && personneAAfficher != null && personneAffichee == false)	{
363
		if (ontologieRecue && personneAAfficher != null)	{
475
			afficherDetailPersonne(personneAAfficher);
364
			afficherDetailPersonne(personneAAfficher);
476
			personneAffichee = true;
Line 365... Line 477...
365
		}
477
		}
366
	}
478
	}