Subversion Repositories eFlore/Applications.coel

Rev

Rev 780 | Rev 820 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 780 Rev 797
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import java.util.Collection;
3
import java.util.Collection;
4
import java.util.HashMap;
4
import java.util.HashMap;
5
import java.util.Iterator;
5
import java.util.Iterator;
6
import java.util.LinkedList;
6
import java.util.LinkedList;
7
import java.util.MissingResourceException;
7
import java.util.MissingResourceException;
8
 
8
 
9
import org.tela_botanica.client.ComposantId;
9
import org.tela_botanica.client.ComposantId;
10
import org.tela_botanica.client.Mediateur;
10
import org.tela_botanica.client.Mediateur;
11
import org.tela_botanica.client.RegistreId;
11
import org.tela_botanica.client.RegistreId;
12
import org.tela_botanica.client.interfaces.Rafraichissable;
12
import org.tela_botanica.client.interfaces.Rafraichissable;
13
import org.tela_botanica.client.modeles.Configuration;
13
import org.tela_botanica.client.modeles.Configuration;
14
import org.tela_botanica.client.modeles.Personne;
14
import org.tela_botanica.client.modeles.Personne;
15
import org.tela_botanica.client.modeles.Valeur;
15
import org.tela_botanica.client.modeles.Valeur;
16
import org.tela_botanica.client.modeles.ValeurListe;
16
import org.tela_botanica.client.modeles.ValeurListe;
17
import org.tela_botanica.client.util.UtilTruk;
17
import org.tela_botanica.client.util.UtilTruk;
18
 
18
 
19
import com.extjs.gxt.ui.client.Registry;
19
import com.extjs.gxt.ui.client.Registry;
20
import com.extjs.gxt.ui.client.Style.Scroll;
20
import com.extjs.gxt.ui.client.Style.Scroll;
21
import com.extjs.gxt.ui.client.util.Format;
21
import com.extjs.gxt.ui.client.util.Format;
22
import com.extjs.gxt.ui.client.util.Params;
22
import com.extjs.gxt.ui.client.util.Params;
23
import com.extjs.gxt.ui.client.widget.ContentPanel;
23
import com.extjs.gxt.ui.client.widget.ContentPanel;
24
import com.extjs.gxt.ui.client.widget.Html;
24
import com.extjs.gxt.ui.client.widget.Html;
25
import com.extjs.gxt.ui.client.widget.TabItem;
25
import com.extjs.gxt.ui.client.widget.TabItem;
26
import com.extjs.gxt.ui.client.widget.TabPanel;
26
import com.extjs.gxt.ui.client.widget.TabPanel;
27
import com.extjs.gxt.ui.client.widget.form.FieldSet;
27
import com.extjs.gxt.ui.client.widget.form.FieldSet;
28
import com.extjs.gxt.ui.client.widget.form.LabelField;
28
import com.extjs.gxt.ui.client.widget.form.LabelField;
29
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout;
29
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout;
30
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
30
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
31
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
31
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
32
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
32
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
33
import com.google.gwt.user.client.ui.Image;
33
import com.google.gwt.user.client.ui.Image;
34
 
34
 
