34,326 → 34,373 |
|
public class PersonneDetailVue extends DetailVue implements Rafraichissable { |
|
|
private TabPanel tabPanel; |
private Html entete; |
|
|
private TabItem tabIdentite; |
private TabItem tabAdresse; |
private TabItem tabInfosNat; |
private TabItem tabLogos; |
|
private void chargerOntologie() { |
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
} |
|
|
public PersonneDetailVue(Mediateur mediateur) { |
|
|
super(mediateur); |
setLayout(new FitLayout()); |
chargerOntologie(); |
|
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
|
setLayout(new FitLayout()); |
|
entete = new Html(); |
entete.setId(ComposantId.ZONE_DETAIL_ENTETE); |
|
|
ContentPanel panneauPrincipal = new ContentPanel(); |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.setHeaderVisible(false); |
panneauPrincipal.setBodyBorder(true); |
panneauPrincipal.setTopComponent(entete); |
|
|
tabIdentite = new TabItem(mediateur.i18nC.personneIdentite()); |
tabIdentite.setLayout(new AnchorLayout()); |
tabIdentite.setScrollMode(Scroll.AUTO); |
|
tabIdentite.setScrollMode(Scroll.AUTO); |
|
tabAdresse = new TabItem(mediateur.i18nC.personneAdresses()); |
tabAdresse.setLayout(new FitLayout()); |
tabAdresse.setScrollMode(Scroll.AUTO); |
|
|
tabInfosNat = new TabItem(mediateur.i18nC.personneInfoNat()); |
tabInfosNat.setScrollMode(Scroll.AUTO); |
|
|
tabLogos = new TabItem(mediateur.i18nC.personneLogos()); |
tabLogos.setScrollMode(Scroll.AUTO); |
tabLogos.setLayout(new FlowLayout()); |
|
|
tabPanel = new TabPanel(); |
tabPanel.setId(ComposantId.ZONE_DETAIL_CORPS); |
tabPanel.setBodyBorder(false); |
|
|
tabPanel.add(tabIdentite); |
tabPanel.add(tabAdresse); |
tabPanel.add(tabInfosNat); |
tabPanel.add(tabLogos); |
|
|
panneauPrincipal.add(tabPanel); |
add(panneauPrincipal); |
} |
|
private HashMap hmLabelFieldRegion = new HashMap(); |
|
|
public void afficherDetailPersonne(Personne personne) { |
if (personne != null) { |
|
|
String tplEntete = initialiserTplEntete(); |
|
|
Params enteteParams = new Params(); |
enteteParams.set("nom", (String) personne.get("fmt_nom_complet")); |
enteteParams.set("mail", (String) personne.get("courriel_princ")); |
|
LinkedList lstLogos = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_logo"); |
if (lstLogos!=null && lstLogos.size() > 0) { |
|
|
LinkedList lstLogos = (LinkedList) personne |
.getChaineDenormaliseAsMapOrList("truk_logo"); |
if (lstLogos != null && lstLogos.size() > 0) { |
|
tabLogos.removeAll(); |
String urlLogoPrinc = (String) lstLogos.get(0); |
if (!urlLogoPrinc.trim().equals("")) { |
tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>" + tplEntete; |
if (!urlLogoPrinc.trim().equals("")) { |
tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>" |
+ tplEntete; |
enteteParams.set("image", urlLogoPrinc); |
} |
|
|
Iterator<String> itLogo = lstLogos.iterator(); |
while (itLogo.hasNext()){ |
while (itLogo.hasNext()) { |
String urlLogoCourant = itLogo.next(); |
Image imgCourante = new Image(urlLogoCourant); |
tabLogos.add(imgCourante); |
tabLogos.add(imgCourante); |
} |
tabLogos.enable(); |
|
|
} else { |
enteteParams.set("image", ""); |
tabLogos.disable(); |
} |
|
entete.el().setInnerHtml(Format.substitute(tplEntete, enteteParams)); |
|
|
entete.el() |
.setInnerHtml(Format.substitute(tplEntete, enteteParams)); |
|
String tplIdentite = initialiserTplIdentite(); |
|
|
Params tabIdentiteParams = new Params(); |
tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet")); |
tabIdentiteParams.set("abreviation", personne.getString("abreviation")); |
tabIdentiteParams.set("naissance_date", personne.getString("naissance_date")); |
tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu")); |
tabIdentiteParams.set("deces_date", personne.getString("deces_date")); |
tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu")); |
tabIdentiteParams.set("description", personne.getString("description")); |
|
tabIdentiteParams.set("nom_complet", personne |
.getString("fmt_nom_complet")); |
tabIdentiteParams.set("abreviation", personne |
.getString("abreviation")); |
tabIdentiteParams.set("naissance_date", personne |
.getString("naissance_date")); |
tabIdentiteParams.set("naissance_lieu", personne |
.getString("naissance_lieu")); |
tabIdentiteParams.set("deces_date", personne |
.getString("deces_date")); |
tabIdentiteParams.set("deces_lieu", personne |
.getString("deces_lieu")); |
tabIdentiteParams.set("description", personne |
.getString("description")); |
|
tabInfosNat.removeAll(); |
|
// Nom autre : champ truk; non-typé |
LinkedList<String> nomsAutre = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_nom_autre"); |
|
/*// Nom autre : champ truk; non-typé |
LinkedList<String> nomsAutre = (LinkedList<String>) personne |
.getChaineDenormaliseAsMapOrList("truk_nom_autre"); |
String listeNoms = ""; |
if ((nomsAutre != null)&&(nomsAutre.size() > 0)) { |
listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", "); |
if ((nomsAutre != null) && (nomsAutre.size() > 0)) { |
listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", "); |
} |
tabIdentiteParams.set("nom_autre", listeNoms); |
|
|
// Abréviations, autre : non-typé |
LinkedList<String> abrevAutres = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_abreviation_autre"); |
LinkedList<String> abrevAutres = (LinkedList<String>) personne |
.getChaineDenormaliseAsMapOrList("truk_abreviation_autre"); |
String listeAbrev = ""; |
if ((abrevAutres != null)&&(abrevAutres.size() > 0)) { |
if ((abrevAutres != null) && (abrevAutres.size() > 0)) { |
listeAbrev = UtilTruk.traiterTrukListe(abrevAutres, ", "); |
} |
tabIdentiteParams.set("abreviation_autre", listeAbrev); |
|
HashMap<String, String> mapTelephones = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_telephone"); |
if ((mapTelephones != null)&&(mapTelephones.size() > 0)) { |
|
}*/ |
tabIdentiteParams.set("nom_autre", construireTxtTruck(personne.getString("truk_nom_autre"))); |
tabIdentiteParams.set("abreviation_autre", construireTxtTruck(personne.getString("truk_abreviation_autre"))); |
|
HashMap<String, String> mapTelephones = (HashMap<String, String>) personne |
.getChaineDenormaliseAsMapOrList("truk_telephone"); |
if ((mapTelephones != null) && (mapTelephones.size() > 0)) { |
|
Collection<String> telephoneKeys = mapTelephones.keySet(); |
Iterator<String> itTelephones = telephoneKeys.iterator(); |
|
while (itTelephones.hasNext()) { |
|
while (itTelephones.hasNext()) { |
String key = itTelephones.next(); |
String label = mapTelephones.get(key); |
|
|
try { |
label = mediateur.i18nC.getString(label); |
} catch (MissingResourceException e) { |
} |
catch (MissingResourceException e) { |
} |
|
|
tplIdentite += "<b>" + label + ":</b> " + key; |
tplIdentite += "<br />"; |
} |
} |
|
// Courriel :Champ truk de la forme "Adresse@adr.com;; adr2@adr.fr ..." |
LinkedList<String> listeCourriel = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_courriel"); |
if ((listeCourriel!=null)&&(listeCourriel.size() > 0)) { |
|
// Courriel :Champ truk de la forme |
// "Adresse@adr.com;; adr2@adr.fr ..." |
LinkedList<String> listeCourriel = (LinkedList<String>) personne |
.getChaineDenormaliseAsMapOrList("truk_courriel"); |
if ((listeCourriel != null) && (listeCourriel.size() > 0)) { |
String strLabelCourriel = "Courriel"; |
if (listeCourriel.size() > 1) { |
strLabelCourriel += "s"; |
if (listeCourriel.size() > 1) { |
strLabelCourriel += "s"; |
} |
|
|
String valeurCourriel = ""; |
Iterator<String> itCourriel = listeCourriel.iterator(); |
while (itCourriel.hasNext()) { |
while (itCourriel.hasNext()) { |
String valeurCourante = itCourriel.next(); |
valeurCourriel += "<br /><a href=\"mailto:" + valeurCourante + "\">" + valeurCourante + "</a>"; |
valeurCourriel += "<br /><a href=\"mailto:" |
+ valeurCourante + "\">" + valeurCourante + "</a>"; |
} |
tplIdentite += valeurCourriel; |
} |
|
// Url Site Webs |
LinkedList listeUrl = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_url"); |
if (listeUrl!=null && listeUrl.size() > 0) { |
|
LinkedList listeUrl = (LinkedList) personne |
.getChaineDenormaliseAsMapOrList("truk_url"); |
if (listeUrl != null && listeUrl.size() > 0) { |
|
tplIdentite += "<br /><br /><b>Sites web:</b><br /><span style='display:inline-block'>"; |
String strUrl = ""; |
Iterator<String> urlIt = listeUrl.iterator(); |
while (urlIt.hasNext()) { |
while (urlIt.hasNext()) { |
String urlCourante = urlIt.next(); |
strUrl += "<a href=\""+urlCourante+"\">" + urlCourante + "</a> <br/>"; |
strUrl += "<a href=\"" + urlCourante + "\">" + urlCourante |
+ "</a> <br/>"; |
} |
tplIdentite += strUrl + "</span><br />"; |
} |
|
} |
|
tplIdentite += "</div>"; |
|
|
afficherOnglet(tplIdentite, tabIdentiteParams, tabIdentite); |
|
String tabAdresseTpl = "<div class='{css_corps}'>" + |
" <div class='{css_fieldset}'>" + |
" <h2>Adresse personnelle:</h2>" + |
" {adresse01} <br />" + |
" {adresse02} <br />" + |
" {boitePostale}<br />" + |
" {codePostal} {region}<br />" + |
" <span style='uppercase'>{pays}</span><br />" + |
"</div>"; |
//Adresses : |
|
String tabAdresseTpl = "<div class='{css_corps}'>" |
+ " <div class='{css_fieldset}'>" |
+ " <h2>Adresse personnelle:</h2>" |
+ " {adresse01} <br />" + " {adresse02} <br />" |
+ " {boitePostale}<br />" |
+ " {codePostal} {region}<br />" |
+ " <span style='uppercase'>{pays}</span><br />" |
+ "</div>"; |
// Adresses : |
Params paramAdresseTpl = new Params(); |
paramAdresseTpl.set("adresse01", (String) personne.obtenirValeurChamp("adresse_01")); |
paramAdresseTpl.set("adresse02", (String) personne.obtenirValeurChamp("adresse_02")); |
paramAdresseTpl.set("boitePostale", (String) personne.obtenirValeurChamp("bp")); |
paramAdresseTpl.set("codePostal", (String) personne.obtenirValeurChamp("code_postal")); |
paramAdresseTpl.set("ville", (String) personne.obtenirValeurChamp("ville")); |
paramAdresseTpl.set("region", (String) personne.obtenirValeurChamp("region")); |
paramAdresseTpl.set("pays", (String) personne.obtenirValeurChamp("pays")); |
|
paramAdresseTpl.set("adresse01", (String) personne |
.obtenirValeurChamp("adresse_01")); |
paramAdresseTpl.set("adresse02", (String) personne |
.obtenirValeurChamp("adresse_02")); |
paramAdresseTpl.set("boitePostale", (String) personne |
.obtenirValeurChamp("bp")); |
paramAdresseTpl.set("codePostal", (String) personne |
.obtenirValeurChamp("code_postal")); |
paramAdresseTpl.set("ville", (String) personne |
.obtenirValeurChamp("ville")); |
paramAdresseTpl.set("region", (String) personne |
.obtenirValeurChamp("region")); |
paramAdresseTpl.set("pays", (String) personne |
.obtenirValeurChamp("pays")); |
|
afficherOnglet(tabAdresseTpl, paramAdresseTpl, tabAdresse); |
tabAdresse.setStyleAttribute("padding", "15px"); |
|
// Infos naturalistes :Biographie, Spécialité (typé) |
String tplInfosNat = "<div class='{css_corps}'>" + |
" <div class='{css_fieldset}'>" + |
" <h2>" + mediateur.i18nC.personneSpecialite() + "</h1>"+ |
" {specialites}" + |
" <h2>" + mediateur.i18nC.personneRecolte() + "</h2>" + |
" {recoltes}" + |
" </div>" + |
"</div>"; |
String tplInfosNat = "<div class='{css_corps}'>" |
+ " <div class='{css_fieldset}'>" + " <h2>" |
+ mediateur.i18nC.personneSpecialite() + "</h1>" |
+ " {specialites}" + " <h2>" |
+ mediateur.i18nC.personneRecolte() + "</h2>" |
+ " {recoltes}" + " </div>" + "</div>"; |
Params prmInfosNat = new Params(); |
|
//TODO : replace id region par valeur |
|
|
// TODO : replace id region par valeur |
|
String specialite = construireTxtTruck(personne.getSpecialite()); |
prmInfosNat.set("specialites", specialite); |
|
String recolte = construireTxtTruck(personne.getString("truk_recolte")); |
|
String recolte = construireTxtListeOntologie(personne.getString("truk_recolte")); |
prmInfosNat.set("recoltes", recolte); |
|
|
afficherOnglet(tplInfosNat, prmInfosNat, tabInfosNat); |
tabAdresse.setStyleAttribute("padding", "15px"); |
|
|
|
changerLabelRegions(); |
layout(); |
} |
} |
} |
|
public String initialiserTplEntete() { |
|
return "<div id='{css_id}'>"+ |
"<h1>{nom}</h1>"+ |
"<h2><a href='{mail}'>{mail}</a></h2>" + |
"</div>"; |
|
public String initialiserTplEntete() { |
|
return "<div id='{css_id}'>" + "<h1>{nom}</h1>" |
+ "<h2><a href='{mail}'>{mail}</a></h2>" + "</div>"; |
} |
|
|
|
public String initialiserTplIdentite() { |
|
return "<div class='{css_corps}'>" + |
" <div class='{css_fieldset}'>" + |
" <h2>Noms:</h2>" + |
" <span><b>" + mediateur.i18nC.personneNomComplet() + ":</b></span> {nom_complet}<br />" + |
" <span><b>" + mediateur.i18nC.personneNomAutre() + ":</b></span> {nom_autre}<br />" + |
" <span><b>" + mediateur.i18nC.personneAbreviation() + ":</b></span> {abreviation}<br />" + |
" <span><b>" + mediateur.i18nC.personneAbreviationAutre() + ":</b></b></span> {abreviation_autre}<br /><br />" + |
" <h2>Naissance:</h2>" + |
" <span><b>" + mediateur.i18nC.personneDateNaissance() + "</b></span> {naissance_date}<br />" + |
" <span><b>" + mediateur.i18nC.personneLieuNaissance() + ":</b></span> {naissance_lieu}<br /><br />" + |
" <h2>Décès:</h2>" + |
" <span><b>" + mediateur.i18nC.personneDateDeces() + ":</b></span> {deces_date}<br />" + |
" <span><b>" + mediateur.i18nC.personneLieuDeces() + ":</b></span> {deces_lieu}<br /><br />" + |
" </div>" + |
"</div>" + |
"<div class='{css_corps}'>" + |
" <div class='css_fieldset'> " + |
" <h2>Description:</h2>" + |
" {description}<br />" + |
" </div>" + |
"<br />"; |
|
return "<div class='{css_corps}'>" + " <div class='{css_fieldset}'>" |
+ " <h2>Noms:</h2>" + " <span><b>" |
+ mediateur.i18nC.personneNomComplet() |
+ ":</b></span> {nom_complet}<br />" |
+ " <span><b>" |
+ mediateur.i18nC.personneNomAutre() |
+ ":</b></span> {nom_autre}<br />" |
+ " <span><b>" |
+ mediateur.i18nC.personneAbreviation() |
+ ":</b></span> {abreviation}<br />" |
+ " <span><b>" |
+ mediateur.i18nC.personneAbreviationAutre() |
+ ":</b></b></span> {abreviation_autre}<br /><br />" |
+ " <h2>Naissance:</h2>" |
+ " <span><b>" |
+ mediateur.i18nC.personneDateNaissance() |
+ "</b></span> {naissance_date}<br />" |
+ " <span><b>" |
+ mediateur.i18nC.personneLieuNaissance() |
+ ":</b></span> {naissance_lieu}<br /><br />" |
+ " <h2>Décès:</h2>" |
+ " <span><b>" |
+ mediateur.i18nC.personneDateDeces() |
+ ":</b></span> {deces_date}<br />" |
+ " <span><b>" |
+ mediateur.i18nC.personneLieuDeces() |
+ ":</b></span> {deces_lieu}<br /><br />" |
+ " </div>" |
+ "</div>" |
+ "<div class='{css_corps}'>" |
+ " <div class='css_fieldset'> " |
+ " <h2>Description:</h2>" |
+ " {description}<br />" + " </div>" + "<br />"; |
} |
|
private void changerLabelRegions() { |
|
|
private void changerLabelRegions() { |
|
Collection<String> colClesComposants = hmLabelFieldRegion.keySet(); |
Iterator<String> itComposants = colClesComposants.iterator(); |
|
while (itComposants.hasNext()) { |
|
while (itComposants.hasNext()) { |
String region = itComposants.next(); |
mediateur.obtenirValeurEtRafraichir(this, "region", region); |
} |
} |
|
private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue) { |
|
if ((tfValue!=null)&&(!tfValue.toString().trim().equals(""))) { |
|
|
private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue) { |
|
if ((tfValue != null) && (!tfValue.toString().trim().equals(""))) { |
|
LabelField tf = new LabelField(); |
|
|
tf.setFieldLabel(tfLabel + ":"); |
if ((tfLabel==null)||("".equals(tfLabel))) { |
if ((tfLabel == null) || ("".equals(tfLabel))) { |
tf.setHideLabel(true); |
tf.setStyleAttribute("margin", "0 0 0 105px"); |
} |
tf.setValue(tfValue); |
|
//Ajout au fieldSet |
|
// Ajout au fieldSet |
fs.add(tf); |
} |
} |
|
private Configuration config = (Configuration) Registry |
.get(RegistreId.CONFIG); |
|
private boolean ontologieRecue = false; |
private Personne personneAAfficher = null; |
|
|
|
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
|
public void rafraichir(Object nouvellesDonnees) { |
|
|
// Si on a reçu une personne on en affiche les détails |
if (nouvellesDonnees instanceof Personne) { |
afficherDetailPersonne((Personne) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof ValeurListe) { |
if (ontologieRecue) { |
afficherDetailPersonne((Personne) nouvellesDonnees); |
} else { |
personneAAfficher = (Personne) nouvellesDonnees; |
} |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe ontologieReceptionnee = (ValeurListe) nouvellesDonnees; |
ajouterListeValeursAOntologie(ontologieReceptionnee); |
|
if (personneAAfficher != null) { |
afficherDetailPersonne(personneAAfficher); |
} |
ontologieRecue = true; |
|
// Remplacer ci-dessous par Ontologie |
ValeurListe listeValeur = (ValeurListe) nouvellesDonnees; |
if (listeValeur.getId().equals(config.getListeId("region"))) { |
|
if (listeValeur.getId().equals(config.getListeId("region"))) { |
|
Collection colCleListeValeur = listeValeur.keySet(); |
|
Iterator<String> itLv = colCleListeValeur.iterator(); |
|
while (itLv.hasNext()) { |
while (itLv.hasNext()) { |
String idRegion = itLv.next(); |
Valeur region = listeValeur.get(idRegion); |
|
|
|
if (region != null) { |
|
|
if (region != null) { |
|
String strRegionId = region.getAbreviation(); |
|
|
LinkedList<LabelField> listComposantsRegion = (LinkedList) hmLabelFieldRegion.get(strRegionId); |
for (int i=0; i < listComposantsRegion.size(); i++) { |
for (int i = 0; i < listComposantsRegion.size(); i++) { |
LabelField lfRegion = listComposantsRegion.get(i); |
lfRegion.setFieldLabel(region.getNom()); |
lfRegion.setFieldLabel(region.getNom()); |
} |
|
|
} |
} |
} |