Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1283 → Rev 1284

/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java
4,7 → 4,7
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.MissingResourceException;
import java.util.List;
 
import org.tela_botanica.client.ComposantId;
import org.tela_botanica.client.Mediateur;
14,7 → 14,9
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.modeles.publication.Publication;
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
import org.tela_botanica.client.vues.DetailVue;
 
import com.extjs.gxt.ui.client.Registry;
41,7 → 43,8
private TabItem tabAdresse;
private TabItem tabInfosNat;
private TabItem tabLogos;
 
private TabItem tabPublications;
private HashMap hmLabelFieldRegion = new HashMap();
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
48,10 → 51,14
private boolean ontologieRecue = false;
private Personne personneAAfficher = null;
 
private boolean personneAffichee = false;
private String tableauPublicationsLieesTpl = "";
private String lignePublicationLieeTpl = "";
private void chargerOntologie() {
mediateur.obtenirListeValeurEtRafraichir(this, "pays");
mediateur.obtenirListeValeurEtRafraichir(this, "tel");
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
}
58,8 → 65,6
public PersonneDetailVue(Mediateur mediateur) {
super(mediateur);
chargerOntologie();
mediateur.obtenirListeValeurEtRafraichir(this, "pays");
 
setLayout(new FitLayout());
 
83,6 → 88,11
tabInfosNat = new TabItem(i18nC.personneInfoNat());
tabInfosNat.setScrollMode(Scroll.AUTO);
 
//Greg : ajout d'un résumé des publications
tabPublications = new TabItem(i18nC.tabPublications());
tabPublications.setScrollMode(Scroll.AUTO);
tabPublications.setLayout(new FlowLayout());
tabLogos = new TabItem(i18nC.personneLogos());
tabLogos.setScrollMode(Scroll.AUTO);
tabLogos.setLayout(new FlowLayout());
94,6 → 104,7
tabPanel.add(tabIdentite);
tabPanel.add(tabAdresse);
tabPanel.add(tabInfosNat);
tabPanel.add(tabPublications);
tabPanel.add(tabLogos);
 
panneauPrincipal.add(tabPanel);
103,6 → 114,9
public void afficherDetailPersonne(Personne personne) {
if (personne != null) {
String tplEntete = initialiserTplEntete();
//Sélection des publication à personne
mediateur.selectionnerPublicationAPersonne(this, null, personne.getId(), new LinkedList());
 
Params enteteParams = new Params();
enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
140,7 → 154,7
Params tabIdentiteParams = new Params();
tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
tabIdentiteParams.set("naissance_date", personne.getNaissanceDate());
tabIdentiteParams.set("naissance_date", personne.getAnneeOuDateNaiss().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateNaiss());
tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu"));
String tplDeces = "";
if (personne.estDecedee()) {
152,7 → 166,7
+ i18nC.personneLieuDeces()
+ ":</b></span> {deces_lieu}<br /><br />";
tabIdentiteParams.set("deces_date", personne.getDecesDate());
tabIdentiteParams.set("deces_date", personne.getAnneeOuDateDeces().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateDeces());
tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
}
242,14 → 256,16
// Infos naturalistes :Biographie, Spécialité (typé)
String tplInfosNat = "<div class='{css_corps}'>"
+ " <div class='{css_fieldset}'>" + " <h2>"
+ i18nC.personneSpecialite() + "</h1>"
+ " {specialites}" + " <h2>"
+ i18nC.personneBiographie() + "</h2>"
+ " {biographie}" + " "
+ "<h2>" + i18nC.personneSpecialite() + "</h2>"
+ " {specialites}" + " <h2>"
+ i18nC.personneRecolte() + "</h2>"
+ " {recoltes}" + " </div>" + "</div>";
Params prmInfosNat = new Params();
 
// TODO : replace id region par valeur
 
prmInfosNat.set("biographie", personne.get("biographie"));
String specialite = construireTxtTruck(personne.getSpecialite());
prmInfosNat.set("specialites", specialite);
 
326,10 → 342,103
}
}
private void initialiserTableauPublicationsLieesTpl() {
tableauPublicationsLieesTpl =
"<div class='{css_corps}'>" +
" <h2>{i18n_titre_publication}</h2>"+
" <table>"+
" <thead>"+
" <tr>" +
" <th>{i18n_relation}</th>" +
" <th>{i18n_auteur}</th>" +
" <th>{i18n_titre}</th>" +
" <th>{i18n_revue}</th>" +
" <th>{i18n_editeur}</th>" +
" <th>{i18n_annee}</th>" +
" <th>{i18n_nvt}</th>" +
" <th>{i18n_fascicule}</th>" +
" <th>{i18n_page}</th>" +
" </tr>"+
" </thead>"+
" <tbody>"+
" {lignes}"+
" </tbody>"+
"</table>";
}
private void initialiserLignePublicationLieeTpl() {
lignePublicationLieeTpl =
"<tr>"+
" <td>{relation}</td>"+
" <td>{auteur}</td>"+
" <td>{titre}</td>"+
" <td>{revue}</td>"+
" <td>{editeur}</td>"+
" <td>{annee}</td>"+
" <td>{nvt}</td>"+
" <td>{fascicule}</td>"+
" <td>{page}</td>"+
"</tr>";
}
/**
* @author greg
* Rempli l'onglet des publications liées
* @param listePublications la liste des publications
*/
private void afficherPublications(PublicationAPersonneListe listePublications) {
List<PublicationAPersonne> publicationsLiees = listePublications.toList();
Iterator<PublicationAPersonne> iterateur = publicationsLiees.iterator();
//Onglet Publications
initialiserTableauPublicationsLieesTpl();
Params paramsPublis = new Params();
String contenuLignes = "";
while (iterateur.hasNext()) {
initialiserLignePublicationLieeTpl();
PublicationAPersonne publicationAPersonneCourante = iterateur.next();
Publication publication = publicationAPersonneCourante.getPublicationLiee();
Params ligneParams = new Params();
ligneParams.set("relation", construireTxtListeOntologie(publicationAPersonneCourante.getRole()));
ligneParams.set("auteur", publication.getAuteur());
ligneParams.set("titre", publication.getTitre());
ligneParams.set("revue", publication.getCollection());
ligneParams.set("editeur", publication.getEditeur());
ligneParams.set("annee", publication.getAnneeParution());
ligneParams.set("nvt", publication.getIndicationNvt());
ligneParams.set("fascicule", publication.getFascicule());
ligneParams.set("page", publication.getPages());
contenuLignes += Format.substitute(lignePublicationLieeTpl, ligneParams);
}
paramsPublis.set("lignes", contenuLignes);
paramsPublis.set("i18n_titre_publication", i18nC.tabPublications());
paramsPublis.set("i18n_relation", i18nC.publicationAuteurs());
paramsPublis.set("i18n_auteur", i18nC.publicationAuteurs());
paramsPublis.set("i18n_titre", i18nC.publicationTitre());
paramsPublis.set("i18n_revue", i18nC.publicationRevueCollection());
paramsPublis.set("i18n_editeur", i18nC.publicationEditeur());
paramsPublis.set("i18n_annee", i18nC.publicationDateParution());
paramsPublis.set("i18n_nvt", i18nC.publicationNvt());
paramsPublis.set("i18n_fascicule", i18nC.publicationFascicule());
paramsPublis.set("i18n_page", i18nC.publicationPage());
afficherOnglet(tableauPublicationsLieesTpl, paramsPublis, tabPublications);
}
public void rafraichir(Object nouvellesDonnees) {
// FIXME : Ci-dessous, on utilise le booléen personneAffichee pour éviter un affichage répété de personnes.
// Se règlerait avec une gestion Synchrone/Asynchrone
// Si on a reçu une personne on en affiche les détails
if (nouvellesDonnees instanceof Personne) {
personneAAfficher = (Personne) nouvellesDonnees;
personneAffichee = false;
} else if (nouvellesDonnees instanceof ValeurListe) {
ValeurListe ontologieReceptionnee = (ValeurListe) nouvellesDonnees;
ajouterListeValeursAOntologie(ontologieReceptionnee);
358,10 → 467,13
}
}
}
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
afficherPublications((PublicationAPersonneListe) nouvellesDonnees);
}
if (ontologieRecue && personneAAfficher != null) {
if (ontologieRecue && personneAAfficher != null && personneAffichee == false) {
afficherDetailPersonne(personneAAfficher);
personneAffichee = true;
}
}