35
public class PersonneDetailVue extends DetailVue implements Rafraichissable {
35
public class PersonneDetailVue extends DetailVue implements Rafraichissable {
36
 
36
 
37
	
37
	
38
	private TabPanel tabPanel;
38
	private TabPanel tabPanel;
39
	private Html entete;
39
	private Html entete;
40
	
40
	
41
	private TabItem tabIdentite;
41
	private TabItem tabIdentite;
42
	private TabItem tabAdresse;
42
	private TabItem tabAdresse;
43
	private TabItem tabInfosNat;
43
	private TabItem tabInfosNat;
44
	private TabItem tabLogos;
44
	private TabItem tabLogos;
45
	
45
	
46
	public PersonneDetailVue(Mediateur mediateur) {
46
	public PersonneDetailVue(Mediateur mediateur) {
47
		
47
		
48
		super(mediateur);
48
		super(mediateur);
49
		setLayout(new FitLayout()); 
49
		setLayout(new FitLayout()); 
50
		
50
		
51
		entete = new Html();
51
		entete = new Html();
52
		entete.setId(ComposantId.ZONE_DETAIL_ENTETE);
52
		entete.setId(ComposantId.ZONE_DETAIL_ENTETE);
53
		
53
		
54
		ContentPanel panneauPrincipal = new ContentPanel();
54
		ContentPanel panneauPrincipal = new ContentPanel();
55
		panneauPrincipal.setLayout(new FitLayout());
55
		panneauPrincipal.setLayout(new FitLayout());
56
		panneauPrincipal.setHeaderVisible(false);
56
		panneauPrincipal.setHeaderVisible(false);
57
		panneauPrincipal.setBodyBorder(true);
57
		panneauPrincipal.setBodyBorder(true);
58
		panneauPrincipal.setTopComponent(entete);
58
		panneauPrincipal.setTopComponent(entete);
59
		
59
		
60
		tabIdentite = new TabItem(mediateur.i18nC.personneIdentite());
60
		tabIdentite = new TabItem(mediateur.i18nC.personneIdentite());
61
		tabIdentite.setLayout(new AnchorLayout());
61
		tabIdentite.setLayout(new AnchorLayout());
62
		tabIdentite.setScrollMode(Scroll.AUTO);	
62
		tabIdentite.setScrollMode(Scroll.AUTO);	
63
		
63
		
64
		tabAdresse = new TabItem(mediateur.i18nC.personneAdresses());
64
		tabAdresse = new TabItem(mediateur.i18nC.personneAdresses());
65
		tabAdresse.setLayout(new FitLayout());
65
		tabAdresse.setLayout(new FitLayout());
66
		tabAdresse.setScrollMode(Scroll.AUTO);
66
		tabAdresse.setScrollMode(Scroll.AUTO);
67
		
67
		
68
		tabInfosNat = new TabItem(mediateur.i18nC.personneInfoNat());
68
		tabInfosNat = new TabItem(mediateur.i18nC.personneInfoNat());
69
		tabInfosNat.setScrollMode(Scroll.AUTO);
69
		tabInfosNat.setScrollMode(Scroll.AUTO);
70
		
70
		
71
		tabLogos = new TabItem(mediateur.i18nC.personneLogos());
71
		tabLogos = new TabItem(mediateur.i18nC.personneLogos());
72
		tabLogos.setScrollMode(Scroll.AUTO);
72
		tabLogos.setScrollMode(Scroll.AUTO);
73
		tabLogos.setLayout(new FlowLayout());
73
		tabLogos.setLayout(new FlowLayout());
74
		
74
		
75
		tabPanel = new TabPanel();
75
		tabPanel = new TabPanel();
76
		tabPanel.setId(ComposantId.ZONE_DETAIL_CORPS);
76
		tabPanel.setId(ComposantId.ZONE_DETAIL_CORPS);
77
		tabPanel.setBodyBorder(false);
77
		tabPanel.setBodyBorder(false);
78
		
78
		
79
		tabPanel.add(tabIdentite);
79
		tabPanel.add(tabIdentite);
80
		tabPanel.add(tabAdresse);
80
		tabPanel.add(tabAdresse);
81
		tabPanel.add(tabInfosNat);
81
		tabPanel.add(tabInfosNat);
82
		tabPanel.add(tabLogos);
82
		tabPanel.add(tabLogos);
83
		
83
		
84
		panneauPrincipal.add(tabPanel);
84
		panneauPrincipal.add(tabPanel);
85
		add(panneauPrincipal);
85
		add(panneauPrincipal);
86
	}
86
	}
87
 
87
 
88
	private HashMap hmLabelFieldRegion = new HashMap();
88
	private HashMap hmLabelFieldRegion = new HashMap();
89
	
89
	
90
	public void afficherDetailPersonne(Personne personne) {
90
	public void afficherDetailPersonne(Personne personne) {
91
		if (personne != null) {
91
		if (personne != null) {
92
			
92
			
93
			String tplEntete = initialiserTplEntete();
93
			String tplEntete = initialiserTplEntete();
94
			
94
			
95
			Params enteteParams = new Params();
95
			Params enteteParams = new Params();
96
			enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
96
			enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
97
			enteteParams.set("mail", (String) personne.get("courriel_princ"));
97
			enteteParams.set("mail", (String) personne.get("courriel_princ"));
98
			
98
			
99
			LinkedList lstLogos = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_logo");			
99
			LinkedList lstLogos = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_logo");			
100
			if (lstLogos!=null && lstLogos.size() > 0)	{
100
			if (lstLogos!=null && lstLogos.size() > 0)	{
101
				
101
				
102
				tabLogos.removeAll();
102
				tabLogos.removeAll();
103
				String urlLogoPrinc = (String) lstLogos.get(0);
103
				String urlLogoPrinc = (String) lstLogos.get(0);
104
				if (!urlLogoPrinc.trim().equals(""))	{
104
				if (!urlLogoPrinc.trim().equals(""))	{
105
					tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>" + tplEntete;
105
					tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>" + tplEntete;
106
					enteteParams.set("image", urlLogoPrinc);
106
					enteteParams.set("image", urlLogoPrinc);
107
				}
107
				}
108
				
108
				
109
				Iterator<String> itLogo = lstLogos.iterator();
109
				Iterator<String> itLogo = lstLogos.iterator();
110
				while (itLogo.hasNext()){
110
				while (itLogo.hasNext()){
111
					String urlLogoCourant = itLogo.next();
111
					String urlLogoCourant = itLogo.next();
112
					Image imgCourante = new Image(urlLogoCourant);
112
					Image imgCourante = new Image(urlLogoCourant);
113
					tabLogos.add(imgCourante);		
113
					tabLogos.add(imgCourante);		
114
				}
114
				}
115
				tabLogos.enable();
115
				tabLogos.enable();
116
				
116
				
117
			} else {
117
			} else {
118
				enteteParams.set("image", "");
118
				enteteParams.set("image", "");
119
				tabLogos.disable();
119
				tabLogos.disable();
120
			}
120
			}
121
			
121
			
122
			entete.el().setInnerHtml(Format.substitute(tplEntete, enteteParams));
122
			entete.el().setInnerHtml(Format.substitute(tplEntete, enteteParams));
123
			
123
			
124
			String tplIdentite = initialiserTplIdentite();
124
			String tplIdentite = initialiserTplIdentite();
125
			
125
			
126
			Params tabIdentiteParams = new Params();
126
			Params tabIdentiteParams = new Params();
127
			tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
127
			tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
128
			tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
128
			tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
129
			tabIdentiteParams.set("naissance_date", personne.getString("naissance_date"));
129
			tabIdentiteParams.set("naissance_date", personne.getString("naissance_date"));
130
			tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu"));
130
			tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu"));
131
			tabIdentiteParams.set("deces_date", personne.getString("deces_date"));
131
			tabIdentiteParams.set("deces_date", personne.getString("deces_date"));
132
			tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
132
			tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
133
			tabIdentiteParams.set("description", personne.getString("description"));
133
			tabIdentiteParams.set("description", personne.getString("description"));
134
			
134
			
135
			tabInfosNat.removeAll();
135
			tabInfosNat.removeAll();
136
			
136
			
137
			// Nom autre : champ truk; non-typé
137
			// Nom autre : champ truk; non-typé
138
			LinkedList<String> nomsAutre = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_nom_autre");
138
			LinkedList<String> nomsAutre = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_nom_autre");
139
			String listeNoms = "";
139
			String listeNoms = "";
140
			if ((nomsAutre != null)&&(nomsAutre.size() > 0))	{
140
			if ((nomsAutre != null)&&(nomsAutre.size() > 0))	{
141
				listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", ");				
141
				listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", ");				
142
			}
142
			}
143
			tabIdentiteParams.set("nom_autre", listeNoms);
143
			tabIdentiteParams.set("nom_autre", listeNoms);
144
			
144
			
145
			// Abréviations, autre : non-typé
145
			// Abréviations, autre : non-typé
146
			LinkedList<String> abrevAutres = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_abreviation_autre");
146
			LinkedList<String> abrevAutres = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_abreviation_autre");
147
			String listeAbrev = "";
147
			String listeAbrev = "";
148
			if ((abrevAutres != null)&&(abrevAutres.size() > 0))	{
148
			if ((abrevAutres != null)&&(abrevAutres.size() > 0))	{
149
				listeAbrev = UtilTruk.traiterTrukListe(abrevAutres, ", ");
149
				listeAbrev = UtilTruk.traiterTrukListe(abrevAutres, ", ");
150
			}
150
			}
151
			tabIdentiteParams.set("abreviation_autre", listeAbrev);
151
			tabIdentiteParams.set("abreviation_autre", listeAbrev);
152
			
152
			
153
			HashMap<String, String> mapTelephones = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_telephone");
153
			HashMap<String, String> mapTelephones = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_telephone");
154
			if ((mapTelephones != null)&&(mapTelephones.size() > 0))	{
154
			if ((mapTelephones != null)&&(mapTelephones.size() > 0))	{
155
				
155
				
156
				Collection<String> telephoneKeys = mapTelephones.keySet();
156
				Collection<String> telephoneKeys = mapTelephones.keySet();
157
				Iterator<String> itTelephones = telephoneKeys.iterator();
157
				Iterator<String> itTelephones = telephoneKeys.iterator();
158
				
158
				
159
				while (itTelephones.hasNext())	{
159
				while (itTelephones.hasNext())	{
160
					String key = itTelephones.next();
160
					String key = itTelephones.next();
161
					String label = mapTelephones.get(key);
161
					String label = mapTelephones.get(key);
162
					
162
					
163
					try {
163
					try {
164
						label = mediateur.i18nC.getString(label);
164
						label = mediateur.i18nC.getString(label);
165
					}
165
					}
166
					catch (MissingResourceException e)	{
166
					catch (MissingResourceException e)	{
167
					}
167
					}
168
					
168
					
169
					tplIdentite += "<b>" + label + ":</b> " + key;
169
					tplIdentite += "<b>" + label + ":</b> " + key;
170
					tplIdentite += "<br />";
170
					tplIdentite += "<br />";
171
				}
171
				}
172
			}
172
			}
173
			
173
			
174
			// Courriel :Champ truk de la forme "Adresse@adr.com;; adr2@adr.fr ..."
174
			// Courriel :Champ truk de la forme "Adresse@adr.com;; adr2@adr.fr ..."
175
			LinkedList<String> listeCourriel = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_courriel");
175
			LinkedList<String> listeCourriel = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_courriel");
176
			if ((listeCourriel!=null)&&(listeCourriel.size() > 0))	{
176
			if ((listeCourriel!=null)&&(listeCourriel.size() > 0))	{
177
				String strLabelCourriel = "Courriel";
177
				String strLabelCourriel = "Courriel";
178
				if (listeCourriel.size() > 1)	{
178
				if (listeCourriel.size() > 1)	{
179
					strLabelCourriel += "s";	
179
					strLabelCourriel += "s";	
180
				}
180
				}
181
				
181
				
182
				String valeurCourriel = "";
182
				String valeurCourriel = "";
183
				Iterator<String> itCourriel = listeCourriel.iterator();
183
				Iterator<String> itCourriel = listeCourriel.iterator();
184
				while (itCourriel.hasNext())	{
184
				while (itCourriel.hasNext())	{
185
					String valeurCourante = itCourriel.next();
185
					String valeurCourante = itCourriel.next();
186
					valeurCourriel += "<br /><a href=\"mailto:" + valeurCourante + "\">" + valeurCourante + "</a>";
186
					valeurCourriel += "<br /><a href=\"mailto:" + valeurCourante + "\">" + valeurCourante + "</a>";
187
				}
187
				}
188
				tplIdentite += valeurCourriel;
188
				tplIdentite += valeurCourriel;
189
			}
189
			}
190
 
190
 
191
			// Url Site Webs
191
			// Url Site Webs
192
			LinkedList listeUrl = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_url");
192
			LinkedList listeUrl = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_url");
193
			if (listeUrl!=null && listeUrl.size() > 0)	{
193
			if (listeUrl!=null && listeUrl.size() > 0)	{
194
				
194
				
195
				tplIdentite += "<br /><br /><b>Sites web:</b><br /><span style='display:inline-block'>";
195
				tplIdentite += "<br /><br /><b>Sites web:</b><br /><span style='display:inline-block'>";
196
				String strUrl = "";
196
				String strUrl = "";
197
				Iterator<String> urlIt = listeUrl.iterator();
197
				Iterator<String> urlIt = listeUrl.iterator();
198
				while (urlIt.hasNext())	{
198
				while (urlIt.hasNext())	{
199
					String urlCourante = urlIt.next();
199
					String urlCourante = urlIt.next();
200
					strUrl += "<a href=\""+urlCourante+"\">" + urlCourante + "</a> <br/>";
200
					strUrl += "<a href=\""+urlCourante+"\">" + urlCourante + "</a> <br/>";
201
				}
201
				}
202
				tplIdentite += strUrl + "</span><br />";
202
				tplIdentite += strUrl + "</span><br />";
203
			}			
203
			}			
204
			
204
			
205
			tplIdentite += "</div>";
205
			tplIdentite += "</div>";
206
			
206
			
207
			afficherOnglet(tplIdentite, tabIdentiteParams, tabIdentite);
207
			afficherOnglet(tplIdentite, tabIdentiteParams, tabIdentite);
208
			
208
			
209
			String tabAdresseTpl = 	"<div class='css_corps'>" +
209
			String tabAdresseTpl = 	"<div class='{css_corps}'>" +
210
									"	<div class='css_fieldset'>" +
210
									"	<div class='{css_fieldset}'>" +
211
									"		<h1>Adresse personnelle:</h1>" +
211
									"		<h2>Adresse personnelle:</h2>" +
212
									"		{adresse01} <br />" +
212
									"		{adresse01} <br />" +
213
									"		{adresse02} <br />" +
213
									"		{adresse02} <br />" +
214
									"		{boitePostale}<br />" +
214
									"		{boitePostale}<br />" +
215
									"		{codePostal} {region}<br />" +
215
									"		{codePostal} {region}<br />" +
216
									"		<span style='uppercase'>{pays}</span><br />" +
216
									"		<span style='uppercase'>{pays}</span><br />" +
217
									"</div>";
217
									"</div>";
218
			//Adresses :
218
			//Adresses :
219
			Params paramAdresseTpl = new Params();
219
			Params paramAdresseTpl = new Params();
220
			paramAdresseTpl.set("adresse01", (String) personne.obtenirValeurChamp("adresse_01"));
220
			paramAdresseTpl.set("adresse01", (String) personne.obtenirValeurChamp("adresse_01"));
221
			paramAdresseTpl.set("adresse02", (String) personne.obtenirValeurChamp("adresse_02"));
221
			paramAdresseTpl.set("adresse02", (String) personne.obtenirValeurChamp("adresse_02"));
222
			paramAdresseTpl.set("boitePostale", (String) personne.obtenirValeurChamp("bp"));
222
			paramAdresseTpl.set("boitePostale", (String) personne.obtenirValeurChamp("bp"));
223
			paramAdresseTpl.set("codePostal", (String) personne.obtenirValeurChamp("code_postal"));
223
			paramAdresseTpl.set("codePostal", (String) personne.obtenirValeurChamp("code_postal"));
224
			paramAdresseTpl.set("ville", (String) personne.obtenirValeurChamp("ville"));
224
			paramAdresseTpl.set("ville", (String) personne.obtenirValeurChamp("ville"));
225
			paramAdresseTpl.set("region", (String) personne.obtenirValeurChamp("region"));
225
			paramAdresseTpl.set("region", (String) personne.obtenirValeurChamp("region"));
226
			paramAdresseTpl.set("pays",  (String) personne.obtenirValeurChamp("pays"));
226
			paramAdresseTpl.set("pays",  (String) personne.obtenirValeurChamp("pays"));
227
			
227
			
228
			afficherOnglet(tabAdresseTpl, paramAdresseTpl, tabAdresse);
228
			afficherOnglet(tabAdresseTpl, paramAdresseTpl, tabAdresse);
229
			tabAdresse.setStyleAttribute("padding", "15px");
229
			tabAdresse.setStyleAttribute("padding", "15px");
230
 
230
 
231
			// Infos naturalistes :Biographie, Spécialité (typé)
231
			// Infos naturalistes :Biographie, Spécialité (typé)
232
			
-
 
233
			String tplInfosNat = "<div class='css_corps'>" +
232
			String tplInfosNat = "<div class='{css_corps}'>" +
234
								 "	<div class='css_fieldset'>" +
233
								 "	<div class='{css_fieldset}'>" +
235
								 "		<h1>Spécialités</h1>"+
234
								 "		<h2>" + mediateur.i18nC.personneSpecialite() + "</h1>"+
236
								 "			{specialites}" +
235
								 "			{specialites}" +
-
 
236
								 "		<h2>" + mediateur.i18nC.personneRecolte() + "</h2>" +
237
								 "		<h1>Récolte</h1>" + 
237
								 "		{recoltes}" +
238
								 "  </div>" +
238
								 "  </div>" +
239
								 "</div>";
239
								 "</div>";
240
			Params prmInfosNat = new Params();
240
			Params prmInfosNat = new Params();
241
			
-
 
242
			String strSpecialites = "";
-
 
243
			HashMap hmSpecialite = (HashMap) personne.getChaineDenormaliseAsMapOrList("ce_truk_specialite");
-
 
244
			if ((hmSpecialite != null)&&(hmSpecialite.size() > 0))	{
-
 
245
				
-
 
246
				Collection<String> specialiteKeys = hmSpecialite.keySet();
-
 
247
				Iterator<String> itSpec = specialiteKeys.iterator();
-
 
248
				
-
 
249
				while (itSpec.hasNext())	{
-
 
250
					String key = itSpec.next();
-
 
251
					LabelField specLabel = new LabelField();
-
 
252
					String label = "";
-
 
253
					try {
241
			
254
						label = mediateur.i18nC.getString(key);
-
 
255
					}
-
 
256
					catch (MissingResourceException e)	{
-
 
257
						label = key;
-
 
258
					}
-
 
259
					
-
 
260
					specLabel.setFieldLabel( label + ":");
-
 
261
					
-
 
262
					specLabel.setValue(hmSpecialite.get(key));
-
 
263
					
-
 
264
					strSpecialites += specLabel + "<br />";
-
 
265
				}
-
 
266
			}
-
 
-
 
242
			//TODO : replace id region par valeur
-
 
243
			
-
 
244
			String specialite = construireTxtTruck(personne.getSpecialite());
-
 
245
			prmInfosNat.set("specialites", specialite);
267
			prmInfosNat.set("specialites", strSpecialites);
246
			
268
			
247
			String recolte = construireTxtTruck(personne.getString("truk_recolte"));
-
 
248
			prmInfosNat.set("recoltes", recolte);
-
 
249
			
269
			String strRecolte  ="";
-
 
270
 
-
 
271
			
-
 
272
			LinkedList<String> lstRecolte = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_recolte");
-
 
273
			if ((lstRecolte!=null)&&(lstRecolte.size()>0))	{
-
 
274
				FieldSet fsRecolte = new FieldSet();
-
 
275
				fsRecolte.setHeading("Récoltes");
-
 
276
				fsRecolte.setLayout(new FormLayout());
-
 
277
				
-
 
278
				Iterator<String> itRecolte = lstRecolte.iterator();
-
 
279
				while (itRecolte.hasNext())	{
-
 
280
					
-
 
281
					String recolteCourante = itRecolte.next();
-
 
282
					LabelField lfRecolte = new LabelField();
-
 
283
					String[] splitRecolte = recolteCourante.split("\\|");
-
 
284
					
-
 
285
					String labelRecolte = "";
-
 
286
					if (splitRecolte.length > 1)	{
-
 
287
						lfRecolte.setValue(splitRecolte[1]);
-
 
288
					}
-
 
289
					
-
 
290
					lfRecolte.setFieldLabel(splitRecolte[0]);
-
 
291
					fsRecolte.add(lfRecolte);
-
 
292
					
-
 
293
					LinkedList<LabelField> lstComposantsRegion = (LinkedList<LabelField>) hmLabelFieldRegion.get(splitRecolte[0]);
-
 
294
					
-
 
295
					if (lstComposantsRegion == null)	{
-
 
296
						lstComposantsRegion = new LinkedList<LabelField>();
-
 
297
					}
-
 
298
					
-
 
299
					lstComposantsRegion.add(lfRecolte);
-
 
300
					hmLabelFieldRegion.remove(splitRecolte[0]);
-
 
301
					hmLabelFieldRegion.put(splitRecolte[0], lstComposantsRegion);
-
 
302
									
-
 
303
				}
-
 
304
				
250
			afficherOnglet(tplInfosNat, prmInfosNat, tabInfosNat);
305
				tabInfosNat.add(fsRecolte);
251
			tabAdresse.setStyleAttribute("padding", "15px");
306
			}
252
			
307
			
253
			
308
			changerLabelRegions();
254
			changerLabelRegions();
309
			layout();
255
			layout();
310
		} 
256
		} 
311
	}
257
	}
