935 |
jpm |
1 |
package org.tela_botanica.client.vues.personne;
|
150 |
gduche |
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;
|
1284 |
gduche |
7 |
import java.util.List;
|
189 |
gduche |
8 |
|
435 |
gduche |
9 |
import org.tela_botanica.client.ComposantId;
|
305 |
gduche |
10 |
import org.tela_botanica.client.Mediateur;
|
150 |
gduche |
11 |
import org.tela_botanica.client.RegistreId;
|
907 |
jpm |
12 |
import org.tela_botanica.client.configuration.Configuration;
|
150 |
gduche |
13 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
305 |
gduche |
14 |
import org.tela_botanica.client.modeles.Valeur;
|
|
|
15 |
import org.tela_botanica.client.modeles.ValeurListe;
|
935 |
jpm |
16 |
import org.tela_botanica.client.modeles.personne.Personne;
|
1284 |
gduche |
17 |
import org.tela_botanica.client.modeles.publication.Publication;
|
|
|
18 |
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
|
|
|
19 |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
|
1292 |
cyprien |
20 |
import org.tela_botanica.client.util.Debug;
|
936 |
jpm |
21 |
import org.tela_botanica.client.vues.DetailVue;
|
527 |
gduche |
22 |
|
150 |
gduche |
23 |
import com.extjs.gxt.ui.client.Registry;
|
|
|
24 |
import com.extjs.gxt.ui.client.Style.Scroll;
|
435 |
gduche |
25 |
import com.extjs.gxt.ui.client.util.Format;
|
|
|
26 |
import com.extjs.gxt.ui.client.util.Params;
|
215 |
aurelien |
27 |
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
527 |
gduche |
28 |
import com.extjs.gxt.ui.client.widget.Html;
|
189 |
gduche |
29 |
import com.extjs.gxt.ui.client.widget.TabItem;
|
|
|
30 |
import com.extjs.gxt.ui.client.widget.TabPanel;
|
197 |
gduche |
31 |
import com.extjs.gxt.ui.client.widget.form.FieldSet;
|
246 |
gduche |
32 |
import com.extjs.gxt.ui.client.widget.form.LabelField;
|
527 |
gduche |
33 |
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout;
|
150 |
gduche |
34 |
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
197 |
gduche |
35 |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
|
|
|
36 |
import com.google.gwt.user.client.ui.Image;
|
150 |
gduche |
37 |
|
527 |
gduche |
38 |
public class PersonneDetailVue extends DetailVue implements Rafraichissable {
|
150 |
gduche |
39 |
|
269 |
gduche |
40 |
private TabPanel tabPanel;
|
527 |
gduche |
41 |
private Html entete;
|
915 |
jpm |
42 |
|
215 |
aurelien |
43 |
private TabItem tabIdentite;
|
200 |
gduche |
44 |
private TabItem tabAdresse;
|
215 |
aurelien |
45 |
private TabItem tabInfosNat;
|
435 |
gduche |
46 |
private TabItem tabLogos;
|
1284 |
gduche |
47 |
private TabItem tabPublications;
|
|
|
48 |
|
915 |
jpm |
49 |
private HashMap hmLabelFieldRegion = new HashMap();
|
|
|
50 |
|
|
|
51 |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
|
|
|
52 |
private boolean ontologieRecue = false;
|
|
|
53 |
private Personne personneAAfficher = null;
|
|
|
54 |
|
1284 |
gduche |
55 |
private boolean personneAffichee = false;
|
|
|
56 |
private String tableauPublicationsLieesTpl = "";
|
|
|
57 |
private String lignePublicationLieeTpl = "";
|
915 |
jpm |
58 |
|
820 |
gduche |
59 |
private void chargerOntologie() {
|
|
|
60 |
mediateur.obtenirListeValeurEtRafraichir(this, "pays");
|
977 |
gduche |
61 |
mediateur.obtenirListeValeurEtRafraichir(this, "tel");
|
1284 |
gduche |
62 |
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
|
820 |
gduche |
63 |
}
|
435 |
gduche |
64 |
|
820 |
gduche |
65 |
|
527 |
gduche |
66 |
public PersonneDetailVue(Mediateur mediateur) {
|
|
|
67 |
super(mediateur);
|
820 |
gduche |
68 |
chargerOntologie();
|
|
|
69 |
|
|
|
70 |
setLayout(new FitLayout());
|
|
|
71 |
|
527 |
gduche |
72 |
entete = new Html();
|
|
|
73 |
entete.setId(ComposantId.ZONE_DETAIL_ENTETE);
|
820 |
gduche |
74 |
|
527 |
gduche |
75 |
ContentPanel panneauPrincipal = new ContentPanel();
|
|
|
76 |
panneauPrincipal.setLayout(new FitLayout());
|
|
|
77 |
panneauPrincipal.setHeaderVisible(false);
|
|
|
78 |
panneauPrincipal.setBodyBorder(true);
|
|
|
79 |
panneauPrincipal.setTopComponent(entete);
|
820 |
gduche |
80 |
|
915 |
jpm |
81 |
tabIdentite = new TabItem(i18nC.personneIdentite());
|
527 |
gduche |
82 |
tabIdentite.setLayout(new AnchorLayout());
|
820 |
gduche |
83 |
tabIdentite.setScrollMode(Scroll.AUTO);
|
|
|
84 |
|
915 |
jpm |
85 |
tabAdresse = new TabItem(i18nC.personneAdresses());
|
472 |
gduche |
86 |
tabAdresse.setLayout(new FitLayout());
|
|
|
87 |
tabAdresse.setScrollMode(Scroll.AUTO);
|
820 |
gduche |
88 |
|
915 |
jpm |
89 |
tabInfosNat = new TabItem(i18nC.personneInfoNat());
|
321 |
gduche |
90 |
tabInfosNat.setScrollMode(Scroll.AUTO);
|
820 |
gduche |
91 |
|
1284 |
gduche |
92 |
//Greg : ajout d'un résumé des publications
|
|
|
93 |
tabPublications = new TabItem(i18nC.tabPublications());
|
|
|
94 |
tabPublications.setScrollMode(Scroll.AUTO);
|
|
|
95 |
tabPublications.setLayout(new FlowLayout());
|
|
|
96 |
|
915 |
jpm |
97 |
tabLogos = new TabItem(i18nC.personneLogos());
|
680 |
gduche |
98 |
tabLogos.setScrollMode(Scroll.AUTO);
|
435 |
gduche |
99 |
tabLogos.setLayout(new FlowLayout());
|
820 |
gduche |
100 |
|
527 |
gduche |
101 |
tabPanel = new TabPanel();
|
|
|
102 |
tabPanel.setId(ComposantId.ZONE_DETAIL_CORPS);
|
|
|
103 |
tabPanel.setBodyBorder(false);
|
820 |
gduche |
104 |
|
527 |
gduche |
105 |
tabPanel.add(tabIdentite);
|
|
|
106 |
tabPanel.add(tabAdresse);
|
|
|
107 |
tabPanel.add(tabInfosNat);
|
1284 |
gduche |
108 |
tabPanel.add(tabPublications);
|
435 |
gduche |
109 |
tabPanel.add(tabLogos);
|
820 |
gduche |
110 |
|
527 |
gduche |
111 |
panneauPrincipal.add(tabPanel);
|
|
|
112 |
add(panneauPrincipal);
|
150 |
gduche |
113 |
}
|
|
|
114 |
|
|
|
115 |
public void afficherDetailPersonne(Personne personne) {
|
|
|
116 |
if (personne != null) {
|
527 |
gduche |
117 |
String tplEntete = initialiserTplEntete();
|
1284 |
gduche |
118 |
|
|
|
119 |
//Sélection des publication à personne
|
|
|
120 |
mediateur.selectionnerPublicationAPersonne(this, null, personne.getId(), new LinkedList());
|
820 |
gduche |
121 |
|
435 |
gduche |
122 |
Params enteteParams = new Params();
|
|
|
123 |
enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
|
947 |
gduche |
124 |
enteteParams.set("mail", (String) personne.getCourrielPrinc());
|
820 |
gduche |
125 |
|
|
|
126 |
LinkedList lstLogos = (LinkedList) personne
|
|
|
127 |
.getChaineDenormaliseAsMapOrList("truk_logo");
|
|
|
128 |
if (lstLogos != null && lstLogos.size() > 0) {
|
|
|
129 |
|
435 |
gduche |
130 |
tabLogos.removeAll();
|
|
|
131 |
String urlLogoPrinc = (String) lstLogos.get(0);
|
820 |
gduche |
132 |
if (!urlLogoPrinc.trim().equals("")) {
|
|
|
133 |
tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>"
|
|
|
134 |
+ tplEntete;
|
435 |
gduche |
135 |
enteteParams.set("image", urlLogoPrinc);
|
253 |
gduche |
136 |
}
|
820 |
gduche |
137 |
|
435 |
gduche |
138 |
Iterator<String> itLogo = lstLogos.iterator();
|
820 |
gduche |
139 |
while (itLogo.hasNext()) {
|
435 |
gduche |
140 |
String urlLogoCourant = itLogo.next();
|
|
|
141 |
Image imgCourante = new Image(urlLogoCourant);
|
820 |
gduche |
142 |
tabLogos.add(imgCourante);
|
435 |
gduche |
143 |
}
|
527 |
gduche |
144 |
tabLogos.enable();
|
820 |
gduche |
145 |
|
435 |
gduche |
146 |
} else {
|
472 |
gduche |
147 |
enteteParams.set("image", "");
|
435 |
gduche |
148 |
tabLogos.disable();
|
472 |
gduche |
149 |
}
|
820 |
gduche |
150 |
|
915 |
jpm |
151 |
entete.el().setInnerHtml(Format.substitute(tplEntete, enteteParams));
|
820 |
gduche |
152 |
|
527 |
gduche |
153 |
String tplIdentite = initialiserTplIdentite();
|
820 |
gduche |
154 |
|
435 |
gduche |
155 |
Params tabIdentiteParams = new Params();
|
828 |
gduche |
156 |
tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
|
|
|
157 |
tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
|
1284 |
gduche |
158 |
tabIdentiteParams.set("naissance_date", personne.getAnneeOuDateNaiss().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateNaiss());
|
828 |
gduche |
159 |
tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu"));
|
|
|
160 |
String tplDeces = "";
|
|
|
161 |
if (personne.estDecedee()) {
|
|
|
162 |
tplDeces = " <h2>Décès:</h2>"
|
|
|
163 |
+ " <span><b>"
|
915 |
jpm |
164 |
+ i18nC.personneDateDeces()
|
828 |
gduche |
165 |
+ ":</b></span> {deces_date}<br />"
|
|
|
166 |
+ " <span><b>"
|
915 |
jpm |
167 |
+ i18nC.personneLieuDeces()
|
828 |
gduche |
168 |
+ ":</b></span> {deces_lieu}<br /><br />";
|
|
|
169 |
|
1284 |
gduche |
170 |
tabIdentiteParams.set("deces_date", personne.getAnneeOuDateDeces().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateDeces());
|
828 |
gduche |
171 |
tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
|
|
|
172 |
}
|
|
|
173 |
|
|
|
174 |
Params paramsDeces = new Params();
|
|
|
175 |
paramsDeces.set("tplDeces", tplDeces);
|
|
|
176 |
tplIdentite = Format.substitute(tplIdentite, paramsDeces);
|
|
|
177 |
|
|
|
178 |
tabIdentiteParams.set("description", personne.getString("description"));
|
820 |
gduche |
179 |
|
321 |
gduche |
180 |
tabInfosNat.removeAll();
|
820 |
gduche |
181 |
|
|
|
182 |
tabIdentiteParams.set("nom_autre", construireTxtTruck(personne.getString("truk_nom_autre")));
|
|
|
183 |
tabIdentiteParams.set("abreviation_autre", construireTxtTruck(personne.getString("truk_abreviation_autre")));
|
|
|
184 |
|
977 |
gduche |
185 |
tplIdentite += construireTxtListeOntologie(personne.getString("truk_telephone"));
|
820 |
gduche |
186 |
|
|
|
187 |
// Courriel :Champ truk de la forme
|
|
|
188 |
// "Adresse@adr.com;; adr2@adr.fr ..."
|
|
|
189 |
LinkedList<String> listeCourriel = (LinkedList<String>) personne
|
|
|
190 |
.getChaineDenormaliseAsMapOrList("truk_courriel");
|
|
|
191 |
if ((listeCourriel != null) && (listeCourriel.size() > 0)) {
|
253 |
gduche |
192 |
String strLabelCourriel = "Courriel";
|
820 |
gduche |
193 |
if (listeCourriel.size() > 1) {
|
|
|
194 |
strLabelCourriel += "s";
|
253 |
gduche |
195 |
}
|
820 |
gduche |
196 |
|
253 |
gduche |
197 |
String valeurCourriel = "";
|
|
|
198 |
Iterator<String> itCourriel = listeCourriel.iterator();
|
820 |
gduche |
199 |
while (itCourriel.hasNext()) {
|
253 |
gduche |
200 |
String valeurCourante = itCourriel.next();
|
820 |
gduche |
201 |
valeurCourriel += "<br /><a href=\"mailto:"
|
|
|
202 |
+ valeurCourante + "\">" + valeurCourante + "</a>";
|
253 |
gduche |
203 |
}
|
527 |
gduche |
204 |
tplIdentite += valeurCourriel;
|
253 |
gduche |
205 |
}
|
472 |
gduche |
206 |
|
260 |
gduche |
207 |
// Url Site Webs
|
820 |
gduche |
208 |
LinkedList listeUrl = (LinkedList) personne
|
|
|
209 |
.getChaineDenormaliseAsMapOrList("truk_url");
|
|
|
210 |
if (listeUrl != null && listeUrl.size() > 0) {
|
|
|
211 |
|
527 |
gduche |
212 |
tplIdentite += "<br /><br /><b>Sites web:</b><br /><span style='display:inline-block'>";
|
260 |
gduche |
213 |
String strUrl = "";
|
|
|
214 |
Iterator<String> urlIt = listeUrl.iterator();
|
820 |
gduche |
215 |
while (urlIt.hasNext()) {
|
260 |
gduche |
216 |
String urlCourante = urlIt.next();
|
820 |
gduche |
217 |
strUrl += "<a href=\"" + urlCourante + "\">" + urlCourante
|
|
|
218 |
+ "</a> <br/>";
|
260 |
gduche |
219 |
}
|
527 |
gduche |
220 |
tplIdentite += strUrl + "</span><br />";
|
820 |
gduche |
221 |
}
|
|
|
222 |
|
527 |
gduche |
223 |
tplIdentite += "</div>";
|
820 |
gduche |
224 |
|
527 |
gduche |
225 |
afficherOnglet(tplIdentite, tabIdentiteParams, tabIdentite);
|
820 |
gduche |
226 |
|
|
|
227 |
String tabAdresseTpl = "<div class='{css_corps}'>"
|
|
|
228 |
+ " <div class='{css_fieldset}'>"
|
|
|
229 |
+ " <h2>Adresse personnelle:</h2>"
|
977 |
gduche |
230 |
+ " <b>Adresse:</b> {adresse01} <br />"
|
|
|
231 |
+ " <b>Complément d'adresse: </b>{adresse02} <br />"
|
|
|
232 |
+ " <b>Boite postale: </b>{boitePostale}<br />"
|
|
|
233 |
+ " <b>Code postal:</b>{codePostal} <br />"
|
|
|
234 |
+ " <b>Région:</b>{region}<br />"
|
1292 |
cyprien |
235 |
+ " <b>Pays :</b><span style='uppercase'>{pays}</span><br />"
|
820 |
gduche |
236 |
+ "</div>";
|
|
|
237 |
// Adresses :
|
472 |
gduche |
238 |
Params paramAdresseTpl = new Params();
|
820 |
gduche |
239 |
paramAdresseTpl.set("adresse01", (String) personne
|
|
|
240 |
.obtenirValeurChamp("adresse_01"));
|
|
|
241 |
paramAdresseTpl.set("adresse02", (String) personne
|
|
|
242 |
.obtenirValeurChamp("adresse_02"));
|
|
|
243 |
paramAdresseTpl.set("boitePostale", (String) personne
|
|
|
244 |
.obtenirValeurChamp("bp"));
|
|
|
245 |
paramAdresseTpl.set("codePostal", (String) personne
|
|
|
246 |
.obtenirValeurChamp("code_postal"));
|
|
|
247 |
paramAdresseTpl.set("ville", (String) personne
|
|
|
248 |
.obtenirValeurChamp("ville"));
|
|
|
249 |
paramAdresseTpl.set("region", (String) personne
|
1292 |
cyprien |
250 |
.obtenirValeurChamp("ce_truk_region"));
|
|
|
251 |
paramAdresseTpl.set("pays", construireTxtListeOntologie((String) personne
|
|
|
252 |
.obtenirValeurChamp("ce_truk_pays")));
|
820 |
gduche |
253 |
|
472 |
gduche |
254 |
afficherOnglet(tabAdresseTpl, paramAdresseTpl, tabAdresse);
|
|
|
255 |
tabAdresse.setStyleAttribute("padding", "15px");
|
215 |
aurelien |
256 |
|
472 |
gduche |
257 |
// Infos naturalistes :Biographie, Spécialité (typé)
|
820 |
gduche |
258 |
String tplInfosNat = "<div class='{css_corps}'>"
|
|
|
259 |
+ " <div class='{css_fieldset}'>" + " <h2>"
|
1284 |
gduche |
260 |
+ i18nC.personneBiographie() + "</h2>"
|
|
|
261 |
+ " {biographie}" + " "
|
|
|
262 |
+ "<h2>" + i18nC.personneSpecialite() + "</h2>"
|
|
|
263 |
+ " {specialites}" + " <h2>"
|
915 |
jpm |
264 |
+ i18nC.personneRecolte() + "</h2>"
|
820 |
gduche |
265 |
+ " {recoltes}" + " </div>" + "</div>";
|
527 |
gduche |
266 |
Params prmInfosNat = new Params();
|
820 |
gduche |
267 |
|
1284 |
gduche |
268 |
prmInfosNat.set("biographie", personne.get("biographie"));
|
|
|
269 |
|
797 |
gduche |
270 |
String specialite = construireTxtTruck(personne.getSpecialite());
|
|
|
271 |
prmInfosNat.set("specialites", specialite);
|
820 |
gduche |
272 |
|
|
|
273 |
String recolte = construireTxtListeOntologie(personne.getString("truk_recolte"));
|
797 |
gduche |
274 |
prmInfosNat.set("recoltes", recolte);
|
820 |
gduche |
275 |
|
797 |
gduche |
276 |
afficherOnglet(tplInfosNat, prmInfosNat, tabInfosNat);
|
|
|
277 |
tabAdresse.setStyleAttribute("padding", "15px");
|
820 |
gduche |
278 |
|
305 |
gduche |
279 |
changerLabelRegions();
|
150 |
gduche |
280 |
layout();
|
820 |
gduche |
281 |
}
|
197 |
gduche |
282 |
}
|
820 |
gduche |
283 |
|
|
|
284 |
public String initialiserTplEntete() {
|
|
|
285 |
return "<div id='{css_id}'>" + "<h1>{nom}</h1>"
|
|
|
286 |
+ "<h2><a href='{mail}'>{mail}</a></h2>" + "</div>";
|
472 |
gduche |
287 |
}
|
820 |
gduche |
288 |
|
527 |
gduche |
289 |
public String initialiserTplIdentite() {
|
820 |
gduche |
290 |
return "<div class='{css_corps}'>" + " <div class='{css_fieldset}'>"
|
|
|
291 |
+ " <h2>Noms:</h2>" + " <span><b>"
|
915 |
jpm |
292 |
+ i18nC.personneNomComplet()
|
820 |
gduche |
293 |
+ ":</b></span> {nom_complet}<br />"
|
|
|
294 |
+ " <span><b>"
|
915 |
jpm |
295 |
+ i18nC.personneNomAutre()
|
820 |
gduche |
296 |
+ ":</b></span> {nom_autre}<br />"
|
|
|
297 |
+ " <span><b>"
|
915 |
jpm |
298 |
+ i18nC.personneAbreviation()
|
820 |
gduche |
299 |
+ ":</b></span> {abreviation}<br />"
|
|
|
300 |
+ " <span><b>"
|
915 |
jpm |
301 |
+ i18nC.personneAbreviationAutre()
|
820 |
gduche |
302 |
+ ":</b></b></span> {abreviation_autre}<br /><br />"
|
|
|
303 |
+ " <h2>Naissance:</h2>"
|
|
|
304 |
+ " <span><b>"
|
915 |
jpm |
305 |
+ i18nC.personneDateNaissance()
|
828 |
gduche |
306 |
+ ":</b></span> {naissance_date}<br />"
|
820 |
gduche |
307 |
+ " <span><b>"
|
915 |
jpm |
308 |
+ i18nC.personneLieuNaissance()
|
820 |
gduche |
309 |
+ ":</b></span> {naissance_lieu}<br /><br />"
|
828 |
gduche |
310 |
+ "{tplDeces}"
|
820 |
gduche |
311 |
+ " </div>"
|
|
|
312 |
+ "</div>"
|
|
|
313 |
+ "<div class='{css_corps}'>"
|
|
|
314 |
+ " <div class='css_fieldset'> "
|
|
|
315 |
+ " <h2>Description:</h2>"
|
|
|
316 |
+ " {description}<br />" + " </div>" + "<br />";
|
527 |
gduche |
317 |
}
|
820 |
gduche |
318 |
|
|
|
319 |
private void changerLabelRegions() {
|
321 |
gduche |
320 |
Collection<String> colClesComposants = hmLabelFieldRegion.keySet();
|
305 |
gduche |
321 |
Iterator<String> itComposants = colClesComposants.iterator();
|
820 |
gduche |
322 |
|
|
|
323 |
while (itComposants.hasNext()) {
|
305 |
gduche |
324 |
String region = itComposants.next();
|
|
|
325 |
mediateur.obtenirValeurEtRafraichir(this, "region", region);
|
|
|
326 |
}
|
|
|
327 |
}
|
197 |
gduche |
328 |
|
820 |
gduche |
329 |
private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue) {
|
|
|
330 |
if ((tfValue != null) && (!tfValue.toString().trim().equals(""))) {
|
|
|
331 |
|
246 |
gduche |
332 |
LabelField tf = new LabelField();
|
820 |
gduche |
333 |
|
246 |
gduche |
334 |
tf.setFieldLabel(tfLabel + ":");
|
820 |
gduche |
335 |
if ((tfLabel == null) || ("".equals(tfLabel))) {
|
197 |
gduche |
336 |
tf.setHideLabel(true);
|
|
|
337 |
tf.setStyleAttribute("margin", "0 0 0 105px");
|
|
|
338 |
}
|
|
|
339 |
tf.setValue(tfValue);
|
820 |
gduche |
340 |
|
|
|
341 |
// Ajout au fieldSet
|
200 |
gduche |
342 |
fs.add(tf);
|
|
|
343 |
}
|
|
|
344 |
}
|
|
|
345 |
|
1284 |
gduche |
346 |
|
|
|
347 |
private void initialiserTableauPublicationsLieesTpl() {
|
|
|
348 |
|
|
|
349 |
tableauPublicationsLieesTpl =
|
|
|
350 |
"<div class='{css_corps}'>" +
|
|
|
351 |
" <h2>{i18n_titre_publication}</h2>"+
|
|
|
352 |
" <table>"+
|
|
|
353 |
" <thead>"+
|
|
|
354 |
" <tr>" +
|
|
|
355 |
" <th>{i18n_relation}</th>" +
|
|
|
356 |
" <th>{i18n_auteur}</th>" +
|
|
|
357 |
" <th>{i18n_titre}</th>" +
|
|
|
358 |
" <th>{i18n_revue}</th>" +
|
|
|
359 |
" <th>{i18n_editeur}</th>" +
|
|
|
360 |
" <th>{i18n_annee}</th>" +
|
|
|
361 |
" <th>{i18n_nvt}</th>" +
|
|
|
362 |
" <th>{i18n_fascicule}</th>" +
|
|
|
363 |
" <th>{i18n_page}</th>" +
|
|
|
364 |
" </tr>"+
|
|
|
365 |
" </thead>"+
|
|
|
366 |
" <tbody>"+
|
|
|
367 |
" {lignes}"+
|
|
|
368 |
" </tbody>"+
|
|
|
369 |
"</table>";
|
|
|
370 |
}
|
|
|
371 |
|
|
|
372 |
private void initialiserLignePublicationLieeTpl() {
|
|
|
373 |
lignePublicationLieeTpl =
|
|
|
374 |
"<tr>"+
|
|
|
375 |
" <td>{relation}</td>"+
|
|
|
376 |
" <td>{auteur}</td>"+
|
|
|
377 |
" <td>{titre}</td>"+
|
|
|
378 |
" <td>{revue}</td>"+
|
|
|
379 |
" <td>{editeur}</td>"+
|
|
|
380 |
" <td>{annee}</td>"+
|
|
|
381 |
" <td>{nvt}</td>"+
|
|
|
382 |
" <td>{fascicule}</td>"+
|
|
|
383 |
" <td>{page}</td>"+
|
|
|
384 |
"</tr>";
|
|
|
385 |
}
|
|
|
386 |
/**
|
|
|
387 |
* @author greg
|
|
|
388 |
* Rempli l'onglet des publications liées
|
|
|
389 |
* @param listePublications la liste des publications
|
|
|
390 |
*/
|
|
|
391 |
private void afficherPublications(PublicationAPersonneListe listePublications) {
|
|
|
392 |
List<PublicationAPersonne> publicationsLiees = listePublications.toList();
|
|
|
393 |
Iterator<PublicationAPersonne> iterateur = publicationsLiees.iterator();
|
|
|
394 |
|
|
|
395 |
//Onglet Publications
|
|
|
396 |
initialiserTableauPublicationsLieesTpl();
|
|
|
397 |
Params paramsPublis = new Params();
|
|
|
398 |
|
|
|
399 |
String contenuLignes = "";
|
|
|
400 |
while (iterateur.hasNext()) {
|
|
|
401 |
initialiserLignePublicationLieeTpl();
|
|
|
402 |
|
|
|
403 |
PublicationAPersonne publicationAPersonneCourante = iterateur.next();
|
|
|
404 |
Publication publication = publicationAPersonneCourante.getPublicationLiee();
|
|
|
405 |
|
|
|
406 |
Params ligneParams = new Params();
|
|
|
407 |
ligneParams.set("relation", construireTxtListeOntologie(publicationAPersonneCourante.getRole()));
|
|
|
408 |
ligneParams.set("auteur", publication.getAuteur());
|
|
|
409 |
ligneParams.set("titre", publication.getTitre());
|
|
|
410 |
ligneParams.set("revue", publication.getCollection());
|
|
|
411 |
ligneParams.set("editeur", publication.getEditeur());
|
|
|
412 |
ligneParams.set("annee", publication.getAnneeParution());
|
|
|
413 |
ligneParams.set("nvt", publication.getIndicationNvt());
|
|
|
414 |
ligneParams.set("fascicule", publication.getFascicule());
|
|
|
415 |
ligneParams.set("page", publication.getPages());
|
|
|
416 |
contenuLignes += Format.substitute(lignePublicationLieeTpl, ligneParams);
|
|
|
417 |
}
|
|
|
418 |
|
|
|
419 |
paramsPublis.set("lignes", contenuLignes);
|
|
|
420 |
paramsPublis.set("i18n_titre_publication", i18nC.tabPublications());
|
|
|
421 |
paramsPublis.set("i18n_relation", i18nC.publicationAuteurs());
|
|
|
422 |
paramsPublis.set("i18n_auteur", i18nC.publicationAuteurs());
|
|
|
423 |
paramsPublis.set("i18n_titre", i18nC.publicationTitre());
|
|
|
424 |
paramsPublis.set("i18n_revue", i18nC.publicationRevueCollection());
|
|
|
425 |
paramsPublis.set("i18n_editeur", i18nC.publicationEditeur());
|
|
|
426 |
paramsPublis.set("i18n_annee", i18nC.publicationDateParution());
|
|
|
427 |
paramsPublis.set("i18n_nvt", i18nC.publicationNvt());
|
|
|
428 |
paramsPublis.set("i18n_fascicule", i18nC.publicationFascicule());
|
|
|
429 |
paramsPublis.set("i18n_page", i18nC.publicationPage());
|
|
|
430 |
afficherOnglet(tableauPublicationsLieesTpl, paramsPublis, tabPublications);
|
|
|
431 |
|
|
|
432 |
}
|
|
|
433 |
|
305 |
gduche |
434 |
public void rafraichir(Object nouvellesDonnees) {
|
1284 |
gduche |
435 |
|
|
|
436 |
// FIXME : Ci-dessous, on utilise le booléen personneAffichee pour éviter un affichage répété de personnes.
|
|
|
437 |
// Se règlerait avec une gestion Synchrone/Asynchrone
|
|
|
438 |
|
227 |
aurelien |
439 |
// Si on a reçu une personne on en affiche les détails
|
305 |
gduche |
440 |
if (nouvellesDonnees instanceof Personne) {
|
915 |
jpm |
441 |
personneAAfficher = (Personne) nouvellesDonnees;
|
1284 |
gduche |
442 |
personneAffichee = false;
|
820 |
gduche |
443 |
} else if (nouvellesDonnees instanceof ValeurListe) {
|
|
|
444 |
ValeurListe ontologieReceptionnee = (ValeurListe) nouvellesDonnees;
|
|
|
445 |
ajouterListeValeursAOntologie(ontologieReceptionnee);
|
|
|
446 |
ontologieRecue = true;
|
|
|
447 |
|
|
|
448 |
// Remplacer ci-dessous par Ontologie
|
305 |
gduche |
449 |
ValeurListe listeValeur = (ValeurListe) nouvellesDonnees;
|
820 |
gduche |
450 |
if (listeValeur.getId().equals(config.getListeId("region"))) {
|
|
|
451 |
|
305 |
gduche |
452 |
Collection colCleListeValeur = listeValeur.keySet();
|
|
|
453 |
Iterator<String> itLv = colCleListeValeur.iterator();
|
820 |
gduche |
454 |
while (itLv.hasNext()) {
|
305 |
gduche |
455 |
String idRegion = itLv.next();
|
|
|
456 |
Valeur region = listeValeur.get(idRegion);
|
820 |
gduche |
457 |
|
|
|
458 |
if (region != null) {
|
|
|
459 |
|
305 |
gduche |
460 |
String strRegionId = region.getAbreviation();
|
820 |
gduche |
461 |
|
321 |
gduche |
462 |
LinkedList<LabelField> listComposantsRegion = (LinkedList) hmLabelFieldRegion.get(strRegionId);
|
820 |
gduche |
463 |
for (int i = 0; i < listComposantsRegion.size(); i++) {
|
305 |
gduche |
464 |
LabelField lfRegion = listComposantsRegion.get(i);
|
820 |
gduche |
465 |
lfRegion.setFieldLabel(region.getNom());
|
305 |
gduche |
466 |
}
|
820 |
gduche |
467 |
|
305 |
gduche |
468 |
}
|
|
|
469 |
}
|
|
|
470 |
}
|
1284 |
gduche |
471 |
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
|
|
|
472 |
afficherPublications((PublicationAPersonneListe) nouvellesDonnees);
|
305 |
gduche |
473 |
}
|
915 |
jpm |
474 |
|
1284 |
gduche |
475 |
if (ontologieRecue && personneAAfficher != null && personneAffichee == false) {
|
915 |
jpm |
476 |
afficherDetailPersonne(personneAAfficher);
|
1284 |
gduche |
477 |
personneAffichee = true;
|
915 |
jpm |
478 |
}
|
150 |
gduche |
479 |
}
|
|
|
480 |
|
197 |
gduche |
481 |
}
|