Subversion Repositories eFlore/Applications.coel

Rev

Rev 150 | Rev 189 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
150 gduche 1
package org.tela_botanica.client.vues;
2
 
3
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.modeles.Personne;
183 gduche 6
import org.tela_botanica.client.modeles.Projet;
7
import org.tela_botanica.client.modeles.ProjetsListeAsyncDao;
150 gduche 8
import org.tela_botanica.client.modeles.Structure;
9
import org.tela_botanica.client.modeles.StructureListe;
10
 
11
import com.extjs.gxt.ui.client.Registry;
12
import com.extjs.gxt.ui.client.Style.Scroll;
13
import com.extjs.gxt.ui.client.util.Format;
14
import com.extjs.gxt.ui.client.util.Params;
15
import com.extjs.gxt.ui.client.widget.ContentPanel;
16
import com.extjs.gxt.ui.client.widget.Html;
17
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
18
 
19
public class PersonneDetailPanneauVue extends ContentPanel implements Rafraichissable {
20
 
21
	private ContentPanel content;
22
	private Html header;
183 gduche 23
	private String enteteHTML = "<div class='coel-detail'><h1>{0}</h1><h2><a href=\"mailto:{1}\">{1}</a></h2></div>";
24
	private String contenuHTML = "<div style='padding: 12px;'><p>{0}</p><b>Adresse: </b>{1}<br />{2}<br /></div>";
150 gduche 25
	private String structureNom = null;
26
	private String structureVille = null;
27
	private String structureDescription = null;
183 gduche 28
 
150 gduche 29
	public PersonneDetailPanneauVue() {
30
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
31
 
32
		setHeaderVisible(false);
33
		setLayout(new FitLayout());
34
 
35
		content = new ContentPanel();
36
		content.setBodyBorder(false);
37
		content.setHeaderVisible(false);
38
		content.setScrollMode(Scroll.AUTO);
39
 
40
		header = new Html();
41
		header.setStyleName("coel-detail");
42
		content.setTopComponent(header);
43
 
44
		add(content);
45
	}
46
 
183 gduche 47
	public void ajouterParam(Params parametres, String nomChamp, Personne personne)	{
48
		parametres.add(personne.obtenirValeurChamp(nomChamp));
49
		//return parametres;
50
	}
51
 
150 gduche 52
	public void afficherDetailPersonne(Personne personne) {
53
		if (personne != null) {
54
			content.removeAll();
55
 
183 gduche 56
			//Header
150 gduche 57
			Params enteteParams = new Params();
183 gduche 58
			ajouterParam(enteteParams, "fmt_nom_complet", personne);
59
			ajouterParam(enteteParams, "truk_courriel", personne);
60
 
61
			header.getElement().setInnerHTML(Format.substitute(enteteHTML, enteteParams));
62
 
63
			//Contenu
150 gduche 64
			Params contenuParams = new Params();
183 gduche 65
			ajouterParam(contenuParams, "description", personne);
150 gduche 66
 
183 gduche 67
			ajouterParam(contenuParams, "adresse_01", personne);
68
			ajouterParam(contenuParams, "adresse_02", personne);
69
 
70
 
71
			content.addText(Format.substitute(contenuHTML, contenuParams));
72
 
150 gduche 73
			layout();
74
		} else {
75
			header.setHtml("");
76
			content.removeAll();
77
		}
78
	}
79
 
183 gduche 80
	public void rafraichir(Object nouvelleDonnees) {
81
		if (nouvelleDonnees instanceof Personne) {
82
			afficherDetailPersonne((Personne) nouvelleDonnees);
150 gduche 83
		} else if (nouvelleDonnees instanceof StructureListe) {
84
			StructureListe listeInstitutions = (StructureListe) nouvelleDonnees;
85
			// Test pour savoir si la liste contient des éléments
86
			if (listeInstitutions.size() == 0) {
183 gduche 87
				afficherDetailPersonne(null);
150 gduche 88
			}
183 gduche 89
		}
150 gduche 90
	}
91
 
92
}