Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
934 jpm 1
package org.tela_botanica.client.vues.collection;
453 jp_milcent 2
 
961 jpm 3
import java.util.HashMap;
883 jpm 4
import java.util.Iterator;
5
 
453 jp_milcent 6
import org.tela_botanica.client.ComposantClass;
7
import org.tela_botanica.client.ComposantId;
8
import org.tela_botanica.client.Mediateur;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
883 jpm 10
import org.tela_botanica.client.modeles.Information;
453 jp_milcent 11
import org.tela_botanica.client.modeles.ValeurListe;
935 jpm 12
import org.tela_botanica.client.modeles.collection.Collection;
997 jpm 13
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
14
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
935 jpm 15
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
16
import org.tela_botanica.client.modeles.collection.CollectionAPersonneListe;
17
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
18
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe;
961 jpm 19
import org.tela_botanica.client.modeles.collection.CollectionBotanique;
20
import org.tela_botanica.client.modeles.collection.UniteBase;
21
import org.tela_botanica.client.modeles.collection.UniteRangement;
997 jpm 22
import org.tela_botanica.client.modeles.commentaire.Commentaire;
935 jpm 23
import org.tela_botanica.client.modeles.personne.Personne;
24
import org.tela_botanica.client.modeles.projet.ProjetListe;
25
import org.tela_botanica.client.modeles.publication.Publication;
26
import org.tela_botanica.client.modeles.structure.Structure;
938 jpm 27
import org.tela_botanica.client.util.Debug;
961 jpm 28
import org.tela_botanica.client.util.UtilNombre;
29
import org.tela_botanica.client.util.UtilString;
936 jpm 30
import org.tela_botanica.client.vues.DetailVue;
453 jp_milcent 31
 
32
import com.extjs.gxt.ui.client.Style.Scroll;
33
import com.extjs.gxt.ui.client.util.Format;
34
import com.extjs.gxt.ui.client.util.Params;
35
import com.extjs.gxt.ui.client.widget.ContentPanel;
36
import com.extjs.gxt.ui.client.widget.Html;
37
import com.extjs.gxt.ui.client.widget.TabItem;
38
import com.extjs.gxt.ui.client.widget.TabPanel;
39
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout;
938 jpm 40
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
453 jp_milcent 41
 
