Subversion Repositories eFlore/Applications.coel

Rev

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