Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 471 → Rev 472

/trunk/src/org/tela_botanica/client/vues/PersonneDetailVue.java
11,7 → 11,6
import org.tela_botanica.client.ComposantId;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.i18n.Constantes;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.Personne;
18,32 → 17,22
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.util.UtilTruk;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
import com.extjs.gxt.ui.client.util.Format;
import com.extjs.gxt.ui.client.util.Params;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Html;
import com.extjs.gxt.ui.client.widget.HtmlContainer;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.Text;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.LabelField;
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.layout.RowData;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.extjs.gxt.ui.client.widget.layout.TableData;
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.ui.Image;
 
public class PersonneDetailVue extends LayoutContainer implements Rafraichissable {
57,13 → 46,9
// Onglet 1 : identite & contact
private TabItem tabIdentite;
private FieldSet fsIdentite;
private FieldSet fsContact;
// Onglet 2 : Adresses
private TabItem tabAdresse;
private FieldSet fsAdressePerso;
// contient : adresse perso / adresse pro
// Onglet 3 : Informations naturalistes
private TabItem tabInfosNat;
75,29 → 60,6
private Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
//Templatesstyle='display:inline-block; padding-left:15px; width:70%; font-size:11px'
private String enteteTpl = "<div id='{css_id}'>"+
"<h1>{nom}</h1>"+
"<h2><a href='{mail}'>{mail}</a></h2>" +
"</div>";
private String tabIdentiteTpl = "<div class='coel-fieldset'>" +
" <span><b>Nom Complet:</b></span> {nom_complet}<br />" +
" <span><b>Autres noms:</b></span> {nom_autre}<br />" +
" <span><b>Abréviation:</b></span> {abreviation}<br />" +
" <span><b>Autres Abréviations:</b></b></span> {abreviation_autre}<br /><br />" +
" <span><b>Date de naissance</b></span> {naissance_date}<br />" +
" <span><b>Lieu de naissance:</b></span> {naissance_lieu}<br /><br />" +
" <span><b>Date de décès:</b></span> {deces_date}<br />" +
" <span><b>Lieu de décès:</b></span> {deces_lieu}<br /><br />" +
"</div>" +
"<div class='coel-fieldset'>" +
" <span style='vertical-align:top'><b>Description:</b></span> {description}<br />" +
"</div>";
public PersonneDetailVue() {
setLayout(new RowLayout());
120,28 → 82,20
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
//setLayout(new FitLayout());
tabIdentite = new TabItem("Identité");
tabIdentite = new TabItem(mediateur.i18nC.personneIdentite());
tabIdentite.setLayout(new FitLayout());
tabIdentite.setScrollMode(Scroll.AUTO);
fsIdentite = new FieldSet();
fsIdentite.setLayout(new FormLayout());
fsContact = new FieldSet();
fsContact.setLayout(new FormLayout());
tabPanel.add(tabIdentite);
//Onglet Adresse:
tabAdresse = new TabItem("Adresses");
fsAdressePerso = new FieldSet();
fsAdressePerso.setLayout(new FormLayout());
tabAdresse = new TabItem(mediateur.i18nC.personneAdresses());
tabAdresse.setLayout(new FitLayout());
tabAdresse.setScrollMode(Scroll.AUTO);
tabPanel.add(tabAdresse);
//Onglet info naturalistes
tabInfosNat = new TabItem("Informations naturalistes");
tabInfosNat = new TabItem(mediateur.i18nC.personneInfoNat());
fsSpec = new FieldSet();
fsSpec.setLayout(new FormLayout());
tabInfosNat.setScrollMode(Scroll.AUTO);
148,7 → 102,7
tabPanel.add(tabInfosNat);
tabLogos = new TabItem("Logos");
tabLogos = new TabItem(mediateur.i18nC.personneLogos());
tabLogos.setLayout(new FlowLayout());
tabPanel.add(tabLogos);
160,11 → 114,14
public void afficherDetailPersonne(Personne personne) {
if (personne != null) {
String enteteTpl = "<div id='{css_id}'>"+
"<h1>{nom}</h1>"+
"<h2><a href='{mail}'>{mail}</a></h2>" +
"</div>";
//MAJ Identité : Configurer les fieldSet
Params enteteParams = new Params();
enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE);
enteteParams.set("css_meta", ComposantClass.META);
enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
enteteParams.set("mail", (String) personne.get("courriel_princ"));
187,12 → 144,28
tabLogos.enable();
} else {
enteteParams.set("image", "");
tabLogos.disable();
}
}
lcDetailHaut.el().setInnerHtml(Format.substitute(enteteTpl, enteteParams));
String tabIdentiteTpl = "<div class='{css_id}'>" +
" <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 />" +
" <span><b>" + mediateur.i18nC.personneDateNaissance() + "</b></span> {naissance_date}<br />" +
" <span><b>" + mediateur.i18nC.personneLieuNaissance() + ":</b></span> {naissance_lieu}<br /><br />" +
" <span><b>" + mediateur.i18nC.personneDateDeces() + ":</b></span> {deces_date}<br />" +
" <span><b>" + mediateur.i18nC.personneLieuDeces() + ":</b></span> {deces_lieu}<br /><br />" +
"</div>" +
"<div class='{css_id}'>" +
" <span style='vertical-align:top'><b>" + mediateur.i18nC.description() + ":</b><br /></span> {description}<br />" +
"<br />";
Params tabIdentiteParams = new Params();
tabIdentiteParams.set("css_id", "coel-fieldset");
tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
tabIdentiteParams.set("naissance_date", personne.getString("naissance_date"));
201,8 → 174,6
tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
tabIdentiteParams.set("description", personne.getString("description"));
fsAdressePerso.removeAll();
fsSpec.removeAll();
tabInfosNat.removeAll();
// Nom autre : champ truk; non-typé
221,12 → 192,6
}
tabIdentiteParams.set("abreviation_autre", listeAbrev);
tabIdentite.el().setInnerHtml(Format.substitute(tabIdentiteTpl, tabIdentiteParams));
// CONTACT > Plusieurs téléphones possible, typés
Constantes constantesI18n = (Constantes) GWT.create(Constantes.class);
HashMap<String, String> mapTelephones = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_telephone");
if ((mapTelephones != null)&&(mapTelephones.size() > 0)) {
235,54 → 200,22
while (itTelephones.hasNext()) {
String key = itTelephones.next();
LabelField telephoneLabel = new LabelField();
String label = "";
String label = mapTelephones.get(key);
try {
label = constantesI18n.getString(key);
label = mediateur.i18nC.getString(label);
}
catch (MissingResourceException e) {
label = key;
}
telephoneLabel.setFieldLabel( label + ":");
telephoneLabel.setValue(mapTelephones.get(key));
fsContact.add(telephoneLabel);
tabIdentiteTpl += "<b>" + label + ":</b> " + key;
tabIdentiteTpl += "<br />";
}
}
// Fax
// > Plusieurs fax possible, typés
// FAX > TYPE Téléphone
HashMap<String, String> mapFax = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_fax");
if ((mapFax != null)&&(mapFax.size() > 0)) {
Collection<String> faxKeys = mapFax.keySet();
Iterator<String> itFax = faxKeys.iterator();
while (itFax.hasNext()) {
String key = itFax.next();
LabelField faxLabel = new LabelField();
String label = "";
try {
label = constantesI18n.getString(key);
}
catch (MissingResourceException e) {
label = key;
}
faxLabel.setFieldLabel( label + ":");
faxLabel.setValue(mapTelephones.get(key));
fsContact.add(faxLabel);
}
}
// Courriel
// Courriel est un champ truk de la forme "Adresse@adr.com;; adr2@adr.fr ..."
// 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";
290,81 → 223,60
strLabelCourriel += "s";
}
LabelField labelCourriel = new LabelField();
labelCourriel.setFieldLabel(strLabelCourriel);
String valeurCourriel = "";
Iterator<String> itCourriel = listeCourriel.iterator();
while (itCourriel.hasNext()) {
String valeurCourante = itCourriel.next();
valeurCourriel += "<a href=\"mailto:" + valeurCourante + "\">" + valeurCourante + "</a><br />";
valeurCourriel += "<br /><a href=\"mailto:" + valeurCourante + "\">" + valeurCourante + "</a>";
}
labelCourriel.setValue(valeurCourriel);
fsContact.add(labelCourriel);
tabIdentiteTpl += valeurCourriel;
}
 