42
public class CollectionDetailVue extends DetailVue implements Rafraichissable {
43
 
883 jpm 44
	private Collection collection = null;
45
	private boolean collectionChargementOk = false;
46
	private boolean personnesLieesChargementOk = false;
47
	private boolean publicationsLieesChargementOk = false;
997 jpm 48
	private boolean commentairesLieesChargementOk = false;
468 jp_milcent 49
	private Structure structure = null;
883 jpm 50
 
453 jp_milcent 51
	private String enteteTpl = null;
52
	private String generalTpl = null;
883 jpm 53
	private String personneTpl = null;
54
	private String tableauPersonnesLieesTpl = null;
55
	private String lignePersonneLieeTpl = null;
687 jp_milcent 56
	private String publicationTpl = null;
883 jpm 57
	private String tableauPublicationsLieesTpl = null;
58
	private String lignePublicationLieeTpl = null;
630 jp_milcent 59
	private String descriptionTpl = null;
60
	private String contenuTpl = null;
61
	private String inventaireTpl = null;
997 jpm 62
	private String commentaireTpl = null;
63
	private String tableauCommentairesLieesTpl = null;
64
	private String ligneCommentaireLieeTpl = null;
453 jp_milcent 65
 
66
	private ContentPanel panneauPrincipal = null;
67
	private Html entete = null;
68
	private TabPanel onglets = null;
69
	private TabItem generalOnglet = null;
862 jpm 70
	private TabItem personneOnglet = null;
687 jp_milcent 71
	private TabItem publicationOnglet = null;
630 jp_milcent 72
	private TabItem descriptionOnglet = null;
73
	private TabItem contenuOnglet = null;
74
	private TabItem inventaireOnglet = null;
997 jpm 75
	private TabItem commentaireOnglet = null;
961 jpm 76
	private String tableauUniteRangementTpl;
77
	private String ligneUniteRangementTpl;
78
	private String tableauUniteBaseTpl;
79
	private String ligneUniteBaseTpl;
883 jpm 80
 
453 jp_milcent 81
 
82
	public CollectionDetailVue(Mediateur mediateurCourant) {
83
		super(mediateurCourant);
84
		initialiserTousLesTpl();
85
		chargerOntologie();
86
 
87
		panneauPrincipal = new ContentPanel();
938 jpm 88
		panneauPrincipal.setLayout(new FitLayout());
453 jp_milcent 89
		panneauPrincipal.setHeaderVisible(false);
90
		panneauPrincipal.setBodyBorder(false);
91
 
92
	    entete = new Html();
93
	    entete.setId(ComposantId.ZONE_DETAIL_ENTETE);
94
	    panneauPrincipal.setTopComponent(entete);
95
 
96
		onglets = new TabPanel();
97
		onglets.setId(ComposantId.ZONE_DETAIL_CORPS);
98
		onglets.setBodyBorder(false);
99
 
100
		generalOnglet = new TabItem(i18nC.structureInfoGeneral());
101
		generalOnglet.setLayout(new AnchorLayout());
102
		generalOnglet.setScrollMode(Scroll.AUTO);
103
		onglets.add(generalOnglet);
104
 
862 jpm 105
		personneOnglet = new TabItem(i18nC.collectionPersonne());
106
		personneOnglet.setLayout(new AnchorLayout());
107
		personneOnglet.setScrollMode(Scroll.AUTO);
108
		onglets.add(personneOnglet);
630 jp_milcent 109
 
687 jp_milcent 110
		publicationOnglet = new TabItem(i18nC.collectionPublication());
111
		publicationOnglet.setLayout(new AnchorLayout());
112
		publicationOnglet.setScrollMode(Scroll.AUTO);
113
		onglets.add(publicationOnglet);
114
 
630 jp_milcent 115
		descriptionOnglet = new TabItem(i18nC.collectionDescription());
116
		descriptionOnglet.setLayout(new AnchorLayout());
117
		descriptionOnglet.setScrollMode(Scroll.AUTO);
118
		onglets.add(descriptionOnglet);
119
 
120
		contenuOnglet = new TabItem(i18nC.collectionContenu());
121
		contenuOnglet.setLayout(new AnchorLayout());
122
		contenuOnglet.setScrollMode(Scroll.AUTO);
123
		onglets.add(contenuOnglet);
862 jpm 124
 
630 jp_milcent 125
		inventaireOnglet = new TabItem(i18nC.collectionInventaire());
126
		inventaireOnglet.setLayout(new AnchorLayout());
127
		inventaireOnglet.setScrollMode(Scroll.AUTO);
128
		onglets.add(inventaireOnglet);
129
 
997 jpm 130
		commentaireOnglet = new TabItem(i18nC.collectionCommentaire());
131
		commentaireOnglet.setLayout(new AnchorLayout());
132
		commentaireOnglet.setScrollMode(Scroll.AUTO);
133
		onglets.add(commentaireOnglet);
134
 
453 jp_milcent 135
		panneauPrincipal.add(onglets);
136
		add(panneauPrincipal);
137
	}
138
 
139
	private void initialiserTousLesTpl() {
140
		initialiserEnteteHtmlTpl();
141
		initialiserGeneralTpl();
883 jpm 142
		initialiserPersonneTpl();
143
		initialiserTableauPersonnesLieesTpl();
144
		initialiserLignePersonneLieeTpl();
687 jp_milcent 145
		initialiserPublicationTpl();
883 jpm 146
		initialiserTableauPublicationsLieesTpl();
147
		initialiserLignePublicationLieeTpl();
630 jp_milcent 148
		initialiserContenuTpl();
149
		initialiserDescriptionTpl();
961 jpm 150
		initialiserTableauUniteRangementTpl();
151
		initialiserLigneUniteRangementTpl();
152
		initialiserTableauUniteBaseTpl();
153
		initialiserLigneUniteBaseTpl();
630 jp_milcent 154
		initialiserInventaireTpl();
997 jpm 155
		initialiserCommentaireTpl();
156
		initialiserTableauCommentairesLieesTpl();
157
		initialiserLigneCommentaireLieeTpl();
453 jp_milcent 158
	}
159
 
160
	private void initialiserEnteteHtmlTpl() {
161
		enteteTpl =
162
			"<div id='{css_id}'>"+
163
			"	<h1>{nom}</h1>"+
813 jpm 164
			"	<h2>{structure}<span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" +
453 jp_milcent 165
			"</div>";
166
	}
167
 
168
	private void initialiserGeneralTpl() {
169
		generalTpl =
170
			"<div class='{css_corps}'>"+
171
			"	<div class='{css_fieldset}'>"+
172
			"		<h2>{i18n_titre_identification}</h2>"+
630 jp_milcent 173
			"		<span class='{css_label}'>{i18n_nom_alternatif} :</span> {nom_alternatif}<br />"+
174
			"		<span class='{css_label}'>{i18n_mere} :</span> {mere}<br />"+
687 jp_milcent 175
			"		<span class='{css_label}'>{i18n_type_ncd} :</span> {type_ncd}<br />"+
176
			"		<span class='{css_label}'>{i18n_type_depot} :</span> {type_depot}<br />"+
961 jpm 177
			"		<span class='{css_label}'>{i18n_id_alternatif} :</span> {id_alternatif}<br />"+
178
			"		<span class='{css_label}'>{i18n_code} :</span> {code}<br />"+
179
			"		<span class='{css_label}'>{i18n_cote} :</span> {cote}<br />"+
453 jp_milcent 180
			"	</div>"+
477 jp_milcent 181
			"	<div class='{css_fieldset}'>"+
630 jp_milcent 182
			"		<h2>{i18n_general_collection_titre}</h2>"+
477 jp_milcent 183
			"		<span class='{css_label}'>{i18n_description} :</span> {description}<br />"+
184
			"		<span class='{css_label}'>{i18n_description_specialiste} :</span> {description_specialiste}<br />"+
630 jp_milcent 185
			"		<span class='{css_label}'>{i18n_historique} :</span> {historique}<br />"+
186
			"		<span class='{css_label}'>{i18n_web} :</span> {web}<br />"+
961 jpm 187
			"	</div>"+
188
			"	<hr class='{css_clear}'/>"+
189
			"	<div class='{css_fieldset}'>"+
190
			"		<h2>{i18n_couverture_collection_titre}</h2>"+
630 jp_milcent 191
			"		<span class='{css_label}'>{i18n_groupement_principe} :</span> {groupement_principe}<br />"+
192
			"		<span class='{css_label}'>{i18n_groupement_but} :</span> {groupement_but}<br />"+
961 jpm 193
			"		<span class='{css_label}'>{i18n_couverture_geo} :</span> {couverture_geo}<br />"+
477 jp_milcent 194
			"	</div>"+
961 jpm 195
			"	<div class='{css_fieldset}'>"+
196
			"		<h2>{i18n_specimen_type_titre}</h2>"+
197
			"		<span class='{css_label}'>{i18n_specimen_type_presence} :</span> {specimen_type_presence}<br />"+
198
			"		<span class='{css_label}'>{i18n_specimen_type_nombre} :</span> {specimen_type_nombre}<br />"+
199
			"		<span class='{css_label}'>{i18n_specimen_type_classement} :</span> {specimen_type_classement}<br />"+
200
			"	</div>"+
477 jp_milcent 201
			"	<hr class='{css_clear}'/>"+
453 jp_milcent 202
			"</div>";
203
	}
204
 
883 jpm 205
	private void initialiserPersonneTpl() {
206
		personneTpl =
630 jp_milcent 207
			"<div class='{css_corps}'>"+
961 jpm 208
			"	<h2>{i18n_titre_personne}</h2>"+
209
			"	{tableau_personnes_liees}"+
630 jp_milcent 210
			"</div>";
211
	}
212
 
883 jpm 213
	private void initialiserTableauPersonnesLieesTpl() {
214
		tableauPersonnesLieesTpl =
215
			"<table>"+
216
			"	<thead>"+
217
			"		<tr>" +
961 jpm 218
			"			<th>{i18n_relation}</th>" +
219
			"			<th>{i18n_nom_complet}</th>" +
220
			"			<th>{i18n_nom}</th>" +
883 jpm 221
			"			<th>{i18n_prenom}</th>" +
961 jpm 222
			"			<th>{i18n_naissance_date}</th>" +
223
			"			<th>{i18n_naissance_lieu}</th>" +
224
			"			<th>{i18n_etre_decede}</th>" +
225
			"			<th>{i18n_deces_date}</th>" +
226
			"			<th>{i18n_deces_lieu}</th>" +
883 jpm 227
			"		</tr>"+
228
			"	</thead>"+
229
			"	<tbody>"+
230
			"		{lignes}"+
231
			"	</tbody>"+
232
			"</table>";
233
	}
234
 
235
	private void initialiserLignePersonneLieeTpl() {
236
		lignePersonneLieeTpl =
237
			"<tr>"+
961 jpm 238
			"	<td>{relation}</td>"+
239
			"	<td>{nom_complet}</td>"+
240
			"	<td>{nom}</td>"+
883 jpm 241
			"	<td>{prenom}</td>"+
961 jpm 242
			"	<td>{naissance_date}</td>"+
243
			"	<td>{naissance_lieu}</td>"+
244
			"	<td>{etre_decede}</td>"+
245
			"	<td>{deces_date}</td>"+
246
			"	<td>{deces_lieu}</td>"+
883 jpm 247
			"</tr>";
248
	}
249
 
687 jp_milcent 250
	private void initialiserPublicationTpl() {
251
		publicationTpl =
252
			"<div class='{css_corps}'>"+
961 jpm 253
			"	<h2>{i18n_titre_publication}</h2>"+
254
			"	{tableau_publications_liees}"+
687 jp_milcent 255
			"</div>";
256
	}
257
 
883 jpm 258
	private void initialiserTableauPublicationsLieesTpl() {
259
		tableauPublicationsLieesTpl =
260
			"<table>"+
261
			"	<thead>"+
262
			"		<tr>" +
263
			"			<th>{i18n_auteur}</th>" +
264
			"			<th>{i18n_titre}</th>" +
961 jpm 265
			"			<th>{i18n_revue}</th>" +
266
			"			<th>{i18n_editeur}</th>" +
267
			"			<th>{i18n_annee}</th>" +
268
			"			<th>{i18n_nvt}</th>" +
269
			"			<th>{i18n_fascicule}</th>" +
270
			"			<th>{i18n_page}</th>" +
883 jpm 271
			"		</tr>"+
272
			"	</thead>"+
273
			"	<tbody>"+
274
			"		{lignes}"+
275
			"	</tbody>"+
276
			"</table>";
277
	}
278
 
279
	private void initialiserLignePublicationLieeTpl() {
280
		lignePublicationLieeTpl =
281
			"<tr>"+
282
			"	<td>{auteur}</td>"+
283
			"	<td>{titre}</td>"+
961 jpm 284
			"	<td>{revue}</td>"+
285
			"	<td>{editeur}</td>"+
286
			"	<td>{annee}</td>"+
287
			"	<td>{nvt}</td>"+
288
			"	<td>{fascicule}</td>"+
289
			"	<td>{page}</td>"+
883 jpm 290
			"</tr>";
291
	}
292
 
630 jp_milcent 293
	private void initialiserDescriptionTpl() {
294
		descriptionTpl =
295
			"<div class='{css_corps}'>"+
966 jpm 296
			"	<div>"+
630 jp_milcent 297
			"		<h2>{i18n_titre_description}</h2>"+
875 jpm 298
			"		<span class='{css_label}'>{i18n_type_botanique} :</span> {type_botanique}<br />"+
299
			"		<span class='{css_label}'>{i18n_nbre_echantillon} :</span> {nbre_echantillon}<br />"+
630 jp_milcent 300
			"	</div>"+
961 jpm 301
			"	<div>"+
302
			"		<h2>{i18n_titre_unite_rangement}</h2>"+
303
			"		<span class='{css_label}'>{i18n_etat_unite_rangement} :</span> {etat_unite_rangement}<br />"+
304
			"		{tableau_unite_rangement}"+
305
			"	</div>"+
306
			"	<div>"+
307
			"		<h2>{i18n_titre_unite_base}</h2>"+
308
			"		{tableau_unite_base}"+
309
			"	</div>"+
310
			"	<div>"+
311
			"		<h2>{i18n_titre_conservation}</h2>"+
312
			"		<span class='{css_label}'>{i18n_type_papier} :</span> {type_papier}<br />"+
313
			"		<span class='{css_label}'>{i18n_conservation_methode} :</span> {conservation_methode}<br />"+
314
			"	</div>"+
315
			"	<div>"+
316
			"		<h2>{i18n_titre_etiquette}</h2>"+
317
			"		<span class='{css_label}'>{i18n_specimen_fixation_pourcent} :</span> {specimen_fixation_pourcent}<br />"+
318
			"		<span class='{css_label}'>{i18n_etiquette_fixation_pourcent} :</span> {etiquette_fixation_pourcent}<br />"+
319
			"		<span class='{css_label}'>{i18n_specimen_fixation_methode} :</span> {specimen_fixation_methode}<br />"+
320
			"		<span class='{css_label}'>{i18n_etiquette_fixation_methode_support} :</span> {etiquette_fixation_methode_support}<br />"+
321
			"		<span class='{css_label}'>{i18n_etiquette_fixation_methode_specimen} :</span> {etiquette_fixation_methode_specimen}<br />"+
322
			"		<span class='{css_label}'>{i18n_etiquette_type_ecriture} :</span> {etiquette_type_ecriture}<br />"+
323
			"	</div>"+
324
			"	<div>"+
325
			"		<h2>{i18n_titre_traitement}</h2>"+
326
			"		<span class='{css_label}'>{i18n_traitement} :</span> {traitement}<br />"+
327
			"		<span class='{css_label}'>{i18n_traitement_poison} :</span> {traitement_poison}<br />"+
328
			"		<span class='{css_label}'>{i18n_traitement_insecte} :</span> {traitement_insecte}<br />"+
329
			"	</div>"+
966 jpm 330
			"	<div>"+
331
			"		<h2>{i18n_titre_etat_degradation}</h2>"+
332
			"		<span class='{css_label}'>{i18n_etat_general} :</span> {etat_general}<br />"+
333
			"		<span class='{css_label}'>{i18n_degradation_specimen} :</span> {degradation_specimen}<br />"+
334
			"		<span class='{css_label}'>{i18n_degradation_presentation} :</span> {degradation_presentation}<br />"+
335
			"		<span class='{css_label}'>{i18n_determination} :</span> {determination}<br />"+
336
			"	</div>"+
630 jp_milcent 337
			"</div>";
338
	}
339
 
961 jpm 340
	private void initialiserTableauUniteRangementTpl() {
341
		tableauUniteRangementTpl =
342
			"<table>"+
343
			"	<thead>"+
344
			"		<tr>" +
345
			"			<th>{i18n_type}</th>" +
346
			"			<th>{i18n_nombre}</th>" +
347
			"			<th>{i18n_precision}</th>" +
348
			"			<th>{i18n_format}</th>" +
349
			"		</tr>"+
350
			"	</thead>"+
351
			"	<tbody>"+
352
			"		{lignes}"+
353
			"	</tbody>"+
354
			"</table>";
355
	}
356
 
357
	private void initialiserLigneUniteRangementTpl() {
358
		ligneUniteRangementTpl =
359
			"<tr>"+
360
			"	<td>{type}</td>"+
361
			"	<td>{nombre}</td>"+
362
			"	<td>{precision}</td>"+
363
			"	<td>{format}</td>"+
364
			"</tr>";
365
	}
366
 
367
	private void initialiserTableauUniteBaseTpl() {
368
		tableauUniteBaseTpl =
369
			"<table>"+
370
			"	<thead>"+
371
			"		<tr>" +
372
			"			<th colspan='4'>{i18n_unite_base}</th>" +
373
			"			<th colspan='2'>{i18n_part}</th>" +
374
			"			<th colspan='2'>{i18n_sp}</th>" +
375
			"		</tr>"+
376
			"		<tr>" +
377
			"			<th>{i18n_type}</th>" +
378
			"			<th>{i18n_nombre}</th>" +
379
			"			<th>{i18n_precision}</th>" +
380
			"			<th>{i18n_format}</th>" +
381
			"			<th>{i18n_nombre}</th>" +
382
			"			<th>{i18n_precision}</th>" +
383
			"			<th>{i18n_nombre}</th>" +
384
			"			<th>{i18n_precision}</th>" +
385
			"		</tr>"+
386
			"	</thead>"+
387
			"	<tbody>"+
388
			"		{lignes}"+
389
			"	</tbody>"+
390
			"</table>";
391
	}
392
 
393
	private void initialiserLigneUniteBaseTpl() {
394
		ligneUniteBaseTpl =
395
			"<tr>"+
396
			"	<td>{type}</td>"+
397
			"	<td>{nombre}</td>"+
398
			"	<td>{precision}</td>"+
399
			"	<td>{format}</td>"+
400
			"	<td>{part_nombre}</td>"+
401
			"	<td>{part_precision}</td>"+
402
			"	<td>{sp_nombre}</td>"+
403
			"	<td>{sp_precision}</td>"+
404
			"</tr>";
405
	}
406
 
630 jp_milcent 407
	private void initialiserContenuTpl() {
408
		contenuTpl =
409
			"<div class='{css_corps}'>"+
410
			"	<div class='{css_fieldset}'>"+
966 jpm 411
			"		<h2>{i18n_titre_nature}</h2>"+
412
			"		<span class='{css_label}'>{i18n_nature} :</span> {nature}<br />"+
413
			"		<span class='{css_label}'>{i18n_specialite} :</span> {specialite}<br />"+
630 jp_milcent 414
			"	</div>"+
966 jpm 415
			"	<div class='{css_fieldset}'>"+
416
			"		<h2>{i18n_titre_constitution}</h2>"+
417
			"		<span class='{css_label}'>{i18n_periode} :</span> {periode}<br />"+
418
			"		<span class='{css_label}'>{i18n_date_debut} :</span> {date_debut}<br />"+
419
			"		<span class='{css_label}'>{i18n_date_fin} :</span> {date_fin}<br />"+
420
			"	</div>"+
630 jp_milcent 421
			"	<hr class='{css_clear}'/>"+
966 jpm 422
			"	<div class='{css_fieldset}'>"+
423
			"		<h2>{i18n_titre_classement}</h2>"+
424
			"		<span class='{css_label}'>{i18n_classement_etat} :</span> {classement_etat}<br />"+
425
			"		<span class='{css_label}'>{i18n_classement} :</span> {classement}<br />"+
426
			"	</div>"+
427
			"	<div class='{css_fieldset}'>"+
428
			"		<h2>{i18n_titre_etiquette}</h2>"+
429
			"		<span class='{css_label}'>{i18n_etiquette_renseignement} :</span> {etiquette_renseignement}<br />"+
430
			"		<span class='{css_label}'>{i18n_precision_localite} :</span> {precision_localite}<br />"+
431
			"		<span class='{css_label}'>{i18n_precision_date} :</span> {precision_date}<br />"+
432
			"		<span class='{css_label}'>{i18n_etiquette_annotation} :</span> {etiquette_annotation}<br />"+
433
			"	</div>"+
434
			"	<hr class='{css_clear}'/>"+
435
			"	<div class='{css_fieldset}'>"+
436
			"		<h2>{i18n_titre_integree}</h2>"+
437
			"		<span class='{css_label}'>{i18n_collection_integration} :</span> {collection_integration}<br />"+
438
			"		<span class='{css_label}'>{i18n_collection_integration_info} :</span> {collection_integration_info}<br />"+
439
			"	</div>"+
630 jp_milcent 440
			"</div>";
441
	}
442
 
443
	private void initialiserInventaireTpl() {
444
		inventaireTpl =
445
			"<div class='{css_corps}'>"+
446
			"	<div class='{css_fieldset}'>"+
447
			"		<h2>{i18n_titre_inventaire}</h2>"+
966 jpm 448
			"		<span class='{css_label}'>{i18n_existence} :</span> {existence}<br />"+
449
			"		<span class='{css_label}'>{i18n_participation_auteur} :</span> {participation_auteur}<br />"+
450
			"		<span class='{css_label}'>{i18n_forme} :</span> {forme}<br />"+
451
			"		<span class='{css_label}'>{i18n_info} :</span> {info}<br />"+
452
			"		<span class='{css_label}'>{i18n_digital} :</span> {digital}<br />"+
453
			"		<span class='{css_label}'>{i18n_digital_pourcent} :</span> {digital_pourcent}<br />"+
454
			"		<span class='{css_label}'>{i18n_etat} :</span> {etat}<br />"+
455
			"		<span class='{css_label}'>{i18n_type_donnee} :</span> {type_donnee}<br />"+
630 jp_milcent 456
			"	</div>"+
457
			"	<hr class='{css_clear}'/>"+
458
			"</div>";
459
	}
460
 
997 jpm 461
	private void initialiserCommentaireTpl() {
462
		commentaireTpl =
463
			"<div class='{css_corps}'>"+
464
			"	<h2>{i18n_titre_commentaire}</h2>"+
465
			"	{tableau_commentaires_liees}"+
466
			"</div>";
467
	}
468
 
469
	private void initialiserTableauCommentairesLieesTpl() {
470
		tableauCommentairesLieesTpl =
471
			"<table>"+
472
			"	<thead>"+
473
			"		<tr>" +
474
			"			<th>{i18n_type}</th>" +
475
			"			<th>{i18n_titre}</th>" +
476
			"			<th>{i18n_ponderation}</th>" +
477
			"			<th>{i18n_public}</th>" +
478
			"		</tr>"+
479
			"	</thead>"+
480
			"	<tbody>"+
481
			"		{lignes}"+
482
			"	</tbody>"+
483
			"</table>";
484
	}
485
 
486
	private void initialiserLigneCommentaireLieeTpl() {
487
		ligneCommentaireLieeTpl =
488
			"<tr>"+
489
			"	<td>{type}</td>"+
490
			"	<td>{titre}</td>"+
491
			"	<td>{ponderation}</td>"+
492
			"	<td>{public}</td>"+
493
			"</tr>"+
494
			"<tr>"+
495
			"	<td colspan='4'>{texte}</td>"+
496
			"</tr>";
497
	}
498
 
453 jp_milcent 499
	private void chargerOntologie() {
961 jpm 500
		String[] listesCodes = {"typeCollectionBota", "typeCollectionNcd", "typeDepot", "groupementPrincipe",
501
			"realisationBut", "onpi", "ea", "typeClassement", "relationPersonneCollection", "ion",
969 jpm 502
			"typeUniteRangement", "etat", "typeUniteBase", "typePapier", "methodeRangement", "methodeFixation",
503
			"methodeFixationSurSpecimen", "typeEcriture", "poisonTraitement", "insecteTraitement", "specimenDegradation",
504
			"niveauImportance", "supportDegradation", "niveauDetermination", "natureVegetale", "siecleNaturaliste",
975 jpm 505
			"dateDebut", "dateFin", "etat", "onep", "onp", "inventaireForme", "inventaireLogiciel", "inventaireEtat",
997 jpm 506
			"etatClassement", "typeCommentaireCollection"};
813 jpm 507
		lancerChargementListesValeurs(listesCodes);
453 jp_milcent 508
	}
509
 
811 jpm 510
	public void rafraichir(Object nouvellesDonnees) {
511
		if (nouvellesDonnees instanceof Collection) {
512
			collection = (Collection) nouvellesDonnees;
813 jpm 513
			collectionChargementOk = true;
811 jpm 514
		} else if (nouvellesDonnees instanceof ProjetListe) {
515
			projets = (ProjetListe) nouvellesDonnees;
813 jpm 516
			projetsChargementOk = true;
811 jpm 517
		} else if (nouvellesDonnees instanceof ValeurListe) {
813 jpm 518
			ValeurListe listeValeursReceptionnee = (ValeurListe) nouvellesDonnees;
816 jpm 519
			receptionerListeValeurs(listeValeursReceptionnee);
883 jpm 520
		} else if (nouvellesDonnees instanceof Information) {
521
			Information info = (Information) nouvellesDonnees;
522
			if (info.getType().equals("liste_collection_a_personne")) {
523
				lierCollectionAPersonne((CollectionAPersonneListe) info.getDonnee(0));
524
			} else if (info.getType().equals("liste_collection_a_publication")) {
525
				lierCollectionAPublication((CollectionAPublicationListe) info.getDonnee(0));
997 jpm 526
			} else if (info.getType().equals("liste_collection_a_commentaire")) {
527
				lierCollectionACommentaire((CollectionACommentaireListe) info.getDonnee(0));
883 jpm 528
			}
453 jp_milcent 529
		} else {
950 jpm 530
			Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));
453 jp_milcent 531
		}