312
	
258
	
313
	public String initialiserTplEntete()	{
259
	public String initialiserTplEntete()	{
314
		
260
		
315
		return "<div id='{css_id}'>"+
261
		return "<div id='{css_id}'>"+
316
			   "<h1>{nom}</h1>"+
262
			   "<h1>{nom}</h1>"+
317
			   "<h2><a href='{mail}'>{mail}</a></h2>" +
263
			   "<h2><a href='{mail}'>{mail}</a></h2>" +
318
			   "</div>";
264
			   "</div>";
319
	}
265
	}
320
	
266
	
321
	
267
	
322
	public String initialiserTplIdentite() {
268
	public String initialiserTplIdentite() {
323
	
269
	
324
		return "<div class='{css_corps}'>" +
270
		return "<div class='{css_corps}'>" +
325
			   "	<div class='{css_fieldset}'>" +
271
			   "	<div class='{css_fieldset}'>" +
326
				"	 <h2>Noms:</h2>" +
272
				"	 <h2>Noms:</h2>" +
327
				"	 <span><b>" + mediateur.i18nC.personneNomComplet() + ":</b></span> {nom_complet}<br />" +
273
				"	 <span><b>" + mediateur.i18nC.personneNomComplet() + ":</b></span> {nom_complet}<br />" +
328
				"	 <span><b>" + mediateur.i18nC.personneNomAutre() + ":</b></span> {nom_autre}<br />" +
274
				"	 <span><b>" + mediateur.i18nC.personneNomAutre() + ":</b></span> {nom_autre}<br />" +
329
				"	 <span><b>" + mediateur.i18nC.personneAbreviation() + ":</b></span> {abreviation}<br />" +
275
				"	 <span><b>" + mediateur.i18nC.personneAbreviation() + ":</b></span> {abreviation}<br />" +
330
				" 	 <span><b>" + mediateur.i18nC.personneAbreviationAutre() + ":</b></b></span> {abreviation_autre}<br /><br />" +
276
				" 	 <span><b>" + mediateur.i18nC.personneAbreviationAutre() + ":</b></b></span> {abreviation_autre}<br /><br />" +
331
				"	 <h2>Naissance:</h2>" +
277
				"	 <h2>Naissance:</h2>" +
332
				" 	 <span><b>" + mediateur.i18nC.personneDateNaissance() + "</b></span> {naissance_date}<br />" +
278
				" 	 <span><b>" + mediateur.i18nC.personneDateNaissance() + "</b></span> {naissance_date}<br />" +
333
				" 	 <span><b>" + mediateur.i18nC.personneLieuNaissance() + ":</b></span> {naissance_lieu}<br /><br />" +
279
				" 	 <span><b>" + mediateur.i18nC.personneLieuNaissance() + ":</b></span> {naissance_lieu}<br /><br />" +
334
				"	<h2>Décès:</h2>" +
280
				"	<h2>Décès:</h2>" +
335
				" 	 <span><b>" + mediateur.i18nC.personneDateDeces() + ":</b></span> {deces_date}<br />" +
281
				" 	 <span><b>" + mediateur.i18nC.personneDateDeces() + ":</b></span> {deces_date}<br />" +
336
				" 	 <span><b>" + mediateur.i18nC.personneLieuDeces() + ":</b></span> {deces_lieu}<br /><br />" +
282
				" 	 <span><b>" + mediateur.i18nC.personneLieuDeces() + ":</b></span> {deces_lieu}<br /><br />" +
337
				" 	</div>" +
283
				" 	</div>" +
338
				"</div>" +
284
				"</div>" +
339
				"<div class='{css_corps}'>" +
285
				"<div class='{css_corps}'>" +
340
				"	<div class='css_fieldset'> " +
286
				"	<div class='css_fieldset'> " +
341
				"	<h2>Description:</h2>" + 
287
				"	<h2>Description:</h2>" + 
342
				" 		{description}<br />" +
288
				" 		{description}<br />" +
343
				"	</div>" +
289
				"	</div>" +
344
				"<br />";
290
				"<br />";
345
	}
291
	}
