1,7 → 1,12 |
package org.tela_botanica.client.vues; |
|
|
|
import java.util.List; |
|
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetsListeAsyncDao; |
14,66 → 19,96 |
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.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.Grid; |
import com.google.gwt.user.client.ui.Hyperlink; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter; |
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; |
|
public class PersonneDetailPanneauVue extends ContentPanel implements Rafraichissable { |
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable { |
|
private ContentPanel content; |
|
private Html header; |
private String enteteHTML = "<div class='coel-detail'><h1>{0}</h1><h2><a href=\"mailto:{1}\">{1}</a></h2></div>"; |
private String contenuHTML = "<div style='padding: 12px;'><p>{0}</p><b>Adresse: </b>{1}<br />{2}<br /></div>"; |
private String structureNom = null; |
private String structureVille = null; |
private String structureDescription = null; |
|
|
//TABS |
// Informations générales : nom, prénom, adresse, cp, ville, adresse email, sexe, projet |
private TabItem infoGenerales; |
private String contenuInfo = "<div style='padding: 12px;'><h1>{0}</h1><a href=\"{1}\">{1}</a><br /><br /><p><b>Adresse: </b>{2}<br />{3}<br />{4} {5}<br /> {7}</p><br />{6}</div>"; |
|
private TabItem infoBio; |
private String contenuBio = ""; |
// <div style='padding: 12px;'><h1>{0} {1} {2}</h1><h2>{3}</h2><br><b>Date de naissance: </b>{4}<br /><b>Date de décès:{5}</b><p>{6}</p></div>"; |
|
|
public PersonneDetailPanneauVue() { |
|
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this); |
setLayout(new FitLayout()); |
|
setHeaderVisible(false); |
setLayout(new FitLayout()); |
|
content = new ContentPanel(); |
content.setBodyBorder(false); |
content.setHeaderVisible(false); |
content.setScrollMode(Scroll.AUTO); |
|
header = new Html(); |
header.setStyleName("coel-detail"); |
content.setTopComponent(header); |
|
add(content); |
infoGenerales = new TabItem("Informations Générales"); |
this.add(infoGenerales); |
|
infoBio = new TabItem("Biographie"); |
infoBio.disable(); |
this.add(infoBio); |
} |
|
public void ajouterParam(Params parametres, String nomChamp, Personne personne) { |
parametres.add(personne.obtenirValeurChamp(nomChamp)); |
//return parametres; |
private void ajouterParam(Params parametres, String nomChamp, Personne personne) { |
Object valeur = personne.obtenirValeurChamp(nomChamp); |
parametres.add(valeur); |
} |
|
public void afficherDetailPersonne(Personne personne) { |
if (personne != null) { |
content.removeAll(); |
infoGenerales.removeAll(); |
infoBio.removeAll(); |
infoBio.disable(); |
|
//Header |
Params enteteParams = new Params(); |
ajouterParam(enteteParams, "fmt_nom_complet", personne); |
ajouterParam(enteteParams, "truk_courriel", personne); |
//Contenu |
Params infoGenParams = new Params(); |
ajouterParam(infoGenParams, "fmt_nom_complet", personne); |
ajouterParam(infoGenParams, "truk_courriel", personne); |
ajouterParam(infoGenParams, "adresse_01", personne); |
ajouterParam(infoGenParams, "adresse_02", personne); |
ajouterParam(infoGenParams, "code_postal", personne); |
ajouterParam(infoGenParams, "ville", personne); |
ajouterParam(infoGenParams, "description", personne); |
ajouterParam(infoGenParams, "cp_truk_fax", personne); |
|
header.getElement().setInnerHTML(Format.substitute(enteteHTML, enteteParams)); |
//Info générales |
infoGenerales.addText(Format.substitute(contenuInfo, infoGenParams)); |
|
//Contenu |
Params contenuParams = new Params(); |
ajouterParam(contenuParams, "description", personne); |
Params bioParams = new Params(); |
// Nécessaire que si une biographie existe... |
// FIXME : remplacer par un id role? |
if ((personne.obtenirValeurChamp("biographie")!=null)&&(!((String) personne.obtenirValeurChamp("biographie")).trim().equals(""))) { |
|
contenuBio = "<div style='padding: 12px;'><h1>{0} {1} {2}</h1><h2>{3}</h2><br><b>Date de naissance: </b>{4}<br /><b>Date de décès:{5}</b><p>a{6}a</p></div>"; |
|
ajouterParam(bioParams, "ce_truk_prefix", personne); |
ajouterParam(bioParams, "fmt_nom_complet", personne); |
ajouterParam(bioParams, "ce_truk_suffix", personne); |
ajouterParam(bioParams, "abreviation", personne); |
ajouterParam(bioParams, "naissance_date", personne); |
ajouterParam(bioParams, "deces_date", personne); |
ajouterParam(bioParams, "biographie", personne); |
infoBio.enable(); |
|
} |
|
ajouterParam(contenuParams, "adresse_01", personne); |
ajouterParam(contenuParams, "adresse_02", personne); |
|
|
content.addText(Format.substitute(contenuHTML, contenuParams)); |
|
infoBio.addText(Format.substitute(contenuBio, bioParams)); |
|
layout(); |
} else { |
header.setHtml(""); |
content.removeAll(); |
|
} |
} |
|