813 jpm 532
 
533
		if (avoirDonneesChargees()) {
534
			afficherDetail();
535
		}
453 jp_milcent 536
	}
537
 
883 jpm 538
	protected void lierCollectionAPersonne(CollectionAPersonneListe personnes) {
539
		collection.setPersonnesLiees(personnes);
540
		personnesLieesChargementOk = true;
541
	}
542
 
543
	protected void lierCollectionAPublication(CollectionAPublicationListe publications) {
544
		collection.setPublicationsLiees(publications);
545
		publicationsLieesChargementOk = true;
546
	}
547
 
997 jpm 548
	protected void lierCollectionACommentaire(CollectionACommentaireListe commentaires) {
549
		collection.setCommentairesLiees(commentaires);
550
		commentairesLieesChargementOk = true;
551
	}
552
 
813 jpm 553
	private boolean avoirDonneesChargees() {
554
		boolean ok = false;
948 jpm 555
		//Debug.log("projetsChargementOk:"+projetsChargementOk+"-collectionChargementOk:"+collectionChargementOk+"-ontologieChargementOk:"+ontologieChargementOk+"-personnesLieesChargementOk:"+personnesLieesChargementOk+"-publicationsLieesChargementOk:"+publicationsLieesChargementOk);
997 jpm 556
		if (projetsChargementOk && collectionChargementOk && ontologieChargementOk && personnesLieesChargementOk && publicationsLieesChargementOk && commentairesLieesChargementOk) {
813 jpm 557
			ok = true;
558
		}
559
		return ok;
560
	}