// Url Site Webs
LinkedList listeUrl = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_url");
if (listeUrl!=null && listeUrl.size() > 0) {
tabIdentiteTpl += "<br /><br /><b>Sites web:</b><br /><span style='display:inline-block'>";
String strUrl = "";
Iterator<String> urlIt = listeUrl.iterator();
while (urlIt.hasNext()) {
String urlCourante = urlIt.next();
strUrl += "<a href=\""+urlCourante+"\">" + urlCourante + "</a> <br/>";
}
LabelField urlLabelField = new LabelField();
urlLabelField.setFieldLabel("Url:");
urlLabelField.setValue(strUrl);
fsContact.add(urlLabelField);
}
tabIdentiteTpl += strUrl + "</span><br />";
}
tabIdentiteTpl += "</div>";
afficherOnglet(tabIdentiteTpl, tabIdentiteParams, tabIdentite);
tabIdentite.setStyleAttribute("padding", "15px");
//tabIdentite.add(fsContact);
String tabAdresseTpl = "<div id='css_id'>" +
" <h1>Adresse personnelle:</h1>" +
" {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"));
fsAdressePerso.setHeading("Adresse personnelle");
/*
* Adresses :
* */
String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
ajouterLabelField(fsAdressePerso, "Adresse", adresse01);
String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
ajouterLabelField(fsAdressePerso, "", adresse02);
String boitePostale = (String) personne.obtenirValeurChamp("bp");
ajouterLabelField(fsAdressePerso, "Boite Postale", boitePostale);
String codePostal = (String) personne.obtenirValeurChamp("code_postal");
ajouterLabelField(fsAdressePerso, "Code postal", codePostal);
String ville = (String) personne.obtenirValeurChamp("ville");
ajouterLabelField(fsAdressePerso, "Ville", ville);
String region = (String) personne.obtenirValeurChamp("region");
ajouterLabelField(fsAdressePerso, "Région", region);
String pays = (String) personne.obtenirValeurChamp("pays");
ajouterLabelField(fsAdressePerso, "Pays", pays);
fsAdressePerso.addText("<br >");
fsAdressePerso.setWidth("350px");
tabAdresse.add(fsAdressePerso);
afficherOnglet(tabAdresseTpl, paramAdresseTpl, tabAdresse);
tabAdresse.setStyleAttribute("padding", "15px");
 