346
	
292
	
347
	private void changerLabelRegions()	{
293
	private void changerLabelRegions()	{
348
		
294
		
349
		Collection<String> colClesComposants = hmLabelFieldRegion.keySet();
295
		Collection<String> colClesComposants = hmLabelFieldRegion.keySet();
350
		Iterator<String> itComposants = colClesComposants.iterator();
296
		Iterator<String> itComposants = colClesComposants.iterator();
351
		
297
		
352
		while (itComposants.hasNext())	{
298
		while (itComposants.hasNext())	{
353
			String region = itComposants.next();
299
			String region = itComposants.next();
354
			mediateur.obtenirValeurEtRafraichir(this, "region", region);
300
			mediateur.obtenirValeurEtRafraichir(this, "region", region);
355
		}
301
		}
356
	}
302
	}
357
 
303
 
358
	private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue)	{
304
	private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue)	{
359
	
305
	
360
		if ((tfValue!=null)&&(!tfValue.toString().trim().equals("")))	{
306
		if ((tfValue!=null)&&(!tfValue.toString().trim().equals("")))	{
361
			
307
			
362
			
308
			
363
			LabelField tf = new LabelField();
309
			LabelField tf = new LabelField();
364
		
310
		
365
			tf.setFieldLabel(tfLabel + ":");
311
			tf.setFieldLabel(tfLabel + ":");
366
			if ((tfLabel==null)||("".equals(tfLabel)))	{
312
			if ((tfLabel==null)||("".equals(tfLabel)))	{
367
				tf.setHideLabel(true);
313
				tf.setHideLabel(true);
368
				tf.setStyleAttribute("margin", "0 0 0 105px");
314
				tf.setStyleAttribute("margin", "0 0 0 105px");
369
			}
315
			}
370
			tf.setValue(tfValue);
316
			tf.setValue(tfValue);
371
		
317
		
372
			//Ajout au fieldSet
318
			//Ajout au fieldSet
373
			fs.add(tf);
319
			fs.add(tf);
374
		}
320
		}
375
	}
