Rev 150 | Rev 189 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Personne;
import org.tela_botanica.client.modeles.Projet;
import org.tela_botanica.client.modeles.ProjetsListeAsyncDao;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureListe;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
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.layout.FitLayout;
public class PersonneDetailPanneauVue extends ContentPanel 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;
public PersonneDetailPanneauVue() {
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
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);
}
public void ajouterParam(Params parametres, String nomChamp, Personne personne) {
parametres.add(personne.obtenirValeurChamp(nomChamp));
//return parametres;
}
public void afficherDetailPersonne(Personne personne) {
if (personne != null) {
content.removeAll();
//Header
Params enteteParams = new Params();
ajouterParam(enteteParams, "fmt_nom_complet", personne);
ajouterParam(enteteParams, "truk_courriel", personne);
header.getElement().setInnerHTML(Format.substitute(enteteHTML, enteteParams));
//Contenu
Params contenuParams = new Params();
ajouterParam(contenuParams, "description", personne);
ajouterParam(contenuParams, "adresse_01", personne);
ajouterParam(contenuParams, "adresse_02", personne);
content.addText(Format.substitute(contenuHTML, contenuParams));
layout();
} else {
header.setHtml("");
content.removeAll();
}
}
public void rafraichir(Object nouvelleDonnees) {
if (nouvelleDonnees instanceof Personne) {
afficherDetailPersonne((Personne) nouvelleDonnees);
} else if (nouvelleDonnees instanceof StructureListe) {
StructureListe listeInstitutions = (StructureListe) nouvelleDonnees;
// Test pour savoir si la liste contient des éléments
if (listeInstitutions.size() == 0) {
afficherDetailPersonne(null);
}
}
}
}