561
 
453 jp_milcent 562
	private void afficherDetail() {
563
		if (collection != null) {
564
			afficherEntete();
565
			afficherIdentification();
883 jpm 566
			afficherPersonne();
687 jp_milcent 567
			afficherPublication();
630 jp_milcent 568
			afficherDescription();
569
			afficherContenu();
570
			afficherInventaire();
997 jpm 571
			afficherCommentaire();
453 jp_milcent 572
		}
573
		layout();
574
	}
575
 
576
	private void afficherEntete() {
577
		Params enteteParams = new Params();
578
		enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE);
579
		enteteParams.set("css_meta", ComposantClass.META);
580
 
813 jpm 581
		enteteParams.set("i18n_id", i18nC.id());
582
 
453 jp_milcent 583
		enteteParams.set("nom", collection.getNom());
468 jp_milcent 584
		enteteParams.set("structure", collection.getStructureNom());
453 jp_milcent 585
		enteteParams.set("id", collection.getId());
586
		enteteParams.set("guid", collection.getGuid());
587
		enteteParams.set("projet", construireTxtProjet(collection.getIdProjet()));
588
 
589
		String eHtml = Format.substitute(enteteTpl, enteteParams);
590
		entete.getElement().setInnerHTML(eHtml);
591
	}
592
 