// Infos naturalistes
// Infos naturalistes :Biographie, Spécialité (typé)
// Biographie
// Spécialité (typé)
fsSpec.setHeading("Spécialités");
tabInfosNat.add(fsSpec);
379,7 → 291,7
LabelField specLabel = new LabelField();
String label = "";
try {
label = constantesI18n.getString(key);
label = mediateur.i18nC.getString(key);
}
catch (MissingResourceException e) {
label = key;
436,7 → 348,23
}
}
protected void afficherOnglet(String template, Params parametres, TabItem onglet) {
String cHtml = Format.substitute(template, parametres);
Params cssParams = new Params();
cssParams.set("css_corps", ComposantClass.DETAIL_CORPS_CONTENU);
cssParams.set("css_label", ComposantClass.LABEL);
cssParams.set("css_indentation", ComposantClass.INDENTATION);
cssParams.set("css_fieldset", ComposantClass.FIELDSET);
cssParams.set("css_clear", ComposantClass.CLEAR);
cHtml = Format.substitute(cHtml, cssParams);
HtmlContainer corpsConteneurDuHtml = new HtmlContainer(cHtml);
onglet.removeAll();
onglet.add(corpsConteneurDuHtml);
}
private void changerLabelRegions() {
Collection<String> colClesComposants = hmLabelFieldRegion.keySet();