321
	}
376
	
322
	
377
	
323
	
378
		
324
		
379
	private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
325
	private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
380
	
326
	
381
	public void rafraichir(Object nouvellesDonnees) {
327
	public void rafraichir(Object nouvellesDonnees) {
382
		
328
		
383
		// Si on a reçu une personne on en affiche les détails
329
		// Si on a reçu une personne on en affiche les détails
384
		if (nouvellesDonnees instanceof Personne) {
330
		if (nouvellesDonnees instanceof Personne) {
385
			afficherDetailPersonne((Personne) nouvellesDonnees);
331
			afficherDetailPersonne((Personne) nouvellesDonnees);
386
		} else if (nouvellesDonnees instanceof ValeurListe)	{
332
		} else if (nouvellesDonnees instanceof ValeurListe)	{
387
			
333
			
388
			ValeurListe listeValeur = (ValeurListe) nouvellesDonnees;
334
			ValeurListe listeValeur = (ValeurListe) nouvellesDonnees;
389
			if (listeValeur.getId().equals(config.getListeId("region")))	{
335
			if (listeValeur.getId().equals(config.getListeId("region")))	{
390
				
336
				
391
				Collection colCleListeValeur = listeValeur.keySet();
337
				Collection colCleListeValeur = listeValeur.keySet();
392
				
338
				
393
				Iterator<String> itLv = colCleListeValeur.iterator();
339
				Iterator<String> itLv = colCleListeValeur.iterator();
394
				
340
				
395
				while (itLv.hasNext())	{
341
				while (itLv.hasNext())	{
396
					String idRegion = itLv.next();
342
					String idRegion = itLv.next();
397
					Valeur region = listeValeur.get(idRegion);
343
					Valeur region = listeValeur.get(idRegion);
398
					
344
					
399
					
345
					
400
					
346
					
401
					if (region != null)	{
347
					if (region != null)	{
402
						
348
						
403
						String strRegionId = region.getAbreviation();
349
						String strRegionId = region.getAbreviation();
404
						
350
						
405
						LinkedList<LabelField> listComposantsRegion = (LinkedList) hmLabelFieldRegion.get(strRegionId);
351
						LinkedList<LabelField> listComposantsRegion = (LinkedList) hmLabelFieldRegion.get(strRegionId);
406
						for (int i=0; i < listComposantsRegion.size(); i++)	{
352
						for (int i=0; i < listComposantsRegion.size(); i++)	{
407
							LabelField lfRegion = listComposantsRegion.get(i);
353
							LabelField lfRegion = listComposantsRegion.get(i);
408
							lfRegion.setFieldLabel(region.getNom());	
354
							lfRegion.setFieldLabel(region.getNom());	
409
						}
355
						}
410
					
356
					
411
					}
357
					}
412
				}
358
				}
413
			}
359
			}
414
		}
360
		}
415
	}
361
	}
416
 
362
 
417
}
363
}