593
	private void afficherIdentification() {
594
		Params generalParams = new Params();
595
		generalParams.set("i18n_titre_identification", i18nC.titreAdministratif());
961 jpm 596
		generalParams.set("i18n_nom_alternatif", i18nC.intituleAlternatifCollection());
477 jp_milcent 597
		generalParams.set("i18n_mere", i18nC.collectionMere());
687 jp_milcent 598
		generalParams.set("i18n_type_ncd", i18nC.typeCollectionNcd());
599
		generalParams.set("i18n_type_depot", i18nC.typeDepot());
961 jpm 600
		generalParams.set("i18n_id_alternatif", i18nC.idAlternatifCollection());
601
		generalParams.set("i18n_code", i18nC.codeAlternatifCollection());
602
		generalParams.set("i18n_cote", i18nC.cote());
603
 
630 jp_milcent 604
		generalParams.set("i18n_general_collection_titre", i18nC.collectionGeneralTitre());
477 jp_milcent 605
		generalParams.set("i18n_description", i18nC.description());
606
		generalParams.set("i18n_description_specialiste", i18nC.descriptionSpecialiste());
607
		generalParams.set("i18n_historique", i18nC.historique());
608
		generalParams.set("i18n_web", i18nC.siteWeb());
961 jpm 609
 
610
		generalParams.set("i18n_couverture_collection_titre", i18nC.collectionCouvertureTitre());
477 jp_milcent 611
		generalParams.set("i18n_groupement_principe", i18nC.groupementPrincipe());
612
		generalParams.set("i18n_groupement_but", i18nC.groupementBut());
961 jpm 613
		generalParams.set("i18n_couverture_geo", i18nC.couvertureGeo());
477 jp_milcent 614
 
961 jpm 615
		generalParams.set("i18n_specimen_type_titre", i18nC.collectionSpecimenTypeTitre());
616
		generalParams.set("i18n_specimen_type_presence", i18nC.specimenTypeCollectionDetail());
617
		generalParams.set("i18n_specimen_type_nombre", i18nC.nbreSpecimenTypeCollectionDetail());
618
		generalParams.set("i18n_specimen_type_classement", i18nC.classementSpecimenTypeCollectionDetail());
619
 
630 jp_milcent 620
		String nomAlternatif = construireTxtTruck(collection.getNomAlternatif());
621
		String typeNcd = construireTxtListeOntologie(collection.getTypeNcd());
622
		String typeDepot = construireTxtListeOntologie(collection.getTypeDepot());
961 jpm 623
		String idAlternatif = construireTxtTruck(collection.getIdAlternatif());
624
		String code = construireTxtTruck(collection.getCode());
625
 
626
		String urls = construireTxtTruck(collection.getUrls());
627
 
875 jpm 628
		String groupementBut = construireTxtListeOntologie(collection.getGroupementBut());
629
		String groupementPrincipe = construireTxtListeOntologie(collection.getGroupementPrincipe());
961 jpm 630
		String couvertureGeo = construireTxtTruck(collection.getCouvertureLieu());
631
		String specimenTypePresence = construireTxtListeOntologie(collection.getSpecimenType());
632
		String specimenTypeNombrePrecision = construireTxtListeOntologie(collection.getSpecimenTypeNbrePrecision());
633
		String specimenTypeNombre = "";
975 jpm 634
		if (!collection.getSpecimenTypeNbre().equals("0") && !collection.getSpecimenTypeNbre().equals("")) {
961 jpm 635
			specimenTypeNombre = collection.getSpecimenTypeNbre()+" ("+specimenTypeNombrePrecision+")";
636
		}
637
		String specimenTypeClassement = construireTxtListeOntologie(collection.getSpecimenTypeClassement());
630 jp_milcent 638
 
639
		generalParams.set("nom_alternatif", nomAlternatif);
640
		generalParams.set("mere", collection.getCollectionMereNom());
687 jp_milcent 641
		generalParams.set("type_ncd", typeNcd);
642
		generalParams.set("type_depot", typeDepot);
961 jpm 643
		generalParams.set("id_alternatif", idAlternatif);
644
		generalParams.set("code", code);
645
		generalParams.set("cote", collection.getCote());
646
 
477 jp_milcent 647
		generalParams.set("description", collection.getDescription());
648
		generalParams.set("description_specialiste", collection.getDescriptionSpecialiste());
630 jp_milcent 649
		generalParams.set("historique", collection.getHistorique());
650
		generalParams.set("web", urls);
961 jpm 651
 
875 jpm 652
		generalParams.set("groupement_principe", groupementPrincipe);
653
		generalParams.set("groupement_but", groupementBut);
961 jpm 654
		generalParams.set("couverture_geo", couvertureGeo);
453 jp_milcent 655
 
961 jpm 656
		generalParams.set("specimen_type_presence", specimenTypePresence);
657
		generalParams.set("specimen_type_nombre", specimenTypeNombre);
658
		generalParams.set("specimen_type_classement", specimenTypeClassement);
659
 
453 jp_milcent 660
		afficherOnglet(generalTpl, generalParams, generalOnglet);
661
	}
662
 
883 jpm 663
	private void afficherPersonne() {
664
		String tableauPersonneHtml = "";
914 jpm 665
		if (collection.getPersonnesLiees() != null && collection.getPersonnesLiees().size() > 0) {
883 jpm 666
			tableauPersonneHtml = construireTableauPersonnesLiees();
667
		}
630 jp_milcent 668
 
883 jpm 669
		Params personneParams = new Params();
670
		personneParams.set("i18n_titre_personne", i18nC.collectionPersonneTitre());
671
		personneParams.set("tableau_personnes_liees", tableauPersonneHtml);
672
 
673
		afficherOnglet(personneTpl, personneParams, personneOnglet);
630 jp_milcent 674
	}
675
 
883 jpm 676
	private String construireTableauPersonnesLiees() {
677
		Params contenuParams = new Params();
961 jpm 678
		contenuParams.set("i18n_relation", i18nC.typeRelationPersonneCollection());
679
		contenuParams.set("i18n_nom_complet", i18nC.personneNomComplet());
883 jpm 680
		contenuParams.set("i18n_prenom", i18nC.personnePrenom());
681
		contenuParams.set("i18n_nom", i18nC.personneNom());
961 jpm 682
		contenuParams.set("i18n_naissance_date", i18nC.personneDateNaissance());
683
		contenuParams.set("i18n_naissance_lieu", i18nC.personneLieuNaissance());
684
		contenuParams.set("i18n_etre_decede", i18nC.personneDeces());
685
		contenuParams.set("i18n_deces_date", i18nC.personneDateDeces());
686
		contenuParams.set("i18n_deces_lieu", i18nC.personneLieuDeces());
883 jpm 687
 
688
		String lignesPersonnel = "";
968 jpm 689
		if (collection.getPersonnesLiees() != null) {
690
			Iterator<String> it = collection.getPersonnesLiees().keySet().iterator();
691
			while (it.hasNext()) {
692
				CollectionAPersonne relationCollectionAPersonne = collection.getPersonnesLiees().get(it.next());
693
				Personne personne = relationCollectionAPersonne.getPersonne();
694
 
695
				String relation = construireTxtListeOntologie(relationCollectionAPersonne.getIdRole());
696
				String etreDecede = construireTxtListeOntologie(personne.getDeces());
697
 
698
				Params ligneParams = new Params();
699
				ligneParams.set("relation", relation);
700
				ligneParams.set("nom_complet", personne.getNomComplet());
701
				ligneParams.set("nom", personne.getNom());
702
				ligneParams.set("prenom", personne.getPrenom());
703
				ligneParams.set("naissance_date", personne.getNaissanceDate());
704
				ligneParams.set("naissance_lieu", personne.getNaissanceLieu());
705
				ligneParams.set("etre_decede", etreDecede);
706
				ligneParams.set("deces_date", personne.getDecesDate());
707
				ligneParams.set("deces_lieu", personne.getDecesLieu());
708
 
709
				lignesPersonnel += Format.substitute(lignePersonneLieeTpl, ligneParams);
710
			}
711
		}
883 jpm 712
 
968 jpm 713
		String cHtml = i18nC.nonRenseigne();
714
		if (!UtilString.isEmpty(lignesPersonnel)) {
715
			contenuParams.set("lignes", lignesPersonnel);
716
			cHtml = Format.substitute(tableauPersonnesLieesTpl, contenuParams);
883 jpm 717
		}
718
		return cHtml;
719
	}
720
 
687 jp_milcent 721
	private void afficherPublication() {
722
		Params publicationParams = new Params();
723
		publicationParams.set("i18n_titre_publication", i18nC.collectionPublicationTitre());
724
 
883 jpm 725
		String tableauPublicationHtml = "";
914 jpm 726
		if (collection.getPersonnesLiees() != null && collection.getPersonnesLiees().size() > 0) {
883 jpm 727
			tableauPublicationHtml = construireTableauPublicationsLiees();
728
		}
729
		publicationParams.set("tableau_publications_liees", tableauPublicationHtml);
730
 
687 jp_milcent 731
		afficherOnglet(publicationTpl, publicationParams, publicationOnglet);
732
	}
733
 
