Subversion Repositories eFlore/Applications.coel

Rev

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