150 |
gduche |
1 |
package org.tela_botanica.client.vues;
|
|
|
2 |
|
253 |
gduche |
3 |
import java.util.Collection;
|
197 |
gduche |
4 |
import java.util.HashMap;
|
|
|
5 |
import java.util.Iterator;
|
253 |
gduche |
6 |
import java.util.LinkedList;
|
|
|
7 |
import java.util.MissingResourceException;
|
189 |
gduche |
8 |
|
197 |
gduche |
9 |
|
305 |
gduche |
10 |
import org.tela_botanica.client.Mediateur;
|
150 |
gduche |
11 |
import org.tela_botanica.client.RegistreId;
|
253 |
gduche |
12 |
import org.tela_botanica.client.i18n.Constantes;
|
150 |
gduche |
13 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
305 |
gduche |
14 |
import org.tela_botanica.client.modeles.Configuration;
|
150 |
gduche |
15 |
import org.tela_botanica.client.modeles.Personne;
|
305 |
gduche |
16 |
import org.tela_botanica.client.modeles.Valeur;
|
|
|
17 |
import org.tela_botanica.client.modeles.ValeurListe;
|
259 |
gduche |
18 |
import org.tela_botanica.client.util.UtilTruk;
|
150 |
gduche |
19 |
|
|
|
20 |
import com.extjs.gxt.ui.client.Registry;
|
|
|
21 |
import com.extjs.gxt.ui.client.Style.Scroll;
|
253 |
gduche |
22 |
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
|
215 |
aurelien |
23 |
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
269 |
gduche |
24 |
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
189 |
gduche |
25 |
import com.extjs.gxt.ui.client.widget.TabItem;
|
|
|
26 |
import com.extjs.gxt.ui.client.widget.TabPanel;
|
197 |
gduche |
27 |
import com.extjs.gxt.ui.client.widget.form.FieldSet;
|
246 |
gduche |
28 |
import com.extjs.gxt.ui.client.widget.form.LabelField;
|
150 |
gduche |
29 |
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
197 |
gduche |
30 |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
|
|
|
31 |
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
253 |
gduche |
32 |
import com.extjs.gxt.ui.client.widget.layout.TableData;
|
197 |
gduche |
33 |
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
|
280 |
gduche |
34 |
|
253 |
gduche |
35 |
import com.google.gwt.core.client.GWT;
|
305 |
gduche |
36 |
import com.google.gwt.user.client.Window;
|
197 |
gduche |
37 |
import com.google.gwt.user.client.ui.Image;
|
150 |
gduche |
38 |
|
269 |
gduche |
39 |
public class PersonneDetailPanneauVue extends LayoutContainer implements Rafraichissable {
|
150 |
gduche |
40 |
|
197 |
gduche |
41 |
// Le panneau détail se compose de formulaires tabulés
|
269 |
gduche |
42 |
private TabPanel tabPanel;
|
189 |
gduche |
43 |
|
197 |
gduche |
44 |
// Onglet 1 : identite & contact
|
215 |
aurelien |
45 |
private TabItem tabIdentite;
|
|
|
46 |
|
|
|
47 |
private ContentPanel panneauIdentite;
|
|
|
48 |
private ContentPanel panneauImage;
|
|
|
49 |
|
197 |
gduche |
50 |
private FieldSet fsIdentite;
|
|
|
51 |
private FieldSet fsContact;
|
189 |
gduche |
52 |
|
200 |
gduche |
53 |
// Onglet 2 : Adresses
|
|
|
54 |
private TabItem tabAdresse;
|
|
|
55 |
private FieldSet fsAdressePerso;
|
198 |
gduche |
56 |
// contient : adresse perso / adresse pro
|
|
|
57 |
|
215 |
aurelien |
58 |
// Onglet 3 : Informations naturalistes
|
|
|
59 |
private TabItem tabInfosNat;
|
269 |
gduche |
60 |
private FieldSet fsSpec;
|
198 |
gduche |
61 |
|
305 |
gduche |
62 |
private Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
|
267 |
gduche |
63 |
|
150 |
gduche |
64 |
public PersonneDetailPanneauVue() {
|
189 |
gduche |
65 |
|
269 |
gduche |
66 |
tabPanel = new TabPanel();
|
|
|
67 |
this.add(tabPanel);
|
|
|
68 |
|
198 |
gduche |
69 |
//Constructeur de la classe
|
150 |
gduche |
70 |
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
|
189 |
gduche |
71 |
setLayout(new FitLayout());
|
150 |
gduche |
72 |
|
215 |
aurelien |
73 |
tabIdentite = new TabItem("Identité");
|
|
|
74 |
TableLayout tLayout = new TableLayout(2);
|
|
|
75 |
tabIdentite.setLayout(tLayout);
|
|
|
76 |
tabIdentite.setScrollMode(Scroll.AUTO);
|
189 |
gduche |
77 |
|
215 |
aurelien |
78 |
panneauIdentite = new ContentPanel();
|
|
|
79 |
panneauIdentite.setWidth("400px");
|
|
|
80 |
panneauIdentite.setHeaderVisible(false);
|
|
|
81 |
panneauIdentite.setBorders(false);
|
|
|
82 |
panneauIdentite.setBodyBorder(false);
|
|
|
83 |
panneauImage = new ContentPanel();
|
253 |
gduche |
84 |
panneauImage.setLayout(new FlowLayout());
|
215 |
aurelien |
85 |
panneauImage.setBorders(false);
|
253 |
gduche |
86 |
panneauImage.setWidth(350);
|
215 |
aurelien |
87 |
panneauImage.setBodyBorder(false);
|
|
|
88 |
panneauImage.setHeaderVisible(false);
|
200 |
gduche |
89 |
|
259 |
gduche |
90 |
//Gérer l'alignement vertical en haut
|
253 |
gduche |
91 |
TableData td = new TableData();
|
259 |
gduche |
92 |
td.setVerticalAlign(VerticalAlignment.TOP);
|
|
|
93 |
|
|
|
94 |
tabIdentite.add(panneauIdentite, td);
|
253 |
gduche |
95 |
tabIdentite.add(panneauImage, td);
|
259 |
gduche |
96 |
|
253 |
gduche |
97 |
|
197 |
gduche |
98 |
fsIdentite = new FieldSet();
|
|
|
99 |
fsIdentite.setLayout(new FormLayout());
|
|
|
100 |
|
|
|
101 |
|
|
|
102 |
fsContact = new FieldSet();
|
|
|
103 |
fsContact.setLayout(new FormLayout());
|
|
|
104 |
|
269 |
gduche |
105 |
tabPanel.add(tabIdentite);
|
197 |
gduche |
106 |
|
200 |
gduche |
107 |
//Onglet Adresse:
|
259 |
gduche |
108 |
tabAdresse = new TabItem("Adresses");
|
200 |
gduche |
109 |
fsAdressePerso = new FieldSet();
|
|
|
110 |
fsAdressePerso.setLayout(new FormLayout());
|
|
|
111 |
|
269 |
gduche |
112 |
tabPanel.add(tabAdresse);
|
200 |
gduche |
113 |
|
215 |
aurelien |
114 |
//Onglet info naturalistes
|
|
|
115 |
tabInfosNat = new TabItem("Informations naturalistes");
|
269 |
gduche |
116 |
fsSpec = new FieldSet();
|
|
|
117 |
fsSpec.setLayout(new FormLayout());
|
200 |
gduche |
118 |
|
269 |
gduche |
119 |
tabPanel.add(tabInfosNat);
|
198 |
gduche |
120 |
|
150 |
gduche |
121 |
}
|
|
|
122 |
|
305 |
gduche |
123 |
|
|
|
124 |
private HashMap hmComposants = new HashMap();
|
|
|
125 |
|
150 |
gduche |
126 |
public void afficherDetailPersonne(Personne personne) {
|
|
|
127 |
if (personne != null) {
|
198 |
gduche |
128 |
|
|
|
129 |
|
|
|
130 |
//MAJ Identité : Configurer les fieldSet
|
215 |
aurelien |
131 |
panneauIdentite.removeAll();
|
|
|
132 |
panneauImage.removeAll();
|
150 |
gduche |
133 |
|
197 |
gduche |
134 |
fsIdentite.setHeading("Identité");
|
259 |
gduche |
135 |
//fsIdentite.setWidth("350px");
|
183 |
gduche |
136 |
|
197 |
gduche |
137 |
fsContact.setHeading("Contact");
|
259 |
gduche |
138 |
//fsContact.setWidth("350px");
|
183 |
gduche |
139 |
|
215 |
aurelien |
140 |
panneauIdentite.add(fsIdentite);
|
|
|
141 |
|
259 |
gduche |
142 |
|
253 |
gduche |
143 |
//La personne peut avoir un ou plusieurs logo
|
|
|
144 |
panneauImage.setHeight("100%");
|
259 |
gduche |
145 |
panneauImage.setPosition(0, 6);
|
|
|
146 |
panneauImage.setBorders(false);
|
198 |
gduche |
147 |
|
253 |
gduche |
148 |
LinkedList<String> listeLogos = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_logo");
|
|
|
149 |
if ((listeLogos != null)&&(listeLogos.size() > 0)) {
|
259 |
gduche |
150 |
panneauImage.setBorders(true);
|
253 |
gduche |
151 |
for (int i = 0; i < listeLogos.size(); i++) {
|
|
|
152 |
String logoUrl = listeLogos.get(i);
|
|
|
153 |
if ((logoUrl!=null)&&(!logoUrl.trim().equals(""))) {
|
|
|
154 |
//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
|
|
|
155 |
Image img = new Image();
|
|
|
156 |
img.setUrl(logoUrl);
|
|
|
157 |
|
|
|
158 |
panneauImage.add(img);
|
|
|
159 |
if (panneauImage.getWidth() < (img.getWidth() + 15)) {
|
|
|
160 |
panneauImage.setWidth(img.getWidth() + 15);
|
|
|
161 |
}
|
|
|
162 |
|
|
|
163 |
}
|
|
|
164 |
}
|
246 |
gduche |
165 |
|
189 |
gduche |
166 |
}
|
150 |
gduche |
167 |
|
215 |
aurelien |
168 |
panneauIdentite.add(fsContact);
|
183 |
gduche |
169 |
|
197 |
gduche |
170 |
fsIdentite.removeAll();
|
|
|
171 |
fsContact.removeAll();
|
215 |
aurelien |
172 |
fsAdressePerso.removeAll();
|
269 |
gduche |
173 |
fsSpec.removeAll();
|
197 |
gduche |
174 |
//Ajout des champs Identité
|
|
|
175 |
|
|
|
176 |
|
|
|
177 |
|
|
|
178 |
// TODO: projet
|
|
|
179 |
|
|
|
180 |
// nom complet
|
|
|
181 |
Object nomComplet = personne.obtenirValeurChamp("fmt_nom_complet");
|
266 |
gduche |
182 |
ajouterLabelField(fsIdentite,"Nom Complet", nomComplet);
|
197 |
gduche |
183 |
|
259 |
gduche |
184 |
// Nom autre : champ truk; non-typé
|
|
|
185 |
LinkedList<String> nomsAutre = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_nom_autre");
|
|
|
186 |
if ((nomsAutre != null)&&(nomsAutre.size() > 0)) {
|
|
|
187 |
|
|
|
188 |
LabelField noms = new LabelField();
|
|
|
189 |
noms.setFieldLabel("Autres noms:");
|
|
|
190 |
String listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", ");
|
|
|
191 |
noms.setValue(listeNoms);
|
|
|
192 |
fsIdentite.add(noms);
|
|
|
193 |
}
|
197 |
gduche |
194 |
|
|
|
195 |
// abreviation
|
|
|
196 |
Object abreviation = personne.obtenirValeurChamp("abreviation");
|
266 |
gduche |
197 |
ajouterLabelField(fsIdentite, "Abreviation", abreviation);
|
197 |
gduche |
198 |
|
259 |
gduche |
199 |
// Abréviations, autre : non-typé
|
|
|
200 |
LinkedList<String> abrevAutres = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_abreviation_autre");
|
|
|
201 |
if ((abrevAutres != null)&&(abrevAutres.size() > 0)) {
|
|
|
202 |
|
|
|
203 |
LabelField abreviations = new LabelField();
|
|
|
204 |
abreviations.setFieldLabel("Autres abreviations:");
|
|
|
205 |
String listeAbrev = UtilTruk.traiterTrukListe(abrevAutres, ", ");
|
|
|
206 |
abreviations.setValue(listeAbrev);
|
|
|
207 |
fsIdentite.add(abreviations);
|
|
|
208 |
}
|
|
|
209 |
fsIdentite.addText("<hr>");
|
197 |
gduche |
210 |
|
259 |
gduche |
211 |
// date naissance
|
|
|
212 |
// TODO : Mettre la date en format FR 10/12/09
|
|
|
213 |
Object dateNaissance = personne.obtenirValeurChamp("naissance_date");
|
266 |
gduche |
214 |
ajouterLabelField(fsIdentite, "Né le", dateNaissance);
|
259 |
gduche |
215 |
|
197 |
gduche |
216 |
// lieu naissance
|
259 |
gduche |
217 |
Object lieuNaissance = personne.obtenirValeurChamp("naissance_lieu");
|
266 |
gduche |
218 |
ajouterLabelField(fsIdentite, "A", lieuNaissance);
|
197 |
gduche |
219 |
|
|
|
220 |
// date deces
|
259 |
gduche |
221 |
Object dateDeces = personne.obtenirValeurChamp("deces_date");
|
266 |
gduche |
222 |
ajouterLabelField(fsIdentite, "Date décès", dateDeces);
|
197 |
gduche |
223 |
|
|
|
224 |
// lieu deces
|
259 |
gduche |
225 |
Object lieuDeces = personne.obtenirValeurChamp("deces_lieu");
|
266 |
gduche |
226 |
ajouterLabelField(fsIdentite, "Lieu de décès", lieuDeces);
|
197 |
gduche |
227 |
|
259 |
gduche |
228 |
fsIdentite.addText("<hr>");
|
|
|
229 |
|
200 |
gduche |
230 |
//Description
|
|
|
231 |
String description = (String) personne.obtenirValeurChamp("description");
|
|
|
232 |
if ((description!=null)&&(!description.trim().equals(""))) {
|
253 |
gduche |
233 |
LabelField txtDescription = new LabelField();
|
|
|
234 |
txtDescription.setFieldLabel("Description:");
|
200 |
gduche |
235 |
txtDescription.setValue(description);
|
|
|
236 |
|
253 |
gduche |
237 |
//rendreNonEditable(txtDescription);
|
200 |
gduche |
238 |
|
|
|
239 |
fsIdentite.add(txtDescription);
|
|
|
240 |
}
|
197 |
gduche |
241 |
|
|
|
242 |
|
253 |
gduche |
243 |
// CONTACT
|
|
|
244 |
// Téléphones
|
|
|
245 |
// > Plusieurs téléphones possible, typés
|
|
|
246 |
Constantes constantesI18n = (Constantes) GWT.create(Constantes.class);
|
197 |
gduche |
247 |
|
253 |
gduche |
248 |
HashMap<String, String> mapTelephones = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_telephone");
|
|
|
249 |
if ((mapTelephones != null)&&(mapTelephones.size() > 0)) {
|
|
|
250 |
|
|
|
251 |
Collection<String> telephoneKeys = mapTelephones.keySet();
|
|
|
252 |
Iterator<String> itTelephones = telephoneKeys.iterator();
|
|
|
253 |
|
|
|
254 |
while (itTelephones.hasNext()) {
|
|
|
255 |
String key = itTelephones.next();
|
|
|
256 |
LabelField telephoneLabel = new LabelField();
|
|
|
257 |
String label = "";
|
|
|
258 |
try {
|
|
|
259 |
label = constantesI18n.getString(key);
|
|
|
260 |
}
|
|
|
261 |
catch (MissingResourceException e) {
|
|
|
262 |
label = key;
|
|
|
263 |
}
|
|
|
264 |
|
|
|
265 |
telephoneLabel.setFieldLabel( label + ":");
|
|
|
266 |
|
|
|
267 |
telephoneLabel.setValue(mapTelephones.get(key));
|
|
|
268 |
|
|
|
269 |
fsContact.add(telephoneLabel);
|
|
|
270 |
}
|
215 |
aurelien |
271 |
}
|
197 |
gduche |
272 |
|
253 |
gduche |
273 |
// Fax
|
|
|
274 |
// > Plusieurs fax possible, typés
|
|
|
275 |
|
|
|
276 |
HashMap<String, String> mapFax = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_fax");
|
|
|
277 |
if ((mapFax != null)&&(mapFax.size() > 0)) {
|
|
|
278 |
|
|
|
279 |
Collection<String> faxKeys = mapFax.keySet();
|
|
|
280 |
Iterator<String> itFax = faxKeys.iterator();
|
|
|
281 |
|
|
|
282 |
while (itFax.hasNext()) {
|
|
|
283 |
String key = itFax.next();
|
|
|
284 |
LabelField faxLabel = new LabelField();
|
|
|
285 |
String label = "";
|
|
|
286 |
try {
|
|
|
287 |
label = constantesI18n.getString(key);
|
|
|
288 |
}
|
|
|
289 |
catch (MissingResourceException e) {
|
|
|
290 |
label = key;
|
|
|
291 |
}
|
|
|
292 |
|
|
|
293 |
faxLabel.setFieldLabel( label + ":");
|
|
|
294 |
|
|
|
295 |
faxLabel.setValue(mapTelephones.get(key));
|
|
|
296 |
|
|
|
297 |
fsContact.add(faxLabel);
|
|
|
298 |
}
|
|
|
299 |
}
|
|
|
300 |
|
|
|
301 |
// Courriel
|
|
|
302 |
// Courriel est un champ truk de la forme "Adresse@adr.com;; adr2@adr.fr ..."
|
|
|
303 |
|
|
|
304 |
LinkedList<String> listeCourriel = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_courriel");
|
|
|
305 |
if ((listeCourriel!=null)&&(listeCourriel.size() > 0)) {
|
|
|
306 |
String strLabelCourriel = "Courriel";
|
|
|
307 |
if (listeCourriel.size() > 1) {
|
|
|
308 |
strLabelCourriel += "s";
|
|
|
309 |
}
|
|
|
310 |
|
|
|
311 |
LabelField labelCourriel = new LabelField();
|
|
|
312 |
labelCourriel.setFieldLabel(strLabelCourriel);
|
|
|
313 |
|
|
|
314 |
String valeurCourriel = "";
|
|
|
315 |
Iterator<String> itCourriel = listeCourriel.iterator();
|
|
|
316 |
while (itCourriel.hasNext()) {
|
|
|
317 |
String valeurCourante = itCourriel.next();
|
|
|
318 |
valeurCourriel += "<a href=\"mailto:" + valeurCourante + "\">" + valeurCourante + "</a><br />";
|
|
|
319 |
|
|
|
320 |
}
|
|
|
321 |
|
|
|
322 |
labelCourriel.setValue(valeurCourriel);
|
|
|
323 |
fsContact.add(labelCourriel);
|
|
|
324 |
}
|
|
|
325 |
|
|
|
326 |
|
260 |
gduche |
327 |
// Url Site Webs
|
|
|
328 |
LinkedList listeUrl = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_url");
|
|
|
329 |
if (listeUrl!=null && listeUrl.size() > 0) {
|
|
|
330 |
String strUrl = "";
|
|
|
331 |
Iterator<String> urlIt = listeUrl.iterator();
|
|
|
332 |
while (urlIt.hasNext()) {
|
|
|
333 |
String urlCourante = urlIt.next();
|
|
|
334 |
strUrl += "<a href=\""+urlCourante+"\">" + urlCourante + "</a> <br/>";
|
|
|
335 |
|
|
|
336 |
|
|
|
337 |
}
|
|
|
338 |
|
|
|
339 |
LabelField urlLabelField = new LabelField();
|
|
|
340 |
urlLabelField.setFieldLabel("Url:");
|
|
|
341 |
urlLabelField.setValue(strUrl);
|
|
|
342 |
fsContact.add(urlLabelField);
|
|
|
343 |
}
|
|
|
344 |
|
|
|
345 |
|
215 |
aurelien |
346 |
panneauIdentite.add(fsContact);
|
197 |
gduche |
347 |
|
198 |
gduche |
348 |
|
215 |
aurelien |
349 |
fsAdressePerso.setHeading("Adresse personnelle");
|
|
|
350 |
|
198 |
gduche |
351 |
/*
|
|
|
352 |
* Adresses :
|
215 |
aurelien |
353 |
* */
|
197 |
gduche |
354 |
String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
|
266 |
gduche |
355 |
ajouterLabelField(fsAdressePerso, "Adresse", adresse01);
|
197 |
gduche |
356 |
|
|
|
357 |
String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
|
266 |
gduche |
358 |
ajouterLabelField(fsAdressePerso, "", adresse02);
|
197 |
gduche |
359 |
|
|
|
360 |
String boitePostale = (String) personne.obtenirValeurChamp("bp");
|
266 |
gduche |
361 |
ajouterLabelField(fsAdressePerso, "Boite Postale", boitePostale);
|
197 |
gduche |
362 |
|
|
|
363 |
String codePostal = (String) personne.obtenirValeurChamp("code_postal");
|
266 |
gduche |
364 |
ajouterLabelField(fsAdressePerso, "Code postal", codePostal);
|
197 |
gduche |
365 |
|
|
|
366 |
String ville = (String) personne.obtenirValeurChamp("ville");
|
266 |
gduche |
367 |
ajouterLabelField(fsAdressePerso, "Ville", ville);
|
197 |
gduche |
368 |
|
|
|
369 |
String region = (String) personne.obtenirValeurChamp("region");
|
266 |
gduche |
370 |
ajouterLabelField(fsAdressePerso, "Région", region);
|
197 |
gduche |
371 |
|
|
|
372 |
String pays = (String) personne.obtenirValeurChamp("pays");
|
266 |
gduche |
373 |
ajouterLabelField(fsAdressePerso, "Pays", pays);
|
197 |
gduche |
374 |
|
215 |
aurelien |
375 |
fsAdressePerso.addText("<br >");
|
|
|
376 |
fsAdressePerso.setWidth("350px");
|
197 |
gduche |
377 |
|
215 |
aurelien |
378 |
tabAdresse.add(fsAdressePerso);
|
246 |
gduche |
379 |
|
215 |
aurelien |
380 |
|
305 |
gduche |
381 |
// Infos naturalistes
|
260 |
gduche |
382 |
|
|
|
383 |
// Biographie
|
267 |
gduche |
384 |
// Spécialité (typé)
|
|
|
385 |
|
269 |
gduche |
386 |
fsSpec.setHeading("Spécialités");
|
|
|
387 |
tabInfosNat.add(fsSpec);
|
267 |
gduche |
388 |
|
|
|
389 |
HashMap hmSpecialite = (HashMap) personne.getChaineDenormaliseAsMapOrList("ce_truk_specialite");
|
|
|
390 |
if ((hmSpecialite != null)&&(hmSpecialite.size() > 0)) {
|
|
|
391 |
|
|
|
392 |
Collection<String> specialiteKeys = hmSpecialite.keySet();
|
|
|
393 |
Iterator<String> itSpec = specialiteKeys.iterator();
|
|
|
394 |
|
|
|
395 |
while (itSpec.hasNext()) {
|
|
|
396 |
String key = itSpec.next();
|
|
|
397 |
LabelField specLabel = new LabelField();
|
|
|
398 |
String label = "";
|
|
|
399 |
try {
|
|
|
400 |
label = constantesI18n.getString(key);
|
|
|
401 |
}
|
|
|
402 |
catch (MissingResourceException e) {
|
|
|
403 |
label = key;
|
|
|
404 |
}
|
|
|
405 |
|
|
|
406 |
specLabel.setFieldLabel( label + ":");
|
|
|
407 |
|
|
|
408 |
specLabel.setValue(hmSpecialite.get(key));
|
|
|
409 |
|
269 |
gduche |
410 |
fsSpec.add(specLabel);
|
267 |
gduche |
411 |
}
|
|
|
412 |
}
|
269 |
gduche |
413 |
|
|
|
414 |
// Récolte
|
|
|
415 |
LinkedList<String> lstRecolte = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_recolte");
|
|
|
416 |
if ((lstRecolte!=null)&&(lstRecolte.size()>0)) {
|
|
|
417 |
FieldSet fsRecolte = new FieldSet();
|
|
|
418 |
fsRecolte.setHeading("Récoltes");
|
|
|
419 |
fsRecolte.setLayout(new FormLayout());
|
|
|
420 |
|
|
|
421 |
Iterator<String> itRecolte = lstRecolte.iterator();
|
|
|
422 |
while (itRecolte.hasNext()) {
|
|
|
423 |
|
|
|
424 |
String recolteCourante = itRecolte.next();
|
|
|
425 |
LabelField lfRecolte = new LabelField();
|
|
|
426 |
String[] splitRecolte = recolteCourante.split("\\|");
|
|
|
427 |
|
|
|
428 |
String labelRecolte = "";
|
|
|
429 |
if (splitRecolte.length > 1) {
|
280 |
gduche |
430 |
lfRecolte.setValue(splitRecolte[1]);
|
269 |
gduche |
431 |
}
|
|
|
432 |
|
280 |
gduche |
433 |
lfRecolte.setFieldLabel(splitRecolte[0]);
|
305 |
gduche |
434 |
fsRecolte.add(lfRecolte);
|
269 |
gduche |
435 |
|
305 |
gduche |
436 |
LinkedList<LabelField> lstComposantsRegion = (LinkedList<LabelField>) hmComposants.get(splitRecolte[0]);
|
269 |
gduche |
437 |
|
305 |
gduche |
438 |
if (lstComposantsRegion == null) {
|
|
|
439 |
lstComposantsRegion = new LinkedList<LabelField>();
|
|
|
440 |
}
|
269 |
gduche |
441 |
|
305 |
gduche |
442 |
lstComposantsRegion.add(lfRecolte);
|
|
|
443 |
hmComposants.remove(splitRecolte[0]);
|
|
|
444 |
hmComposants.put(splitRecolte[0], lstComposantsRegion);
|
|
|
445 |
|
269 |
gduche |
446 |
}
|
|
|
447 |
|
|
|
448 |
tabInfosNat.add(fsRecolte);
|
|
|
449 |
}
|
305 |
gduche |
450 |
|
|
|
451 |
changerLabelRegions();
|
260 |
gduche |
452 |
// tabInfosNat
|
150 |
gduche |
453 |
layout();
|
197 |
gduche |
454 |
}
|
|
|
455 |
}
|
305 |
gduche |
456 |
|
|
|
457 |
|
|
|
458 |
private void changerLabelRegions() {
|
|
|
459 |
|
|
|
460 |
Collection<String> colClesComposants = hmComposants.keySet();
|
|
|
461 |
Iterator<String> itComposants = colClesComposants.iterator();
|
|
|
462 |
|
|
|
463 |
while (itComposants.hasNext()) {
|
|
|
464 |
String region = itComposants.next();
|
|
|
465 |
mediateur.obtenirValeurEtRafraichir(this, "region", region);
|
|
|
466 |
}
|
|
|
467 |
}
|
197 |
gduche |
468 |
|
266 |
gduche |
469 |
private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue) {
|
197 |
gduche |
470 |
|
|
|
471 |
if ((tfValue!=null)&&(!tfValue.toString().trim().equals(""))) {
|
189 |
gduche |
472 |
|
246 |
gduche |
473 |
|
|
|
474 |
LabelField tf = new LabelField();
|
197 |
gduche |
475 |
|
246 |
gduche |
476 |
tf.setFieldLabel(tfLabel + ":");
|
197 |
gduche |
477 |
if ((tfLabel==null)||("".equals(tfLabel))) {
|
|
|
478 |
tf.setHideLabel(true);
|
|
|
479 |
tf.setStyleAttribute("margin", "0 0 0 105px");
|
|
|
480 |
}
|
|
|
481 |
tf.setValue(tfValue);
|
|
|
482 |
|
200 |
gduche |
483 |
//Ajout au fieldSet
|
|
|
484 |
fs.add(tf);
|
|
|
485 |
}
|
|
|
486 |
}
|
|
|
487 |
|
266 |
gduche |
488 |
|
197 |
gduche |
489 |
|
305 |
gduche |
490 |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
|
197 |
gduche |
491 |
|
305 |
gduche |
492 |
public void rafraichir(Object nouvellesDonnees) {
|
227 |
aurelien |
493 |
|
|
|
494 |
// Si on a reçu une personne on en affiche les détails
|
305 |
gduche |
495 |
if (nouvellesDonnees instanceof Personne) {
|
|
|
496 |
afficherDetailPersonne((Personne) nouvellesDonnees);
|
|
|
497 |
} else if (nouvellesDonnees instanceof ValeurListe) {
|
|
|
498 |
|
|
|
499 |
ValeurListe listeValeur = (ValeurListe) nouvellesDonnees;
|
|
|
500 |
if (listeValeur.getId().equals(config.getListeId("region"))) {
|
|
|
501 |
|
|
|
502 |
Collection colCleListeValeur = listeValeur.keySet();
|
|
|
503 |
|
|
|
504 |
Iterator<String> itLv = colCleListeValeur.iterator();
|
|
|
505 |
|
|
|
506 |
while (itLv.hasNext()) {
|
|
|
507 |
String idRegion = itLv.next();
|
|
|
508 |
Valeur region = listeValeur.get(idRegion);
|
|
|
509 |
|
|
|
510 |
|
|
|
511 |
|
|
|
512 |
if (region != null) {
|
|
|
513 |
|
|
|
514 |
String strRegionId = region.getAbreviation();
|
|
|
515 |
|
|
|
516 |
LinkedList<LabelField> listComposantsRegion = (LinkedList) hmComposants.get(strRegionId);
|
|
|
517 |
for (int i=0; i < listComposantsRegion.size(); i++) {
|
|
|
518 |
LabelField lfRegion = listComposantsRegion.get(i);
|
|
|
519 |
lfRegion.setFieldLabel(region.getNom());
|
|
|
520 |
}
|
|
|
521 |
|
|
|
522 |
}
|
|
|
523 |
}
|
|
|
524 |
}
|
|
|
525 |
}
|
150 |
gduche |
526 |
}
|
|
|
527 |
|
197 |
gduche |
528 |
}
|