883 jpm 734
	private String construireTableauPublicationsLiees() {
735
		Params contenuParams = new Params();
736
		contenuParams.set("i18n_auteur", i18nC.publicationAuteurs());
737
		contenuParams.set("i18n_titre", i18nC.publicationTitre());
961 jpm 738
		contenuParams.set("i18n_revue", i18nC.publicationRevueCollection());
739
		contenuParams.set("i18n_editeur", i18nC.publicationEditeur());
740
		contenuParams.set("i18n_annee", i18nC.publicationDateParution());
741
		contenuParams.set("i18n_nvt", i18nC.publicationNvt());
742
		contenuParams.set("i18n_fascicule", i18nC.publicationFascicule());
743
		contenuParams.set("i18n_page", i18nC.publicationPage());
883 jpm 744
 
745
		String lignesPublication = "";
968 jpm 746
		if (collection.getPublicationsLiees() != null) {
747
			Iterator<String> it = collection.getPublicationsLiees().keySet().iterator();
748
			while (it.hasNext()) {
749
				CollectionAPublication relationCollectionAPublication = collection.getPublicationsLiees().get(it.next());
750
				Publication publication = relationCollectionAPublication.getPublication();
751
				Params ligneParams = new Params();
752
 
753
				ligneParams.set("auteur", publication.getAuteur());
754
				ligneParams.set("titre", publication.getTitre());
755
				ligneParams.set("revue", publication.getCollection());
756
				ligneParams.set("editeur", publication.getEditeur());
757
				ligneParams.set("annee", publication.getAnneeParution());
758
				ligneParams.set("nvt", publication.getIndicationNvt());
759
				ligneParams.set("fascicule", publication.getFascicule());
760
				ligneParams.set("page", publication.getPages());
761
				lignesPublication += Format.substitute(lignePublicationLieeTpl, ligneParams);
762
			}
883 jpm 763
		}
968 jpm 764
 
765
		String cHtml = i18nC.nonRenseigne();
766
		if (!UtilString.isEmpty(lignesPublication)) {
767
			contenuParams.set("lignes", lignesPublication);
768
			cHtml = Format.substitute(tableauPublicationsLieesTpl, contenuParams);
769
		}
883 jpm 770
		return cHtml;
771
	}
772
 
630 jp_milcent 773
	private void afficherDescription() {
774
		Params descriptionParams = new Params();
775
		descriptionParams.set("i18n_titre_description", i18nC.collectionDescriptionTitre());
875 jpm 776
		descriptionParams.set("i18n_type_botanique", i18nC.typeCollectionBotanique());
777
		descriptionParams.set("i18n_nbre_echantillon", i18nC.nbreEchantillon());
630 jp_milcent 778
 
961 jpm 779
		descriptionParams.set("i18n_titre_unite_rangement", i18nC.collectionUniteRangementTitre());
966 jpm 780
		descriptionParams.set("i18n_etat_unite_rangement", i18nC.collectionUniteRangementEtatGeneralDetail());
961 jpm 781
		descriptionParams.set("i18n_titre_unite_base", i18nC.collectionUniteBaseTitre());
782
 
783
		descriptionParams.set("i18n_titre_conservation", i18nC.collectionTitreConservation());
784
		descriptionParams.set("i18n_type_papier", i18nC.typePapierConservationDetail());
785
		descriptionParams.set("i18n_conservation_methode", i18nC.methodeConservationDetail());
786
 
787
		descriptionParams.set("i18n_titre_etiquette", i18nC.collectionTitreEtiquette());
788
		descriptionParams.set("i18n_specimen_fixation_pourcent", i18nC.specimenFixationPourcent());
789
		descriptionParams.set("i18n_etiquette_fixation_pourcent", i18nC.etiquetteFixationPourcent());
790
		descriptionParams.set("i18n_specimen_fixation_methode", i18nC.specimenMethodeFixationDetail());
791
		descriptionParams.set("i18n_etiquette_fixation_methode_support", i18nC.etiquetteMethodeFixationSurSupportDetail());
792
		descriptionParams.set("i18n_etiquette_fixation_methode_specimen", i18nC.etiquetteMethodeFixationSurSpecimenDetail());
793
		descriptionParams.set("i18n_etiquette_type_ecriture", i18nC.typeEcritureDetail());
794
 
795
		descriptionParams.set("i18n_titre_traitement", i18nC.collectionTitreTraitement());
796
		descriptionParams.set("i18n_traitement", i18nC.collectionTraitementDetail());
797
		descriptionParams.set("i18n_traitement_poison", i18nC.collectionTraitementPoisonDetail());
798
		descriptionParams.set("i18n_traitement_insecte", i18nC.collectionTraitementInsecteDetail());
799
 
966 jpm 800
		descriptionParams.set("i18n_titre_etat_degradation", i18nC.collectionTitreEtatEtDegradation());
801
		descriptionParams.set("i18n_etat_general", i18nC.collectionEtatGeneralDetail());
802
		descriptionParams.set("i18n_degradation_specimen", i18nC.degradationSpecimenDetail());
803
		descriptionParams.set("i18n_degradation_presentation", i18nC.degradationPresentationDetail());
804
		descriptionParams.set("i18n_determination", i18nC.collectionDeterminationDetail());
805
 
875 jpm 806
		String typeBota = construireTxtListeOntologie(collection.getBotanique().getType());
807
		descriptionParams.set("type_botanique", typeBota);
808
		descriptionParams.set("nbre_echantillon", collection.getBotanique().getNbreEchantillon());
809
 
961 jpm 810
		CollectionBotanique collectionBotanique = collection.getBotanique();
811
		String etatUniteRangement = construireTxtListeOntologie(collectionBotanique.getUniteRangementEtat());
812
		String tableauUniteRangementHtml = construireTableauUniteRangement();
813
		String tableauUniteBaseHtml = construireTableauUniteBase();
814
		descriptionParams.set("tableau_unite_rangement", tableauUniteRangementHtml);
815
		descriptionParams.set("etat_unite_rangement", etatUniteRangement);
816
		descriptionParams.set("tableau_unite_base", tableauUniteBaseHtml);
817
 
818
		String typePapier = construireTxtListeOntologie(collectionBotanique.getConservationPapierType());
819
		String conservationMethode = construireTxtListeOntologie(collectionBotanique.getConservationMethode());
820
		descriptionParams.set("type_papier", typePapier);
821
		descriptionParams.set("conservation_methode", conservationMethode);
822
 
823
		String specimenFixationMethode = construireTxtListeOntologie(collectionBotanique.getSpecimenFixationMethode());
824
		String etiquetteFixationMethodeSupport = construireTxtListeOntologie(collectionBotanique.getEtiquetteFixationSupport());
825
		String etiquetteFixationMethodeSpecimen = construireTxtListeOntologie(collectionBotanique.getEtiquetteFixationSpecimen());
826
		String etiquetteTypeEcriture = construireTxtListeOntologie(collectionBotanique.getEtiquetteEcriture());
827
		descriptionParams.set("specimen_fixation_pourcent", collectionBotanique.getSpecimenFixationPourcent());
828
		descriptionParams.set("etiquette_fixation_pourcent", collectionBotanique.getEtiquetteFixationPourcent());
829
		descriptionParams.set("specimen_fixation_methode", specimenFixationMethode);
830
		descriptionParams.set("etiquette_fixation_methode_support", etiquetteFixationMethodeSupport);
831
		descriptionParams.set("etiquette_fixation_methode_specimen", etiquetteFixationMethodeSpecimen);
832
		descriptionParams.set("etiquette_type_ecriture", etiquetteTypeEcriture);
833
 
834
		String traitement = construireTxtListeOntologie(collectionBotanique.getTraitement());
835
		String traitementPoison = construireTxtListeOntologie(collectionBotanique.getTraitementPoison());
836
		String traitementInsecte = construireTxtListeOntologie(collectionBotanique.getTraitementInsecte());
837
		descriptionParams.set("traitement", traitement);
838
		descriptionParams.set("traitement_poison", traitementPoison);
839
		descriptionParams.set("traitement_insecte", traitementInsecte);
840
 
966 jpm 841
		String etatGeneral = construireTxtListeOntologie(collectionBotanique.getEtatGeneral());
842
		boolean valeurEstOntologie = false;
843
		boolean typeEstOntologie = true;
844
		boolean donneeEstOntologie = true;
845
		String degradationSpecimen = construireTxtListeOntologie(collectionBotanique.getDegradationSpecimen(), valeurEstOntologie, typeEstOntologie, donneeEstOntologie);
846
		String degradationPresentation = construireTxtListeOntologie(collectionBotanique.getDegradationPresentation(), valeurEstOntologie, typeEstOntologie, donneeEstOntologie);
847
		String determination = construireTxtListeOntologie(collectionBotanique.getDetermination());
848
		descriptionParams.set("etat_general", etatGeneral);
849
		descriptionParams.set("degradation_specimen", degradationSpecimen);
850
		descriptionParams.set("degradation_presentation", degradationPresentation);
851
		descriptionParams.set("determination", determination);
852
 
630 jp_milcent 853
		afficherOnglet(descriptionTpl, descriptionParams, descriptionOnglet);
854
	}
