Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 434 → Rev 435

/trunk/src/org/tela_botanica/client/vues/PersonneDetailPanneauVue.java
7,6 → 7,7
import java.util.MissingResourceException;
 
 
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;
20,23 → 21,35
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.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 PersonneDetailPanneauVue extends LayoutContainer implements Rafraichissable {
 
private LayoutContainer lcDetailHaut;
// Le panneau détail se compose de formulaires tabulés
private TabPanel tabPanel;
43,9 → 56,6
// Onglet 1 : identite & contact
private TabItem tabIdentite;
private ContentPanel panneauIdentite;
private ContentPanel panneauImage;
private FieldSet fsIdentite;
private FieldSet fsContact;
58,41 → 68,60
private TabItem tabInfosNat;
private FieldSet fsSpec;
//Onglet 4 : logos
private TabItem tabLogos;
private Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
//Templates
private String enteteTpl = "<div style='display:inline-block; padding-left:15px; width:70%; font-size:11px'>"+
"<h1>{nom}</h1>"+
"<a href='{mail}'>{mail}</a>" +
"</div><br/>";
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 PersonneDetailPanneauVue() {
setLayout(new RowLayout());
ContentPanel cp = new ContentPanel();
cp.setLayout(new FlowLayout());
lcDetailHaut = new LayoutContainer();
lcDetailHaut.setLayout(new RowLayout());
//this.add(lcDetailHaut, new RowData(1, 0.2));
cp.setTopComponent(lcDetailHaut);
add(lcDetailHaut);
tabPanel = new TabPanel();
this.add(tabPanel);
this.add(tabPanel, new RowData(1, 1));
//Constructeur de la classe
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
setLayout(new FitLayout());
//setLayout(new FitLayout());
tabIdentite = new TabItem("Identité");
TableLayout tLayout = new TableLayout(2);
tabIdentite.setLayout(tLayout);
tabIdentite.setLayout(new FitLayout());
tabIdentite.setScrollMode(Scroll.AUTO);
panneauIdentite = new ContentPanel();
panneauIdentite.setWidth("400px");
panneauIdentite.setHeaderVisible(false);
panneauIdentite.setBorders(false);
panneauIdentite.setBodyBorder(false);
panneauImage = new ContentPanel();
panneauImage.setLayout(new FlowLayout());
panneauImage.setBorders(false);
panneauImage.setWidth(350);
panneauImage.setBodyBorder(false);
panneauImage.setHeaderVisible(false);
//Gérer l'alignement vertical en haut
TableData td = new TableData();
td.setVerticalAlign(VerticalAlignment.TOP);
tabIdentite.add(panneauIdentite, td);
tabIdentite.add(panneauImage, td);
fsIdentite = new FieldSet();
fsIdentite.setLayout(new FormLayout());
118,6 → 147,10
tabPanel.add(tabInfosNat);
tabLogos = new TabItem("Logos");
tabLogos.setLayout(new FlowLayout());
tabPanel.add(tabLogos);
}
 
126,126 → 159,71
public void afficherDetailPersonne(Personne personne) {
if (personne != null) {
//MAJ Identité : Configurer les fieldSet
panneauIdentite.removeAll();
panneauImage.removeAll();
fsIdentite.setHeading("Identité");
//fsIdentite.setWidth("350px");
Params enteteParams = new Params();
enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
enteteParams.set("mail", (String) personne.get("courriel_princ"));
fsContact.setHeading("Contact");
//fsContact.setWidth("350px");
panneauIdentite.add(fsIdentite);
//La personne peut avoir un ou plusieurs logo
panneauImage.setHeight("100%");
panneauImage.setPosition(0, 6);
panneauImage.setBorders(false);
LinkedList<String> listeLogos = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_logo");
if ((listeLogos != null)&&(listeLogos.size() > 0)) {
panneauImage.setBorders(true);
for (int i = 0; i < listeLogos.size(); i++) {
String logoUrl = listeLogos.get(i);
if ((logoUrl!=null)&&(!logoUrl.trim().equals(""))) {
//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
Image img = new Image();
img.setUrl(logoUrl);
panneauImage.add(img);
if (panneauImage.getWidth() < (img.getWidth() + 15)) {
panneauImage.setWidth(img.getWidth() + 15);
}
}
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("")) {
enteteTpl = "<div style='position:absolute; right:0; width:30%; text-align:right'><img src='{image}' alt='logo' height='45px'/></div>" + enteteTpl;
enteteParams.set("image", urlLogoPrinc);
}
}
Iterator<String> itLogo = lstLogos.iterator();
while (itLogo.hasNext()){
String urlLogoCourant = itLogo.next();
Image imgCourante = new Image(urlLogoCourant);
tabLogos.add(imgCourante);
}
tabLogos.enable();
} else {
tabLogos.disable();
}
panneauIdentite.add(fsContact);
lcDetailHaut.el().setInnerHtml(Format.substitute(enteteTpl, enteteParams));
fsIdentite.removeAll();
fsContact.removeAll();
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"));
fsAdressePerso.removeAll();
fsSpec.removeAll();
tabInfosNat.removeAll();
//Ajout des champs Identité
// TODO: projet
// nom complet
Object nomComplet = personne.obtenirValeurChamp("fmt_nom_complet");
ajouterLabelField(fsIdentite,"Nom Complet", nomComplet);
// Nom autre : champ truk; non-typé
LinkedList<String> nomsAutre = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_nom_autre");
String listeNoms = "";
if ((nomsAutre != null)&&(nomsAutre.size() > 0)) {
LabelField noms = new LabelField();
noms.setFieldLabel("Autres noms:");
String listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", ");
noms.setValue(listeNoms);
fsIdentite.add(noms);
listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", ");
}
tabIdentiteParams.set("nom_autre", listeNoms);
// abreviation
Object abreviation = personne.obtenirValeurChamp("abreviation");
ajouterLabelField(fsIdentite, "Abreviation", abreviation);
// Abréviations, autre : non-typé
LinkedList<String> abrevAutres = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_abreviation_autre");
String listeAbrev = "";
if ((abrevAutres != null)&&(abrevAutres.size() > 0)) {
LabelField abreviations = new LabelField();
abreviations.setFieldLabel("Autres abreviations:");
String listeAbrev = UtilTruk.traiterTrukListe(abrevAutres, ", ");
abreviations.setValue(listeAbrev);
fsIdentite.add(abreviations);
listeAbrev = UtilTruk.traiterTrukListe(abrevAutres, ", ");
}
fsIdentite.addText("<hr>");
tabIdentiteParams.set("abreviation_autre", listeAbrev);
// date naissance
// TODO : Mettre la date en format FR 10/12/09
Object dateNaissance = personne.obtenirValeurChamp("naissance_date");
ajouterLabelField(fsIdentite, "Né le", dateNaissance);
// lieu naissance
Object lieuNaissance = personne.obtenirValeurChamp("naissance_lieu");
ajouterLabelField(fsIdentite, "A", lieuNaissance);
tabIdentite.el().setInnerHtml(Format.substitute(tabIdentiteTpl, tabIdentiteParams));
// date deces
Object dateDeces = personne.obtenirValeurChamp("deces_date");
ajouterLabelField(fsIdentite, "Date décès", dateDeces);
// CONTACT > Plusieurs téléphones possible, typés
Constantes constantesI18n = (Constantes) GWT.create(Constantes.class);
// lieu deces
Object lieuDeces = personne.obtenirValeurChamp("deces_lieu");
ajouterLabelField(fsIdentite, "Lieu de décès", lieuDeces);
fsIdentite.addText("<hr>");
//Description
String description = (String) personne.obtenirValeurChamp("description");
if ((description!=null)&&(!description.trim().equals(""))) {
LabelField txtDescription = new LabelField();
txtDescription.setFieldLabel("Description:");
txtDescription.setValue(description);
//rendreNonEditable(txtDescription);
fsIdentite.add(txtDescription);
}
// CONTACT
// Téléphones
// > 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)) {
343,10 → 321,10
fsContact.add(urlLabelField);
}
tabIdentite.setStyleAttribute("padding", "15px");
//tabIdentite.add(fsContact);
panneauIdentite.add(fsContact);
fsAdressePerso.setHeading("Adresse personnelle");
/*