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")); |
326,10 → 340,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.collectionPublicationTitre()); |
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 → 465,13 |
} |
} |
} |
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) { |
afficherPublications((PublicationAPersonneListe) nouvellesDonnees); |
} |
|
if (ontologieRecue && personneAAfficher != null) { |
if (ontologieRecue && personneAAfficher != null && personneAffichee == false) { |
afficherDetailPersonne(personneAAfficher); |
personneAffichee = true; |
} |
} |
|