855
 
961 jpm 856
	private String construireTableauUniteRangement() {
857
		Params contenuParams = new Params();
858
		contenuParams.set("i18n_type", i18nC.collectionUniteType());
859
		contenuParams.set("i18n_nombre", i18nC.collectionUniteNbre());
860
		contenuParams.set("i18n_precision", i18nC.collectionUnitePrecision());
861
		contenuParams.set("i18n_format", i18nC.collectionUniteFormat());
862
 
863
		CollectionBotanique collectionBotanique = collection.getBotanique();
864
		HashMap<String,UniteRangement> unites = CollectionFormDescription.parserValeurUniteRangement(collectionBotanique.getUniteRangement());
865
 
866
		String lignesUnite = "";
867
		Iterator<String> it = unites.keySet().iterator();
868
		while (it.hasNext()) {
869
			String cle = it.next();
870
			UniteRangement unite = unites.get(cle);
871
			if (unite.getNombre() != 0) {
872
				Params ligneParams = new Params();
873
				if (unite.getTypeAutre()) {
874
					ligneParams.set("type", unite.getType());
875
				} else {
876
					ligneParams.set("type", construireTxtListeOntologie(unite.getId()));
877
				}
878
				ligneParams.set("nombre", UtilNombre.formaterEnEntier(unite.getNombre()));
879
				ligneParams.set("precision", unite.getPrecision());
880
				ligneParams.set("format", unite.getFormat());
881
 
882
				lignesUnite += Format.substitute(ligneUniteRangementTpl, ligneParams);
883
			}
884
		}
885
 
886
		String cHtml = i18nC.nonRenseigne();
887
		if (!UtilString.isEmpty(lignesUnite)) {
888
			contenuParams.set("lignes", lignesUnite);
889
			cHtml = Format.substitute(tableauUniteRangementTpl, contenuParams);
890
		}
891
		return cHtml;
892
	}
893
 
894
	private String construireTableauUniteBase() {
895
		Params contenuParams = new Params();
896
		contenuParams.set("i18n_unite_base", i18nC.collectionUniteBase());
897
		contenuParams.set("i18n_part", i18nC.collectionUniteBasePart());
898
		contenuParams.set("i18n_sp", i18nC.collectionUniteBaseSp());
899
 
900
		contenuParams.set("i18n_type", i18nC.collectionUniteType());
901
		contenuParams.set("i18n_nombre", i18nC.collectionUniteNbre());
902
		contenuParams.set("i18n_precision", i18nC.collectionUnitePrecision());
903
		contenuParams.set("i18n_format", i18nC.collectionUniteFormat());
904
 
905
		CollectionBotanique collectionBotanique = collection.getBotanique();
906
		HashMap<String,UniteBase> unites = CollectionFormDescription.parserValeurUniteBase(collectionBotanique.getUniteBase());
907
 
908
		String lignesUnite = "";
909
		Iterator<String> it = unites.keySet().iterator();
910
		while (it.hasNext()) {
911
			String cle = it.next();
912
			UniteBase unite = unites.get(cle);
913
			if (unite.getNombre() != 0 || unite.getNombrePart() != 0 || unite.getNombreSp() != 0) {
914
				Params ligneParams = new Params();
915
				if (unite.getTypeAutre()) {
916
					ligneParams.set("type", unite.getType());
917
				} else {
918
					ligneParams.set("type", construireTxtListeOntologie(unite.getId()));
919
				}
920
				ligneParams.set("nombre", UtilNombre.formaterEnEntier(unite.getNombre()));
921
				ligneParams.set("precision", unite.getPrecision());
922
				ligneParams.set("format", unite.getFormat());
975 jpm 923
				ligneParams.set("part_nombre", UtilNombre.formaterEnEntier(unite.getNombrePart()));
961 jpm 924
				ligneParams.set("part_precision", unite.getPrecisionPart());
975 jpm 925
				ligneParams.set("sp_nombre", UtilNombre.formaterEnEntier(unite.getNombreSp()));
961 jpm 926
				ligneParams.set("sp_precision", unite.getPrecisionSp());
927
 
928
				lignesUnite += Format.substitute(ligneUniteBaseTpl, ligneParams);
929
			}
930
		}
931
 
932
		String cHtml = i18nC.nonRenseigne();
933
		if (!UtilString.isEmpty(lignesUnite)) {
934
			contenuParams.set("lignes", lignesUnite);
935
			cHtml = Format.substitute(tableauUniteBaseTpl, contenuParams);
936
		}
937
		return cHtml;
938
	}
939
 
630 jp_milcent 940
	private void afficherContenu() {
941
		Params contenuParams = new Params();
966 jpm 942
		contenuParams.set("i18n_titre_nature", i18nC.collectionNatureTitre());
943
		contenuParams.set("i18n_nature", i18nC.natureVegetaleContenuDetail());
944
		contenuParams.set("i18n_specialite", i18nC.specialiteCollectionDetail());
630 jp_milcent 945
 
966 jpm 946
		contenuParams.set("i18n_titre_constitution", i18nC.collectionConstitutionTitre());
947
		contenuParams.set("i18n_periode", i18nC.periodeConstitutionDetail());
948
		contenuParams.set("i18n_date_debut", i18nC.dateDebutCollectionDetail());
949
		contenuParams.set("i18n_date_fin", i18nC.dateFinCollectionDetail());
950
 
951
		contenuParams.set("i18n_titre_classement", i18nC.collectionClassementTitre());
952
		contenuParams.set("i18n_classement_etat", i18nC.etatClassementCollectionDetail());
953
		contenuParams.set("i18n_classement", i18nC.annotationClassementCollectionDetail());
954
 
955
		contenuParams.set("i18n_titre_etiquette", i18nC.collectionEtiquetteTitre());
956
		contenuParams.set("i18n_etiquette_renseignement", i18nC.etiquetteRenseignementDetail());
957
		contenuParams.set("i18n_precision_localite", i18nC.precisionLocaliteDetail());
958
		contenuParams.set("i18n_precision_date", i18nC.precisionDateDetail());
959
		contenuParams.set("i18n_etiquette_annotation", i18nC.etiquetteAnnotationDetail());
960
 
961
		contenuParams.set("i18n_titre_integree", i18nC.collectionIntegreeTitre());
962
		contenuParams.set("i18n_collection_integration", i18nC.integreCollectionDetail());
963
		contenuParams.set("i18n_collection_integration_info", i18nC.infoIntegreCollectionDetail());
964
 
965
		CollectionBotanique collectionBotanique = collection.getBotanique();
966
		String nature = construireTxtListeOntologie(collectionBotanique.getNature());
967
		contenuParams.set("nature", nature);
968
		contenuParams.set("specialite", collectionBotanique.getSpecialite());
969
 
970
		String periode = construireTxtListeOntologie(collection.getPeriodeConstitution());
971
		String dateDebut = collectionBotanique.getRecolteDateDebut();
972
		String dateDebutPrecision = construireTxtListeOntologie(collectionBotanique.getRecolteDateDebutType());
973
		String dateDebutRecolte = (UtilString.isEmpty(dateDebut)) ? "" : dateDebut+" ("+dateDebutPrecision+")";
974
		String dateFin = collectionBotanique.getRecolteDateFin();
975
		String dateFinPrecision = construireTxtListeOntologie(collectionBotanique.getRecolteDateFinType());
976
		String dateFinRecolte = (UtilString.isEmpty(dateFin)) ? "" : dateFin+" ("+dateFinPrecision+")";
977
		contenuParams.set("periode", periode);
978
		contenuParams.set("date_debut", dateDebutRecolte);
979
		contenuParams.set("date_fin", dateFinRecolte);
980
 
981
		String classementEtat = construireTxtListeOntologie(collectionBotanique.getClassementEtat());
982
		contenuParams.set("classement_etat", classementEtat);
983
		contenuParams.set("classement", collectionBotanique.getClassementAnnotation());
984
 
985
		String etiquetteRenseignements = "";
986
		HashMap<String,String> infos = CollectionFormContenu.parserEtiquetteRenseignement(collectionBotanique.getEtiquetteRenseignement());
987
		if (infos != null) {
988
			Iterator<String> it = infos.keySet().iterator();
989
			while (it.hasNext()) {
990
				String cle = it.next();
991
				if (cle.equals("AT")) {
992
					etiquetteRenseignements += i18nC.etiquetteAuteurCollection();
993
				} else if (cle.equals("F")) {
994
					etiquetteRenseignements += i18nC.etiquetteFamille();
995
				} else if (cle.equals("G")) {
996
					etiquetteRenseignements += i18nC.etiquetteGenre();
997
				} else if (cle.equals("SP")) {
998
					etiquetteRenseignements += i18nC.etiquetteSp();
999
				} else if (cle.equals("ASP")) {
1000
					etiquetteRenseignements += i18nC.etiquetteAuteurSp();
1001
				} else if (cle.equals("L")) {
1002
					etiquetteRenseignements += i18nC.etiquetteLocalite();
1003
				} else if (cle.equals("D")) {
1004
					etiquetteRenseignements += i18nC.etiquetteDateRecolte();
1005
				} else {
1006
					etiquetteRenseignements += i18nC.inconnue();
1007
				}
1008
				etiquetteRenseignements += ": "+infos.get(cle)+"%,";
1009
			}
1010
		}
1011
		String precisionLocalite = construireTxtListeOntologie(collectionBotanique.getPrecisionLocalite());
1012
		String precisionDate = construireTxtListeOntologie(collectionBotanique.getPrecisionDate());
1013
		contenuParams.set("etiquette_renseignement", etiquetteRenseignements);
1014
		contenuParams.set("precision_localite", precisionLocalite);
1015
		contenuParams.set("precision_date", precisionDate);
1016
		contenuParams.set("etiquette_annotation", collectionBotanique.getAnnotationsDiverses());
1017
 
1018
		String collectionIntegration = construireTxtListeOntologie(collectionBotanique.getCollectionIntegre());
1019
		String collectionIntegrationInfo = construireTxtListeOntologie(collectionBotanique.getCollectionIntegreInfo());
1020
		contenuParams.set("collection_integration", collectionIntegration);
1021
		contenuParams.set("collection_integration_info", collectionIntegrationInfo);
1022
 
630 jp_milcent 1023
		afficherOnglet(contenuTpl, contenuParams, contenuOnglet);
1024
	}
