Subversion Repositories eFlore/Applications.coel

Rev

Rev 183 | Rev 197 | 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
 
189 gduche 3
 
4
 
5
import java.util.List;
6
 
150 gduche 7
import org.tela_botanica.client.RegistreId;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
189 gduche 9
import org.tela_botanica.client.modeles.Information;
150 gduche 10
import org.tela_botanica.client.modeles.Personne;
183 gduche 11
import org.tela_botanica.client.modeles.Projet;
12
import org.tela_botanica.client.modeles.ProjetsListeAsyncDao;
150 gduche 13
import org.tela_botanica.client.modeles.Structure;
14
import org.tela_botanica.client.modeles.StructureListe;
15
 
16
import com.extjs.gxt.ui.client.Registry;
17
import com.extjs.gxt.ui.client.Style.Scroll;
18
import com.extjs.gxt.ui.client.util.Format;
19
import com.extjs.gxt.ui.client.util.Params;
20
import com.extjs.gxt.ui.client.widget.ContentPanel;
21
import com.extjs.gxt.ui.client.widget.Html;
189 gduche 22
import com.extjs.gxt.ui.client.widget.TabItem;
23
import com.extjs.gxt.ui.client.widget.TabPanel;
150 gduche 24
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
189 gduche 25
import com.google.gwt.user.client.ui.FlexTable;
26
import com.google.gwt.user.client.ui.Grid;
27
import com.google.gwt.user.client.ui.Hyperlink;
28
import com.google.gwt.user.client.ui.Label;
29
import com.google.gwt.user.client.ui.Widget;
30
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
31
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
150 gduche 32
 
189 gduche 33
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable {
150 gduche 34
 
189 gduche 35
 
150 gduche 36
	private Html header;
189 gduche 37
 
38
	//TABS
39
	// Informations générales : nom, prénom, adresse, cp, ville, adresse email, sexe, projet
40
	private TabItem infoGenerales;
41
	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>";
42
 
43
	private TabItem infoBio;
44
	private String contenuBio = "";
45
			// <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>";
46
 
47
 
150 gduche 48
	public PersonneDetailPanneauVue() {
189 gduche 49
 
150 gduche 50
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
189 gduche 51
		setLayout(new FitLayout());
150 gduche 52
 
189 gduche 53
		infoGenerales = new TabItem("Informations Générales");
54
		this.add(infoGenerales);
55
 
56
		infoBio = new TabItem("Biographie");
57
		infoBio.disable();
58
		this.add(infoBio);
150 gduche 59
	}
60
 
189 gduche 61
	private void ajouterParam(Params parametres, String nomChamp, Personne personne)	{
62
		Object valeur = personne.obtenirValeurChamp(nomChamp);
63
		parametres.add(valeur);
183 gduche 64
	}
65
 
150 gduche 66
	public void afficherDetailPersonne(Personne personne) {
67
		if (personne != null) {
189 gduche 68
			infoGenerales.removeAll();
69
			infoBio.removeAll();
70
			infoBio.disable();
150 gduche 71
 
189 gduche 72
			//Contenu
73
			Params infoGenParams = new Params();
74
			ajouterParam(infoGenParams, "fmt_nom_complet", personne);
75
			ajouterParam(infoGenParams, "truk_courriel", personne);
76
			ajouterParam(infoGenParams, "adresse_01", personne);
77
			ajouterParam(infoGenParams, "adresse_02", personne);
78
			ajouterParam(infoGenParams, "code_postal", personne);
79
			ajouterParam(infoGenParams, "ville", personne);
80
			ajouterParam(infoGenParams, "description", personne);
81
			ajouterParam(infoGenParams, "cp_truk_fax", personne);
183 gduche 82
 
189 gduche 83
			//Info générales
84
			infoGenerales.addText(Format.substitute(contenuInfo, infoGenParams));
183 gduche 85
 
189 gduche 86
			Params bioParams = new Params();
87
			// Nécessaire que si une biographie existe...
88
			// FIXME : remplacer par un id role?
89
			if ((personne.obtenirValeurChamp("biographie")!=null)&&(!((String) personne.obtenirValeurChamp("biographie")).trim().equals("")))	{
90
 
91
				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>";
92
 
93
				ajouterParam(bioParams, "ce_truk_prefix", personne);
94
				ajouterParam(bioParams, "fmt_nom_complet", personne);
95
				ajouterParam(bioParams, "ce_truk_suffix", personne);
96
				ajouterParam(bioParams, "abreviation", personne);
97
				ajouterParam(bioParams, "naissance_date", personne);
98
				ajouterParam(bioParams, "deces_date", personne);
99
				ajouterParam(bioParams, "biographie", personne);
100
				infoBio.enable();
101
 
102
			}
150 gduche 103
 
183 gduche 104
 
105
 
189 gduche 106
			infoBio.addText(Format.substitute(contenuBio, bioParams));
107
 
150 gduche 108
			layout();
109
		} else {
110
			header.setHtml("");
189 gduche 111
 
150 gduche 112
		}
113
	}
114
 
183 gduche 115
	public void rafraichir(Object nouvelleDonnees) {
116
		if (nouvelleDonnees instanceof Personne) {
117
			afficherDetailPersonne((Personne) nouvelleDonnees);
150 gduche 118
		} else if (nouvelleDonnees instanceof StructureListe) {
119
			StructureListe listeInstitutions = (StructureListe) nouvelleDonnees;
120
			// Test pour savoir si la liste contient des éléments
121
			if (listeInstitutions.size() == 0) {
183 gduche 122
				afficherDetailPersonne(null);
150 gduche 123
			}
183 gduche 124
		}
150 gduche 125
	}
126
 
127
}