1025
 
1026
	private void afficherInventaire() {
1027
		Params inventaireParams = new Params();
1028
		inventaireParams.set("i18n_titre_inventaire", i18nC.collectionInventaireTitre());
966 jpm 1029
		inventaireParams.set("i18n_existence", i18nC.existenceInventaireCollectionDetail());
1030
		inventaireParams.set("i18n_participation_auteur", i18nC.auteurInventaireCollectionDetail());
1031
		inventaireParams.set("i18n_forme", i18nC.formeInventaireCollectionDetail());
1032
		inventaireParams.set("i18n_info", i18nC.infoInventaireCollectionDetail());
1033
		inventaireParams.set("i18n_digital", i18nC.digitalInventaireCollectionDetail());
1034
		inventaireParams.set("i18n_digital_pourcent", i18nC.pourcentDigitalInventaireCollectionDetail());
1035
		inventaireParams.set("i18n_etat", i18nC.etatInventaireCollectionDetail());
1036
		inventaireParams.set("i18n_type_donnee", i18nC.typeDonneeInventaireCollectionDetail());
630 jp_milcent 1037
 
966 jpm 1038
		CollectionBotanique collectionBotanique = collection.getBotanique();
1039
		String existence = construireTxtListeOntologie(collectionBotanique.getInventaire());
1040
		String participationAuteur = construireTxtListeOntologie(collectionBotanique.getInventaireAuteur());
1041
		String forme = construireTxtListeOntologie(collectionBotanique.getInventaireForme());
1042
		String digital = construireTxtListeOntologie(collectionBotanique.getInventaireDigital());
1043
		String digitalPourcent = collectionBotanique.getInventaireDigitalPourcent()+"%";
1044
		String etat = construireTxtListeOntologie(collectionBotanique.getInventaireEtat());
1045
		inventaireParams.set("existence", existence);
1046
		inventaireParams.set("participation_auteur", participationAuteur);
1047
		inventaireParams.set("forme", forme);
1048
		inventaireParams.set("info", collectionBotanique.getInventaireInfo());
1049
		inventaireParams.set("digital", digital);
1050
		inventaireParams.set("digital_pourcent", digitalPourcent);
1051
		inventaireParams.set("etat", etat);
1052
		inventaireParams.set("type_donnee", collectionBotanique.getInventaireDonneesTypes());
1053
 
630 jp_milcent 1054
		afficherOnglet(inventaireTpl, inventaireParams, inventaireOnglet);
1055
	}
1056
 
997 jpm 1057
	private void afficherCommentaire() {
1058
		String tableauCommentaireHtml = "";
1059
		if (collection.getCommentairesLiees() != null && collection.getCommentairesLiees().size() > 0) {
1060
			tableauCommentaireHtml = construireTableauCommentairesLiees();
1061
		}
1062
 
1063
		Params personneParams = new Params();
1064
		personneParams.set("i18n_titre_commentaire", i18nC.collectionCommentaireTitre());
1065
		personneParams.set("tableau_commentaires_liees", tableauCommentaireHtml);
1066
 
1067
		afficherOnglet(commentaireTpl, personneParams, commentaireOnglet);
1068
	}
1069
 
1070
	private String construireTableauCommentairesLiees() {
1071
		Params contenuParams = new Params();
1072
		contenuParams.set("i18n_type", i18nC.commentaireType());
1073
		contenuParams.set("i18n_titre", i18nC.commentaireTitre());
1074
		contenuParams.set("i18n_texte", i18nC.commentaireTexte());
1075
		contenuParams.set("i18n_ponderation", i18nC.commentairePonderation());
1076
		contenuParams.set("i18n_public", i18nC.commentairePublic());
1077
 
1078
		String lignesCommentaire = "";
1079
		if (collection.getCommentairesLiees() != null) {
1080
			Iterator<String> it = collection.getCommentairesLiees().keySet().iterator();
1081
			while (it.hasNext()) {
1082
				CollectionACommentaire relationCollectionACommentaire = collection.getCommentairesLiees().get(it.next());
1083
				Commentaire commentaire = relationCollectionACommentaire.getCommentaire();
1084
 
1085
				String type = construireTxtListeOntologie(relationCollectionACommentaire.getType());
1086
				String acces = (commentaire.etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
1087
 
1088
				Params ligneParams = new Params();
1089
				ligneParams.set("type", type);
1090
				ligneParams.set("titre", commentaire.getTitre());
1091
				ligneParams.set("texte", commentaire.getTexte());
1092
				ligneParams.set("ponderation", commentaire.getPonderation()+"/100");
1093
				ligneParams.set("public", acces);
1094
 
1095
				lignesCommentaire += Format.substitute(ligneCommentaireLieeTpl, ligneParams);
1096
			}
1097
		}
1098
 
1099
		String cHtml = i18nC.nonRenseigne();
1100
		if (!UtilString.isEmpty(lignesCommentaire)) {
1101
			contenuParams.set("lignes", lignesCommentaire);
1102
			cHtml = Format.substitute(tableauCommentairesLieesTpl, contenuParams);
1103
		}
1104
		return cHtml;
1105
	}
1106
 
468 jp_milcent 1107
	protected String getNomStructure() {
1108
		String nomStructure = "";
1109
		if (structure != null) {
1110
			nomStructure = structure.getNom();
1111
		} else {
1112
			nomStructure = collection.getIdStructure();
453 jp_milcent 1113
		}
468 jp_milcent 1114
		return nomStructure;
453 jp_milcent 1115
	}
1116
}