Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
69 jpm 1
package org.tela_botanica.client.vues;
2
 
91 jpm 3
import java.util.ArrayList;
4
import java.util.Iterator;
69 jpm 5
import java.util.List;
6
 
172 jp_milcent 7
import org.tela_botanica.client.ComposantId;
119 jpm 8
import org.tela_botanica.client.Mediateur;
91 jpm 9
import org.tela_botanica.client.Modele;
10
import org.tela_botanica.client.RegistreId;
115 jpm 11
import org.tela_botanica.client.i18n.Constantes;
69 jpm 12
import org.tela_botanica.client.interfaces.Rafraichissable;
91 jpm 13
import org.tela_botanica.client.modeles.Configuration;
153 jpm 14
import org.tela_botanica.client.modeles.Information;
100 jpm 15
import org.tela_botanica.client.modeles.InterneValeur;
16
import org.tela_botanica.client.modeles.InterneValeurListe;
102 jpm 17
import org.tela_botanica.client.modeles.Personne;
119 jpm 18
import org.tela_botanica.client.modeles.Structure;
211 jp_milcent 19
import org.tela_botanica.client.modeles.StructureAPersonne;
20
import org.tela_botanica.client.modeles.StructureAPersonneListe;
188 jp_milcent 21
import org.tela_botanica.client.modeles.StructureConservation;
211 jp_milcent 22
import org.tela_botanica.client.modeles.StructureListe;
192 jp_milcent 23
import org.tela_botanica.client.modeles.StructureValorisation;
91 jpm 24
import org.tela_botanica.client.modeles.Valeur;
25
import org.tela_botanica.client.modeles.ValeurListe;
69 jpm 26
 
111 jpm 27
import com.extjs.gxt.ui.client.Events;
91 jpm 28
import com.extjs.gxt.ui.client.Registry;
69 jpm 29
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
110 jpm 30
import com.extjs.gxt.ui.client.Style.Scroll;
211 jp_milcent 31
import com.extjs.gxt.ui.client.event.BaseEvent;
111 jpm 32
import com.extjs.gxt.ui.client.event.ComponentEvent;
33
import com.extjs.gxt.ui.client.event.Listener;
100 jpm 34
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
35
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
103 jpm 36
import com.extjs.gxt.ui.client.event.SelectionListener;
37
import com.extjs.gxt.ui.client.event.ToolBarEvent;
69 jpm 38
import com.extjs.gxt.ui.client.store.ListStore;
172 jp_milcent 39
import com.extjs.gxt.ui.client.store.Store;
111 jpm 40
import com.extjs.gxt.ui.client.widget.Component;
102 jpm 41
import com.extjs.gxt.ui.client.widget.ContentPanel;
153 jpm 42
import com.extjs.gxt.ui.client.widget.Info;
69 jpm 43
import com.extjs.gxt.ui.client.widget.LayoutContainer;
100 jpm 44
import com.extjs.gxt.ui.client.widget.TabItem;
45
import com.extjs.gxt.ui.client.widget.TabPanel;
188 jp_milcent 46
import com.extjs.gxt.ui.client.widget.WidgetComponent;
69 jpm 47
import com.extjs.gxt.ui.client.widget.button.Button;
108 jpm 48
import com.extjs.gxt.ui.client.widget.form.CheckBox;
49
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
69 jpm 50
import com.extjs.gxt.ui.client.widget.form.ComboBox;
100 jpm 51
import com.extjs.gxt.ui.client.widget.form.DateField;
119 jpm 52
import com.extjs.gxt.ui.client.widget.form.Field;
100 jpm 53
import com.extjs.gxt.ui.client.widget.form.FieldSet;
69 jpm 54
import com.extjs.gxt.ui.client.widget.form.FormPanel;
172 jp_milcent 55
import com.extjs.gxt.ui.client.widget.form.HiddenField;
103 jpm 56
import com.extjs.gxt.ui.client.widget.form.LabelField;
102 jpm 57
import com.extjs.gxt.ui.client.widget.form.NumberField;
109 jpm 58
import com.extjs.gxt.ui.client.widget.form.Radio;
59
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
164 jp_milcent 60
import com.extjs.gxt.ui.client.widget.form.TextArea;
69 jpm 61
import com.extjs.gxt.ui.client.widget.form.TextField;
62
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
63
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
102 jpm 64
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
65
import com.extjs.gxt.ui.client.widget.grid.CheckBoxSelectionModel;
66
import com.extjs.gxt.ui.client.widget.grid.CheckColumnConfig;
67
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
68
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
69
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
69 jpm 70
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
71
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
72
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
73
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
100 jpm 74
import com.extjs.gxt.ui.client.widget.layout.FormData;
69 jpm 75
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
110 jpm 76
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
102 jpm 77
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
78
import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem;
79
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
91 jpm 80
import com.google.gwt.core.client.GWT;
100 jpm 81
import com.google.gwt.i18n.client.DateTimeFormat;
102 jpm 82
import com.google.gwt.i18n.client.NumberFormat;
192 jp_milcent 83
import com.google.gwt.user.client.Event;
133 jpm 84
import com.google.gwt.user.client.Window;
188 jp_milcent 85
import com.google.gwt.user.client.ui.HTML;
86
import com.google.gwt.user.client.ui.Widget;
69 jpm 87
 
88
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
115 jpm 89
 
90
	private Constantes i18nC = null;
119 jpm 91
	private Mediateur mediateur = null;
92
	private Modele modele = null ;
93
 
156 jp_milcent 94
	private String mode = "AJOUT";
206 jp_milcent 95
	private FormPanel structureFormPanneau = null;
133 jpm 96
	private int tabIndex = 100;
206 jp_milcent 97
	private TabPanel onglets = null;
192 jp_milcent 98
 
206 jp_milcent 99
	private TabItem identificationOnglet = null;
192 jp_milcent 100
	private TabItem personnelOnglet = null;
101
	private TabItem conservationOnglet = null;
102
	private TabItem valorisationOnglet = null;
206 jp_milcent 103
 
104
	private HiddenField<String> idStructureChp = null;
115 jpm 105
 
206 jp_milcent 106
	// Onglet IDENTIFICATION
211 jp_milcent 107
	private Structure identification;
91 jpm 108
	private ListStore<Valeur> magazinLstpr = null;
109
	private ComboBox<Valeur> comboLstpr = null;
110
	private ListStore<Valeur> magazinLstpu = null;
111
	private ComboBox<Valeur> comboLstpu = null;
103 jpm 112
	private ListStore<Valeur> magazinLiStatut = null;
113
	private ComboBox<Valeur> comboLiStatut = null;
114
	private ListStore<Valeur> magazinLiFonction = null;
115
	private ComboBox<Valeur> comboLiFonction = null;
100 jpm 116
	private ComboBox<InterneValeur> comboAcronyme = null;
117
	private TextField<String> ihChp = null;
118
	private TextField<String> mnhnChp = null;
119
	private ComboBox<InterneValeur> comboTypeStructure = null;
206 jp_milcent 120
	private TextField<String> nomStructureChp;
121
	private DateField dateFondationChp;
122
	private TextArea adrChp;
123
	private TextField<String> cpChp;
124
	private TextField<String> villeChp;
125
	private TextField<String> regionChp;
126
	private TextField<String> telChp;
127
	private TextField<String> faxChp;
128
	private TextField<String> emailChp;
129
	private TextField<String> urlChp;
130
	private ListStore<Valeur> magazinPays;
131
	private ComboBox<Valeur> comboPays;
192 jp_milcent 132
 
206 jp_milcent 133
	// Onglet PERSONNEL
211 jp_milcent 134
	private ArrayList<StructureAPersonne> personnel;
135
	private NumberField nbreTotalPersonneStructureChp = null;
136
	private EditorGrid<StructureAPersonne> grillePersonnel = null;
137
	private ListStore<StructureAPersonne> personnelGrilleMagazin = null;
103 jpm 138
	private LabelField nbreTotalPersonnelChp = null;
211 jp_milcent 139
 
206 jp_milcent 140
	// Onglet CONSERVATION
211 jp_milcent 141
	private StructureConservation conservation = null;
206 jp_milcent 142
	private RadioGroup formationMarkRGrpChp;
143
	private RadioGroup interetFormationMarkRGrpChp;
144
	private RadioGroup collectionCommuneMarkRGrpChp;
145
	private RadioGroup accesControleMarkRGrpChp;
146
	private RadioGroup restaurationMarkRGrpChp;
147
	private RadioGroup traitementMarkRGrpChp;
148
	private RadioGroup collectionAcquisitionMarkRGrpChp;
149
	private RadioGroup echantillonAcquisitionMarkRGrpChp;
150
	private TextField<String> localStockageAutreChp;
151
	private TextField<String> meubleStockageAutreChp;
152
	private TextField<String> parametreStockageAutreChp;
153
	private TextField<String> collectionAutreAutreChp;
154
	private TextField<String> autreCollectionAutreChp;
155
	private TextField<String> opRestauAutreChp;
156
	private TextField<String> autreMaterielAutreChp;
157
	private TextField<String> poisonTraitementAutreChp;
158
	private TextField<String> traitementAutreChp;
159
	private TextField<String> insecteTraitementAutreChp;
160
	private TextField<String> actionAutreChp;
161
	private TextField<String> provenanceRechercheAutreChp;
162
	private TextField<String> typeRechercheAutreChp;
115 jpm 163
	private CheckBoxGroup localStockageTrukCacGrpChp = null;
164
	private ContentPanel localStockageTrukCp = null;
165
	private CheckBoxGroup meubleStockageTrukCacGrpChp = null;
166
	private ContentPanel meubleStockageTrukCp = null;
167
	private CheckBoxGroup parametreStockageTrukCacGrpChp = null;
168
	private ContentPanel parametreStockageTrukCp = null;
111 jpm 169
	private ContentPanel collectionAutreTrukCp = null;
170
	private CheckBoxGroup collectionAutreTrukCacGrpChp = null;
115 jpm 171
	private CheckBoxGroup opRestauTrukCacGrpChp = null;
111 jpm 172
	private ContentPanel opRestauTrukCp = null;
115 jpm 173
	private CheckBoxGroup autreMaterielTrukCacGrpChp = null;
174
	private ContentPanel autreMaterielTrukCp = null;
111 jpm 175
	private ContentPanel traitementTrukCp = null;
176
	private CheckBoxGroup traitementTrukCacGrpChp = null;
115 jpm 177
	private ContentPanel poisonTraitementTrukCp = null;
111 jpm 178
	private ContentPanel insecteTraitementTrukCp = null;
179
	private CheckBoxGroup insecteTraitementTrukCacGrpChp = null;
115 jpm 180
	private CheckBoxGroup poisonTraitementTrukCacGrpChp = null;
181
	private ContentPanel autreCollectionTrukCp = null;
119 jpm 182
	private CheckBoxGroup autreCollectionTrukCacGrpChp = null;
115 jpm 183
	private ContentPanel provenanceRechercheTrukCp = null;
184
	private CheckBoxGroup provenanceRechercheTrukCacGrpChp = null;
185
	private CheckBoxGroup typeRechercheTrukCacGrpChp = null;
119 jpm 186
	private ContentPanel typeRechercheTrukCp = null;
115 jpm 187
	private TextField<String> futureActionChp = null;
188
	private TextField<String> sansMotifAccesChp = null;
189
	private TextField<String> avecMotifAccesChp = null;
190
	private TextField<String> formationChp = null;
191
	private RadioGroup traitementAcquisitionMarkRGrpChp = null;
192
	private LabelField traitementAcquisitionMarkLabel = null;
193
	private RadioGroup materielConservationCeRGrpChp = null;
119 jpm 194
 
206 jp_milcent 195
	// Onglet VALORISATION
211 jp_milcent 196
	private StructureValorisation valorisation = null;
206 jp_milcent 197
	private RadioGroup actionMarkRGrpChp = null;
198
	private ContentPanel actionTrukCp = null;
199
	private CheckBoxGroup actionTrukCacGrpChp = null;
188 jp_milcent 200
	private RadioGroup futureActionMarkRGrpChp;
201
	private RadioGroup rechercheMarkRGrpChp;
202
	private RadioGroup sansMotifAccesMarkRGrpChp;
203
	private RadioGroup avecMotifAccesMarkRGrpChp;
204
	private TextField<String> publicationChp;
205
	private ContentPanel materielConservationCp;
192 jp_milcent 206
 
211 jp_milcent 207
 
208
 
69 jpm 209
	public FormStructureVue() {
100 jpm 210
		//+-----------------------------------------------------------------------------------------------------------+
211
		// Initialisation de variables
115 jpm 212
		i18nC = GWT.create(Constantes.class);
69 jpm 213
		setLayout(new FitLayout());
119 jpm 214
		modele = Registry.get(RegistreId.MODELE);
215
		mediateur = Registry.get(RegistreId.MEDIATEUR);
216
 
100 jpm 217
		//+-----------------------------------------------------------------------------------------------------------+
110 jpm 218
		// Création du panneau du FORMULAIRE GÉNÉRAL
119 jpm 219
		structureFormPanneau = new FormPanel();
220
		structureFormPanneau.setFrame(true);
221
		structureFormPanneau.setIconStyle("icone-form-ajouter");
222
		structureFormPanneau.setCollapsible(false);
156 jp_milcent 223
		structureFormPanneau.setHeading(i18nC.titreAjoutFormStructurePanneau());
119 jpm 224
		structureFormPanneau.setButtonAlign(HorizontalAlignment.CENTER);
225
		structureFormPanneau.setLayout(new FlowLayout());
100 jpm 226
 
110 jpm 227
		//+-----------------------------------------------------------------------------------------------------------+
100 jpm 228
		// Création des onglets
192 jp_milcent 229
		onglets = new TabPanel();
110 jpm 230
		// NOTE : pour faire apparaître les scrollBar il faut définir la hauteur du panneau d'onglets à 100% (autoHeight ne semble pas fonctionner)
231
		onglets.setHeight("100%");
69 jpm 232
 
100 jpm 233
		//+-----------------------------------------------------------------------------------------------------------+
234
		// Onlget formulaire IDENTIFICATION
110 jpm 235
		onglets.add(creerOngletIdentification());
206 jp_milcent 236
 
100 jpm 237
		//+-----------------------------------------------------------------------------------------------------------+
238
		// Onlget formulaire PERSONNEL
103 jpm 239
		onglets.add(creerOngletPersonnel());
91 jpm 240
 
100 jpm 241
		//+-----------------------------------------------------------------------------------------------------------+
242
		// Onlget formulaire CONSERVATION
108 jpm 243
		onglets.add(creerOngletConservation());
100 jpm 244
 
245
		//+-----------------------------------------------------------------------------------------------------------+
246
		// Onlget formulaire VALORISATION
111 jpm 247
		onglets.add(creerOngletValorisation());
100 jpm 248
 
249
		//+-----------------------------------------------------------------------------------------------------------+
250
		// Gestion du FORMULAIRE GÉNÉRAL
251
 
119 jpm 252
		// Sélection de l'onglet par défaut
211 jp_milcent 253
		onglets.setSelection(personnelOnglet);
192 jp_milcent 254
 
119 jpm 255
		// Ajout des onglets au formulaire général
256
		structureFormPanneau.add(onglets);
69 jpm 257
 
258
		// Ajout des boutons au panneau formulaire
259
		Button annulerBtn = new Button("Annuler");
172 jp_milcent 260
		annulerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
261
 
262
			@Override
263
			public void componentSelected(ComponentEvent ce) {
264
				mediateur.clicMenu("Institutions");
265
			}
266
 
267
		});
119 jpm 268
		structureFormPanneau.addButton(annulerBtn);
69 jpm 269
		Button validerBtn = new Button("Valider");
119 jpm 270
		validerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
271
 
272
			@Override
273
			public void componentSelected(ComponentEvent ce) {
274
				soumettreFormulaire();
275
			}
276
 
277
		});
278
		structureFormPanneau.addButton(validerBtn);
69 jpm 279
 
280
		// Ajout du panneau Formulaire à la disposition générale
119 jpm 281
		add(structureFormPanneau);
69 jpm 282
	}
108 jpm 283
 
119 jpm 284
	private void soumettreFormulaire() {
285
		GWT.log("Soumission du formulaire", null);
192 jp_milcent 286
		Structure structure = collecterStructureIdentification();
287
		StructureConservation conservation = collecterStructureConservation();
288
		StructureValorisation valorisation = collecterStructureValorisation();
156 jp_milcent 289
		if (mode == "AJOUT") {
164 jp_milcent 290
			//mediateur.ajouterStructure(this, structure);
156 jp_milcent 291
		} else if (mode == "MODIF") {
192 jp_milcent 292
			mediateur.modifierStructure(this, structure, conservation, valorisation);
156 jp_milcent 293
		}
211 jp_milcent 294
		GWT.log("Info Structure envoyées :\n"+conservation.toString(), null);
119 jpm 295
	}
296
 
192 jp_milcent 297
	private StructureValorisation collecterStructureValorisation() {
206 jp_milcent 298
		if (valorisationOnglet.getData("acces").equals(false)) {
299
			return valorisation;
300
		} else {
301
			// Création de l'objet
302
			StructureValorisation valorisationModifie = new StructureValorisation();
303
 
304
			// ACTION
305
			if (actionMarkRGrpChp.getValue() != null) {
306
				valorisationModifie.setAction(actionMarkRGrpChp.getValue().getValueAttribute());
307
			}
308
 
309
			// ACTION INFO
310
			valorisationModifie.setActionInfo(creerChaineDenormalisee(actionTrukCacGrpChp.getValues()));
311
			valorisationModifie.setActionInfo("AUTRE", actionAutreChp.getValue());
312
 
313
			// PUBLICATION
314
			valorisationModifie.setPublication(publicationChp.getValue());
315
 
316
			// COLLECTION AUTRE
317
			valorisationModifie.setCollectionAutre(creerChaineDenormalisee(autreCollectionTrukCacGrpChp.getValues()));
318
			valorisationModifie.setCollectionAutre("AUTRE", autreCollectionAutreChp.getValue());
319
 
320
			// ACTION FUTURE
321
			if (futureActionMarkRGrpChp.getValue() != null) {
322
				valorisationModifie.setActionFuture(futureActionMarkRGrpChp.getValue().getValueAttribute());
323
			}
324
			// ACTION FUTURE INFO
325
			valorisationModifie.setActionFutureInfo(futureActionChp.getValue());
326
 
327
			// RECHERCHE
328
			if (rechercheMarkRGrpChp.getValue() != null) {
329
				valorisationModifie.setRecherche(rechercheMarkRGrpChp.getValue().getValueAttribute());
330
			}
331
 
332
			// RECHERCHE PROVENANCE
333
			valorisationModifie.setRechercheProvenance(creerChaineDenormalisee(provenanceRechercheTrukCacGrpChp.getValues()));
334
			valorisationModifie.setRechercheProvenance("AUTRE", provenanceRechercheAutreChp.getValue());
335
 
336
			// RECHERCHE TYPE
337
			valorisationModifie.setRechercheType(creerChaineDenormalisee(typeRechercheTrukCacGrpChp.getValues()));
338
			valorisationModifie.setRechercheType("AUTRE", typeRechercheAutreChp.getValue());
339
 
340
			// ACCÈS SANS MOTIF
341
			if (sansMotifAccesMarkRGrpChp.getValue() != null) {
342
				valorisationModifie.setAccesSansMotif(sansMotifAccesMarkRGrpChp.getValue().getValueAttribute());
343
			}
344
			// ACCÈS SANS MOTIF INFO
345
			valorisationModifie.setAccesSansMotifInfo(sansMotifAccesChp.getValue());
346
 
347
			// VISITE AVEC MOTIF
348
			if (avecMotifAccesMarkRGrpChp.getValue() != null) {
349
				valorisationModifie.setVisiteAvecMotif(avecMotifAccesMarkRGrpChp.getValue().getValueAttribute());
350
			}
351
			// VISITE AVEC MOTIF INFO
352
			valorisationModifie.setVisiteAvecMotifInfo(avecMotifAccesChp.getValue());
353
 
354
			return valorisationModifie;
192 jp_milcent 355
		}
356
	}
357
 
358
	private void peuplerStructureValorisation() {
206 jp_milcent 359
		if (valorisation != null) {
360
			// ACTION
211 jp_milcent 361
			actionMarkRGrpChp.get((valorisation.getAction().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 362
 
363
			// ACTION INFO
364
			peuplerCasesACocher(valorisation.getActionInfo(), actionTrukCacGrpChp, actionAutreChp);
365
 
366
			// PUBLICATION
367
			publicationChp.setValue(valorisation.getPublication());
368
 
369
			// COLLECTION AUTRE
370
			peuplerCasesACocher(valorisation.getCollectionAutre(), autreCollectionTrukCacGrpChp, autreCollectionAutreChp);
371
 
372
			// ACTION FUTURE
211 jp_milcent 373
			futureActionMarkRGrpChp.get((valorisation.getActionFuture().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 374
 
375
			// ACTION FUTURE INFO
376
			futureActionChp.setValue(valorisation.getActionFutureInfo());
377
 
378
			// RECHERCHE
211 jp_milcent 379
			rechercheMarkRGrpChp.get((valorisation.getRecherche().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 380
			// RECHERCHE PROVENANCE
381
			peuplerCasesACocher(valorisation.getRechercheProvenance(), provenanceRechercheTrukCacGrpChp, provenanceRechercheAutreChp);
382
			// RECHERCHE TYPE
383
			peuplerCasesACocher(valorisation.getRechercheType(), typeRechercheTrukCacGrpChp, typeRechercheAutreChp);
384
 
385
			// ACCÈS SANS MOTIF
211 jp_milcent 386
			sansMotifAccesMarkRGrpChp.get((valorisation.getAccesSansMotif().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 387
			// ACCÈS SANS MOTIF INFO
388
			sansMotifAccesChp.setValue(valorisation.getAccesSansMotifInfo());
389
 
390
			// VISITE AVEC MOTIF
211 jp_milcent 391
			avecMotifAccesMarkRGrpChp.get((valorisation.getVisiteAvecMotif().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 392
			// VISITE AVEC MOTIF INFO
393
			avecMotifAccesChp.setValue(valorisation.getVisiteAvecMotifInfo());
211 jp_milcent 394
 
395
			valorisationOnglet.layout();
206 jp_milcent 396
		}
192 jp_milcent 397
	}
398
 
399
	private StructureConservation collecterStructureConservation() {
206 jp_milcent 400
		if (conservationOnglet.getData("acces").equals(false)) {
401
			return conservation;
402
		} else {
403
			// Création de l'objet
404
			StructureConservation conservationModifie = new StructureConservation();
192 jp_milcent 405
 
206 jp_milcent 406
			// FORMATION
407
			if (formationMarkRGrpChp.getValue() != null) {
408
				conservationModifie.setFormation(formationMarkRGrpChp.getValue().getValueAttribute());
409
			}
410
			// FORMATION INFO
411
			conservationModifie.setFormationInfo(formationChp.getValue());
412
			// FORMATION INTERET
413
			if (interetFormationMarkRGrpChp.getValue() != null) {
414
				conservationModifie.setFormationInteret(interetFormationMarkRGrpChp.getValue().getValueAttribute());
415
			}
416
 
417
			// STOCKAGE LOCAL
418
			conservationModifie.setStockageLocal(creerChaineDenormalisee(localStockageTrukCacGrpChp.getValues()));
419
			conservationModifie.setStockageLocal("AUTRE", localStockageAutreChp.getValue());
420
 
421
			// STOCKAGE MEUBLE
422
			conservationModifie.setStockageMeuble(creerChaineDenormalisee(meubleStockageTrukCacGrpChp.getValues()));
423
			conservationModifie.setStockageMeuble("AUTRE", meubleStockageAutreChp.getValue());
424
 
425
			// STOCKAGE PAREMETRE
426
			conservationModifie.setStockageParametre(creerChaineDenormalisee(parametreStockageTrukCacGrpChp.getValues()));
427
			conservationModifie.setStockageParametre("AUTRE", parametreStockageAutreChp.getValue());
428
 
429
			// COLLECTION COMMUNE
430
			if (collectionCommuneMarkRGrpChp.getValue() != null) {
431
				conservationModifie.setCollectionCommune(collectionCommuneMarkRGrpChp.getValue().getValueAttribute());
432
			}
433
			// COLLECTION AUTRE
434
			conservationModifie.setCollectionAutre(creerChaineDenormalisee(collectionAutreTrukCacGrpChp.getValues()));
435
			conservationModifie.setCollectionAutre("AUTRE", collectionAutreAutreChp.getValue());
436
 
437
			// ACCÈS CONTROLÉ
438
			if (accesControleMarkRGrpChp.getValue() != null) {
439
				conservationModifie.setAccesControle(accesControleMarkRGrpChp.getValue().getValueAttribute());
440
			}
441
 
442
			// RESTAURATION
443
			if (restaurationMarkRGrpChp.getValue() != null) {
444
				conservationModifie.setRestauration(restaurationMarkRGrpChp.getValue().getValueAttribute());
445
			}
446
			// RESTAURATION OPÉRATION
447
			conservationModifie.setRestaurationOperation(creerChaineDenormalisee(opRestauTrukCacGrpChp.getValues()));
448
			conservationModifie.setRestaurationOperation("AUTRE", opRestauAutreChp.getValue());
449
 
450
			// MATERIEL CONSERVATION
451
			if (materielConservationCeRGrpChp.getValue() != null) {
452
				conservationModifie.setMaterielConservation(materielConservationCeRGrpChp.getValue().getValueAttribute());
453
			}
454
 
455
			// MATERIEL AUTRE
456
			conservationModifie.setMaterielAutre(creerChaineDenormalisee(autreMaterielTrukCacGrpChp.getValues()));
457
			conservationModifie.setMaterielAutre("AUTRE", autreMaterielAutreChp.getValue());
458
 
459
			// TRAITEMENT
460
			if (traitementMarkRGrpChp.getValue() != null) {
461
				conservationModifie.setTraitement(traitementMarkRGrpChp.getValue().getValueAttribute());
462
			}
463
			// TRAIEMENTS
464
			conservationModifie.setTraitements(creerChaineDenormalisee(traitementTrukCacGrpChp.getValues()));
465
			conservationModifie.setTraitements("AUTRE", traitementAutreChp.getValue());
466
 
467
 
468
			// ACQUISITION COLLECTION
469
			if (collectionAcquisitionMarkRGrpChp.getValue() != null) {
470
				conservationModifie.setAcquisitionCollection(collectionAcquisitionMarkRGrpChp.getValue().getValueAttribute());
471
			}
472
 
473
			// ACQUISITION ECHANTILLON
474
			if (echantillonAcquisitionMarkRGrpChp.getValue() != null) {
475
				conservationModifie.setAcquisitionEchantillon(echantillonAcquisitionMarkRGrpChp.getValue().getValueAttribute());
476
			}
477
			// ACQUISITION TRAITEMENT
478
			if (traitementAcquisitionMarkRGrpChp.getValue() != null) {
479
				conservationModifie.setAcquisitionTraitement(traitementAcquisitionMarkRGrpChp.getValue().getValueAttribute());
480
			}
481
			// ACQUISITION TRAITEMENT POISON
482
			conservationModifie.setAcquisitionTraitementPoison(creerChaineDenormalisee(poisonTraitementTrukCacGrpChp.getValues()));
483
			conservationModifie.setAcquisitionTraitementPoison("AUTRE", poisonTraitementAutreChp.getValue());
484
			// ACQUISITION TRAITEMENT INSECTE
485
			conservationModifie.setAcquisitionTraitementInsecte(creerChaineDenormalisee(insecteTraitementTrukCacGrpChp.getValues()));
486
			conservationModifie.setAcquisitionTraitementInsecte("AUTRE", insecteTraitementAutreChp.getValue());
487
 
488
			// Retour de l'objet
489
			//GWT.log(conservationLocal.toString(), null);
490
			return conservationModifie;
192 jp_milcent 491
		}
188 jp_milcent 492
	}
493
 
192 jp_milcent 494
	private void peuplerStructureConservation() {
206 jp_milcent 495
		if (conservation != null) {
496
			// FORMATION
497
			// Bouton oui, à toujours l'index 0 donc on teste en fonction...
211 jp_milcent 498
			formationMarkRGrpChp.get((conservation.getFormation().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 499
			// FORMATION INFO
500
			formationChp.setValue(conservation.getFormationInfo());
501
			// FORMATION INTERET
211 jp_milcent 502
			interetFormationMarkRGrpChp.get((conservation.getFormationInteret().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 503
 
504
			// STOCKAGE LOCAL
505
			peuplerCasesACocher(conservation.getStockageLocal(), localStockageTrukCacGrpChp,localStockageAutreChp);
506
 
507
			// STOCKAGE MEUBLE
508
			peuplerCasesACocher(conservation.getStockageMeuble(), meubleStockageTrukCacGrpChp, meubleStockageAutreChp);
509
 
510
			// STOCKAGE PAREMETRE
511
			peuplerCasesACocher(conservation.getStockageParametre(), parametreStockageTrukCacGrpChp, parametreStockageAutreChp);
512
 
513
			// COLLECTION COMMUNE
211 jp_milcent 514
			collectionCommuneMarkRGrpChp.get((conservation.getCollectionCommune().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 515
			// COLLECTION AUTRE
516
			peuplerCasesACocher(conservation.getCollectionAutre(), collectionAutreTrukCacGrpChp, collectionAutreAutreChp);
517
 
518
			// ACCÈS CONTROLÉ
211 jp_milcent 519
			accesControleMarkRGrpChp.get((conservation.getAccesControle().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 520
 
521
			// RESTAURATION
211 jp_milcent 522
			restaurationMarkRGrpChp.get((conservation.getRestauration().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 523
			// RESTAURATION OPÉRATION
524
			peuplerCasesACocher(conservation.getRestaurationOperation(), opRestauTrukCacGrpChp, opRestauAutreChp);
525
 
526
			// MATERIEL CONSERVATION
527
			peuplerBoutonsRadio(conservation.getMaterielConservation(), materielConservationCeRGrpChp);
528
 
529
			// MATERIEL AUTRE
530
			peuplerCasesACocher(conservation.getMaterielAutre(), autreMaterielTrukCacGrpChp, autreMaterielAutreChp);
531
 
532
			// TRAITEMENT
211 jp_milcent 533
			traitementMarkRGrpChp.get((conservation.getTraitement().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 534
			// TRAITEMENTS
535
			peuplerCasesACocher(conservation.getTraitements(), traitementTrukCacGrpChp, traitementAutreChp);
536
 
537
			// ACQUISITION COLLECTION
211 jp_milcent 538
			collectionAcquisitionMarkRGrpChp.get((conservation.getAcquisitionCollection().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 539
 
540
			// ACQUISITION ECHANTILLON
211 jp_milcent 541
			echantillonAcquisitionMarkRGrpChp.get((conservation.getAcquisitionEchantillon().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 542
 
543
			// ACQUISITION TRAITEMENT
211 jp_milcent 544
			traitementAcquisitionMarkRGrpChp.get((conservation.getAcquisitionTraitement().equals("1") ? 0 : 1)).setValue(true);
206 jp_milcent 545
 
546
			// ACQUISITION TRAITEMENT POISON
547
			peuplerCasesACocher(conservation.getAcquisitionTraitementPoison(), poisonTraitementTrukCacGrpChp, poisonTraitementAutreChp);
548
			// ACQUISITION TRAITEMENT INSECTE
549
			peuplerCasesACocher(conservation.getAcquisitionTraitementInsecte(), insecteTraitementTrukCacGrpChp, insecteTraitementAutreChp);
211 jp_milcent 550
 
551
			conservationOnglet.layout();
206 jp_milcent 552
		}
188 jp_milcent 553
	}
554
 
192 jp_milcent 555
	private Structure collecterStructureIdentification() {
211 jp_milcent 556
		if (identificationOnglet.getData("acces").equals(false)) {
557
			return identification;
558
		} else {
559
			Structure structure = new Structure();
560
			structure.setId(idStructureChp.getValue());
561
			structure.setNom(nomStructureChp.getValue());
562
			// Récupération de l'acronyme (= identifiant alternatif)
563
			structure.setIdAlternatif(null);
564
			if (comboAcronyme.getValue() != null) {
565
				String typeAcronyme = comboAcronyme.getValue().getAbr();
566
				if (typeAcronyme == "IH") {
567
					structure.setIdAlternatif(typeAcronyme+"##"+ihChp.getValue());
568
				} else if (typeAcronyme == "MNHN") {
569
					structure.setIdAlternatif(typeAcronyme+"##"+mnhnChp.getValue());
570
				}
164 jp_milcent 571
			}
211 jp_milcent 572
			// Récupération statut de la structure
573
			structure.setTypePublic(null);
574
			structure.setTypePrive(null);
575
			if (comboTypeStructure.getValue() != null) {
576
				String typeStructure = comboTypeStructure.getValue().getAbr();
577
				if (typeStructure == "stpu" && comboLstpu.getValue() != null) {
578
					structure.setTypePublic(comboLstpu.getValue().getId());
579
				} else if (typeStructure == "stpr" && comboLstpr.getValue() != null) {
580
					structure.setTypePrive(comboLstpr.getValue().getId());
581
				}
164 jp_milcent 582
			}
211 jp_milcent 583
			structure.setDateFondation(dateFondationChp.getValue());
584
 
585
			structure.setAdresse(adrChp.getValue());
586
			structure.setCodePostal(cpChp.getValue());
587
			structure.setVille(villeChp.getValue());
588
			structure.setRegion(regionChp.getValue());
589
			structure.setPays(null);
590
			if (comboPays.getValue() != null) {
591
				structure.setPays(comboPays.getValue().getAbreviation());
592
			} else if (comboPays.getRawValue() != "") {
593
				structure.setPays(comboPays.getRawValue());
594
			}
595
 
596
			structure.setTelephone(telChp.getValue());
597
			structure.setFax(faxChp.getValue());
598
			structure.setCourriel(emailChp.getValue());
599
			structure.setUrl(Structure.URL_SITE, urlChp.getValue());
600
 
601
			return structure;
164 jp_milcent 602
		}
119 jpm 603
	}
604
 
211 jp_milcent 605
	private void peuplerStructureIdentification() {
606
		if (identification != null) {
607
			idStructureChp.setValue(identification.getId());
608
			nomStructureChp.setValue(identification.getNom());
609
			if (!identification.getIdAlternatif().isEmpty()) {
610
				String[] acronyme = identification.getIdAlternatif().split("##");
611
				if (acronyme[0].matches("^IH$")) {
612
					comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeIH());
613
					ihChp.setValue(acronyme[1]);
614
				} else if (acronyme[0].matches("^MNHN$")) {
615
					comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeMNHN());
616
					mnhnChp.setValue(acronyme[1]);
617
				}
188 jp_milcent 618
			}
211 jp_milcent 619
			if (!identification.getTypePrive().isEmpty()) {
620
				if (identification.getTypePrive().matches("^[0-9]+$")) {
621
					comboTypeStructure.setValue(InterneValeurListe.getTypePrivee());
622
					comboLstpr.setValue(comboLstpr.getStore().findModel("id_valeur", identification.getTypePrive()));
623
				}
624
			} else if (!identification.getTypePublic().isEmpty()) {
625
				if (identification.getTypePublic().matches("^[0-9]+$")) {
626
					comboTypeStructure.setValue(InterneValeurListe.getTypePublique());
627
					comboLstpu.setValue(comboLstpu.getStore().findModel("id_valeur", identification.getTypePublic()));
628
				}
172 jp_milcent 629
			}
211 jp_milcent 630
			dateFondationChp.setValue(identification.getDateFondation());
631
 
632
			adrChp.setValue(identification.getAdresse());
633
			cpChp.setValue(identification.getCodePostal());
634
			villeChp.setValue(identification.getVille());
635
			regionChp.setValue(identification.getRegion());
636
			if (identification.getPays().matches("^[A-Z]{2}$")) {
637
				comboPays.setValue(comboPays.getStore().findModel("abreviation", identification.getPays()));
638
			} else {
639
				comboPays.setRawValue(identification.getPays());
172 jp_milcent 640
			}
211 jp_milcent 641
 
642
			telChp.setValue(identification.getTelephone());
643
			faxChp.setValue(identification.getFax());
644
			emailChp.setValue(identification.getCourriel());
645
			urlChp.setValue(identification.getUrl("WEB"));
646
 
647
			identificationOnglet.layout();
172 jp_milcent 648
		}
156 jp_milcent 649
	}
650
 
111 jpm 651
	private TabItem creerOngletValorisation() {
652
		valorisationOnglet = new TabItem();
653
		valorisationOnglet.setText("Valorisation");
654
		valorisationOnglet.setScrollMode(Scroll.AUTO);
655
		valorisationOnglet.setLayout(creerFormLayout(650, LabelAlign.TOP, null));
206 jp_milcent 656
		valorisationOnglet.setData("acces", false); // Permet de savoir si l'onblet a été accédé par l'utilisateur
192 jp_milcent 657
		valorisationOnglet.addListener(Events.Select, new Listener<ComponentEvent>() {
658
			public void handleEvent(ComponentEvent be) {
206 jp_milcent 659
				// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter...
660
				valorisationOnglet.setData("acces", true);
192 jp_milcent 661
				peuplerStructureValorisation();
662
			}
663
		});
111 jpm 664
 
119 jpm 665
		actionMarkRGrpChp = creerChoixUniqueRadioGroupe("action_mark", "ouiNon");
111 jpm 666
		actionMarkRGrpChp.setFieldLabel("Avez-vous réalisé des actions de valorisation de vos collections botaniques ou avez-vous été sollicités pour la valorisation de ces collections ?");
667
		valorisationOnglet.add(actionMarkRGrpChp);
668
 
119 jpm 669
 
111 jpm 670
		actionTrukCp = creerChoixMultipleCp("actionValorisation");
671
		actionTrukCp.hide();
115 jpm 672
		actionTrukCacGrpChp = new CheckBoxGroup();
673
		actionTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?");
111 jpm 674
		valorisationOnglet.add(actionTrukCp);
675
 
206 jp_milcent 676
		publicationChp = new TextArea();
111 jpm 677
		publicationChp.setFieldLabel("Quelques titres des ouvrages, articles scientifiques, ...");
206 jp_milcent 678
		valorisationOnglet.add(publicationChp, new FormData(550, 0));
111 jpm 679
 
680
		autreCollectionTrukCp = creerChoixMultipleCp("autreCollection");
119 jpm 681
		autreCollectionTrukCacGrpChp = new CheckBoxGroup();
682
		autreCollectionTrukCacGrpChp.setFieldLabel("L'organisme dispose-t-il d'autres collections (permettant une valorisation pluridisciplinaire) ?");
111 jpm 683
		valorisationOnglet.add(autreCollectionTrukCp);
684
 
188 jp_milcent 685
		futureActionMarkRGrpChp = creerChoixUniqueRadioGroupe("future_action_mark", "ouiNon");
111 jpm 686
		futureActionMarkRGrpChp.setFieldLabel("Envisagez vous des actions de valorisation dans le cadre de votre politique culturelle ?");
687
		valorisationOnglet.add(futureActionMarkRGrpChp);
688
 
206 jp_milcent 689
		futureActionChp = new TextArea();
111 jpm 690
		futureActionChp.setFieldLabel("Si oui, lesquelles ?");
691
		futureActionChp.hide();
206 jp_milcent 692
		valorisationOnglet.add(futureActionChp, new FormData(550, 0));
111 jpm 693
 
188 jp_milcent 694
		rechercheMarkRGrpChp = creerChoixUniqueRadioGroupe("recherche_mark", "ouiNon");
111 jpm 695
		rechercheMarkRGrpChp.setFieldLabel("Vos collections botaniques sont-elles utilisées pour des recherches scientifiques ?");
696
		valorisationOnglet.add(rechercheMarkRGrpChp);
697
 
698
		provenanceRechercheTrukCp = creerChoixMultipleCp("continentEtFr");
699
		provenanceRechercheTrukCp.hide();
115 jpm 700
		provenanceRechercheTrukCacGrpChp = new CheckBoxGroup();
701
		provenanceRechercheTrukCacGrpChp.setFieldLabel("Si oui, par des chercheurs (professionnels ou amateurs) de quelle provenance ?");
111 jpm 702
		valorisationOnglet.add(provenanceRechercheTrukCp);
703
 
119 jpm 704
		typeRechercheTrukCp = creerChoixMultipleCp("typeRecherche");
705
		typeRechercheTrukCp.hide();
115 jpm 706
		typeRechercheTrukCacGrpChp = new CheckBoxGroup();
707
		typeRechercheTrukCacGrpChp.setFieldLabel("Et pour quelles recherches ?");
119 jpm 708
		valorisationOnglet.add(typeRechercheTrukCp);
111 jpm 709
 
188 jp_milcent 710
		sansMotifAccesMarkRGrpChp = creerChoixUniqueRadioGroupe("sans_motif_acces_mark", "ouiNon");
111 jpm 711
		sansMotifAccesMarkRGrpChp.setFieldLabel("Peut-on consulter vos collections botaniques sans motif de recherches scientifiques ?");
712
		valorisationOnglet.add(sansMotifAccesMarkRGrpChp);
713
 
206 jp_milcent 714
		valorisationOnglet.add(sansMotifAccesChp = new TextArea(), new FormData(550, 0));
111 jpm 715
		sansMotifAccesChp.hide();
716
		sansMotifAccesChp.setFieldLabel("Si oui, quelles démarches doit-on faire pour les consulter ?");
717
 
188 jp_milcent 718
		avecMotifAccesMarkRGrpChp = creerChoixUniqueRadioGroupe("avec_motif_acces_mark", "ouiNon");
111 jpm 719
		avecMotifAccesMarkRGrpChp.setFieldLabel("Peut-on visiter vos collections botaniques avec des objectifs de recherches scientifiques ?");
720
		valorisationOnglet.add(avecMotifAccesMarkRGrpChp);
721
 
206 jp_milcent 722
		valorisationOnglet.add(avecMotifAccesChp = new TextArea(), new FormData(550, 0));
111 jpm 723
		avecMotifAccesChp.hide();
724
		avecMotifAccesChp.setFieldLabel("Si oui, quelles démarches doit-on faire pour les visiter ?");
725
 
726
		return valorisationOnglet;
727
	}
728
 
108 jpm 729
	private TabItem creerOngletConservation() {
730
		conservationOnglet = new TabItem();
731
		conservationOnglet.setText("Conservation");
110 jpm 732
		conservationOnglet.setScrollMode(Scroll.AUTO);
108 jpm 733
		conservationOnglet.setLayout(creerFormLayout(650, LabelAlign.TOP, null));
206 jp_milcent 734
		conservationOnglet.setData("acces", false);
192 jp_milcent 735
		conservationOnglet.addListener(Events.Select, new Listener<ComponentEvent>() {
736
			public void handleEvent(ComponentEvent be) {
206 jp_milcent 737
				// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter...
738
				conservationOnglet.setData("acces", true);
739
				peuplerStructureConservation();
192 jp_milcent 740
			}
741
		});
108 jpm 742
 
188 jp_milcent 743
		formationMarkRGrpChp = creerChoixUniqueRadioGroupe("formation_mark", "ouiNon");
744
		formationMarkRGrpChp.setFieldLabel("Le personnel s'occupant des collections a-t-il suivi des formations en conservations ?");
745
		conservationOnglet.add(formationMarkRGrpChp);
108 jpm 746
 
111 jpm 747
		formationChp = new TextField<String>();
748
		formationChp.hide();
749
		formationChp.setFieldLabel("Si oui, lesquelles ?");
108 jpm 750
		conservationOnglet.add(formationChp);
751
 
188 jp_milcent 752
		interetFormationMarkRGrpChp = creerChoixUniqueRadioGroupe("interet_formation_mark", "ouiNon");
753
		interetFormationMarkRGrpChp.setFieldLabel("Seriez vous intéressé par une formation à la conservation et à la restauration d'herbier ?");
754
		conservationOnglet.add(interetFormationMarkRGrpChp);
108 jpm 755
 
115 jpm 756
		localStockageTrukCp = creerChoixMultipleCp("localStockage");
757
		localStockageTrukCacGrpChp = new CheckBoxGroup();
758
		localStockageTrukCacGrpChp.setFieldLabel("Avez vous des locaux spécifiques de stockage des collections botaniques ?");
759
		conservationOnglet.add(localStockageTrukCp);
108 jpm 760
 
115 jpm 761
		meubleStockageTrukCp = creerChoixMultipleCp("meubleStockage");
762
		meubleStockageTrukCacGrpChp = new CheckBoxGroup();
763
		meubleStockageTrukCacGrpChp.setFieldLabel("Avez vous des meubles spécifiques au stockage des collections botaniques ?");
764
		conservationOnglet.add(meubleStockageTrukCp);
108 jpm 765
 
115 jpm 766
		parametreStockageTrukCp = creerChoixMultipleCp("parametreStockage");
767
		parametreStockageTrukCacGrpChp = new CheckBoxGroup();
768
		parametreStockageTrukCacGrpChp.setFieldLabel("Quels paramètres maîtrisez vous ?");
769
		conservationOnglet.add(parametreStockageTrukCp);
109 jpm 770
 
188 jp_milcent 771
		collectionCommuneMarkRGrpChp = creerChoixUniqueRadioGroupe("collection_commune_mark", "ouiNon");
111 jpm 772
		collectionCommuneMarkRGrpChp.setFieldLabel("Les collections botaniques sont-elles conservées avec d'autres collections  dans les mêmes locaux (problème de conservation en commun) ?");
773
		conservationOnglet.add(collectionCommuneMarkRGrpChp);
109 jpm 774
 
111 jpm 775
		collectionAutreTrukCp = creerChoixMultipleCp("autreCollection");
115 jpm 776
		collectionAutreTrukCacGrpChp = new CheckBoxGroup();
777
		collectionAutreTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?");
111 jpm 778
		collectionAutreTrukCp.hide();
779
		conservationOnglet.add(collectionAutreTrukCp);
110 jpm 780
 
188 jp_milcent 781
		accesControleMarkRGrpChp = creerChoixUniqueRadioGroupe("mark_acces_controle", "ouiNon");
115 jpm 782
		accesControleMarkRGrpChp.setFieldLabel("L'accès à vos collections botanique est-il contrôlé (ex. : manipulation réservées à des personnes compétentes) ?");
783
		conservationOnglet.add(accesControleMarkRGrpChp);
110 jpm 784
 
188 jp_milcent 785
		restaurationMarkRGrpChp = creerChoixUniqueRadioGroupe("restauration_mark", "ouiNon");
115 jpm 786
		restaurationMarkRGrpChp.setFieldLabel("Effectuez vous des opérations de restauration ou de remise en état de vos collections botaniques ?");
787
		conservationOnglet.add(restaurationMarkRGrpChp);
110 jpm 788
 
111 jpm 789
		opRestauTrukCp = creerChoixMultipleCp("opRestau");
115 jpm 790
		opRestauTrukCacGrpChp = new CheckBoxGroup();
791
		opRestauTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?");
111 jpm 792
		opRestauTrukCp.hide();
793
		conservationOnglet.add(opRestauTrukCp);
110 jpm 794
 
188 jp_milcent 795
		// Création d'un ContentPanel vide et du groupe de bouton radio
796
		// Le groupe de bouton radio recevra les boutons au moment de la réception des données (rafraichir()) et ser à ce moment là ajouter au ContenetPanel
797
		materielConservationCp = creerChoixMultipleCp("onep");
798
		conservationOnglet.add(materielConservationCp);
115 jpm 799
		materielConservationCeRGrpChp = creerChoixUniqueRadioGroupe("materiel_conservation_ce", "onep");
800
		materielConservationCeRGrpChp.setFieldLabel("Utilisez vous du matériel de conservation ?");
801
		materielConservationCeRGrpChp.setToolTip(new ToolTipConfig("Matériel de conservation", "matériel spécialisé pour la conservation des archives ou du patrimoine fragile. Ce matériel possède des propriétés mécaniques et chimiques qui font qu'il résiste dans le temps et que sa dégradation n'entraîne pas de dommages sur le matériel qu'il aide à conserver. Exemples : papier neutre, papier gommé, etc..."));
110 jpm 802
 
115 jpm 803
		autreMaterielTrukCp = creerChoixMultipleCp("autreMateriel");
804
		autreMaterielTrukCp.hide();
805
		autreMaterielTrukCacGrpChp = new CheckBoxGroup();
806
		autreMaterielTrukCacGrpChp.setFieldLabel("Si non, qu'utilisez vous comme matériel ?");
807
		conservationOnglet.add(autreMaterielTrukCp);
110 jpm 808
 
188 jp_milcent 809
		traitementMarkRGrpChp = creerChoixUniqueRadioGroupe("traitement_mark", "ouiNon");
810
		traitementMarkRGrpChp.setFieldLabel("Réalisez vous actuellement des traitements globaux contre les insectes ?");
811
		conservationOnglet.add(traitementMarkRGrpChp);
110 jpm 812
 
111 jpm 813
		traitementTrukCp = creerChoixMultipleCp("insecteTraitement");
115 jpm 814
		traitementTrukCp.hide();
815
		traitementTrukCacGrpChp = new CheckBoxGroup();
816
		traitementTrukCacGrpChp.setFieldLabel("Si oui, lesquels ?");
111 jpm 817
		conservationOnglet.add(traitementTrukCp);
110 jpm 818
 
188 jp_milcent 819
		collectionAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("collection_acquisition_mark", "ouiNon");
820
		collectionAcquisitionMarkRGrpChp.setFieldLabel("Actuellement, vos collections botaniques s'accroissent-elles de nouvelles acquisitions ?");
821
		conservationOnglet.add(collectionAcquisitionMarkRGrpChp);
110 jpm 822
 
188 jp_milcent 823
		echantillonAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("echantillon_acquisition_mark", "ouiNon");
824
		echantillonAcquisitionMarkRGrpChp.setFieldLabel("Actuellement, mettez vous en herbier de nouveaux échantillons ?");
825
		conservationOnglet.add(echantillonAcquisitionMarkRGrpChp);
110 jpm 826
 
115 jpm 827
		traitementAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("traitement_acquisition_mark", "ouiNon");
828
		traitementAcquisitionMarkRGrpChp.hide();
829
		traitementAcquisitionMarkRGrpChp.setFieldLabel("Si oui, faites-vous un traitement contre les insectes avant l'intégration dans vos collections ?");
830
		conservationOnglet.add(traitementAcquisitionMarkRGrpChp);
110 jpm 831
 
115 jpm 832
		traitementAcquisitionMarkLabel = new LabelField();
833
		traitementAcquisitionMarkLabel.hide();
834
		traitementAcquisitionMarkLabel.setFieldLabel("Si oui, lesquels ?");
835
		conservationOnglet.add(traitementAcquisitionMarkLabel);
110 jpm 836
 
115 jpm 837
		poisonTraitementTrukCp = creerChoixMultipleCp("poisonTraitement");
838
		poisonTraitementTrukCp.hide();
839
		poisonTraitementTrukCacGrpChp = new CheckBoxGroup();
840
		poisonTraitementTrukCacGrpChp.setFieldLabel("Empoisonnement");
841
		poisonTraitementTrukCacGrpChp.setLabelStyle("font-weight:normal;text-decoration:underline;");
842
		poisonTraitementTrukCacGrpChp.setLabelSeparator("");
843
		conservationOnglet.add(poisonTraitementTrukCp);
110 jpm 844
 
111 jpm 845
		insecteTraitementTrukCp = creerChoixMultipleCp("insecteTraitement");
115 jpm 846
		insecteTraitementTrukCp.hide();
847
		insecteTraitementTrukCacGrpChp = new CheckBoxGroup();
848
		insecteTraitementTrukCacGrpChp.setLabelStyle("font-weight:normal;text-decoration:underline;");
849
		insecteTraitementTrukCacGrpChp.setLabelSeparator("");
850
		insecteTraitementTrukCacGrpChp.setFieldLabel("Désinsectisation");
111 jpm 851
		conservationOnglet.add(insecteTraitementTrukCp);
110 jpm 852
 
108 jpm 853
		return conservationOnglet;
854
	}
855
 
211 jp_milcent 856
 
857
	private void peuplerStructurePersonnel() {
858
		if (identification != null) {
859
			// NBRE PERSONNE
860
			nbreTotalPersonneStructureChp.setValue(identification.getNbrePersonne());
861
		}
862
 
863
		if (personnel != null) {
864
			personnelGrilleMagazin.removeAll();
865
			personnelGrilleMagazin.add(personnel);
866
 
867
			grillePersonnel.getColumnModel().getColumn(1).getEditor().fireEvent(Events.StateSave);
868
			/*
869
			int nbreLigne = personnelGrilleMagazin.getCount();
870
			for (int i = 0; i < nbreLigne; i++) {
871
 
872
			}
873
			*/
874
			personnelOnglet.layout();
875
		}
876
	}
877
 
103 jpm 878
	private TabItem creerOngletPersonnel() {
108 jpm 879
		personnelOnglet = new TabItem();
211 jp_milcent 880
 
103 jpm 881
		personnelOnglet.setText("Personnel");
110 jpm 882
		personnelOnglet.setScrollMode(Scroll.AUTO);
883
		personnelOnglet.setLayout(creerFormLayout(400, LabelAlign.LEFT, null));
211 jp_milcent 884
		personnelOnglet.setData("acces", false); // Permet de savoir si l'onblet a été accédé par l'utilisateur
885
		personnelOnglet.addListener(Events.Select, new Listener<ComponentEvent>() {
886
			public void handleEvent(ComponentEvent be) {
887
				// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter...
888
				personnelOnglet.setData("acces", true);
889
				peuplerStructurePersonnel();
890
			}
891
 
892
		});
103 jpm 893
 
188 jp_milcent 894
		nbreTotalPersonneStructureChp = new NumberField();
103 jpm 895
		nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personne travaillant dans l'institution");
896
		nbreTotalPersonneStructureChp.setFormat(NumberFormat.getFormat("#"));
897
		nbreTotalPersonneStructureChp.setToolTip("Ce champ doit contenir un nombre");
898
		personnelOnglet.add(nbreTotalPersonneStructureChp);
899
 
900
		personnelOnglet.add(this.creerGrillePersonnel());
901
 
902
		nbreTotalPersonnelChp = new LabelField();
903
		nbreTotalPersonnelChp.setFieldLabel("Nombre de personne travaillant sur les collections");
904
		nbreTotalPersonnelChp.setLabelSeparator(":");
905
		nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
906
		personnelOnglet.add(nbreTotalPersonnelChp);
211 jp_milcent 907
 
103 jpm 908
		return personnelOnglet;
909
	}
910
 
102 jpm 911
	private ContentPanel creerGrillePersonnel() {
211 jp_milcent 912
		ContentPanel cp = new ContentPanel();
103 jpm 913
 
211 jp_milcent 914
		List<StructureAPersonne> personnes = new ArrayList<StructureAPersonne>();
915
		personnes.add(new StructureAPersonne(Valeur.FONCTION_DIRECTEUR));
916
		personnes.add(new StructureAPersonne(Valeur.FONCTION_CONSERVATEUR));
102 jpm 917
 
211 jp_milcent 918
		personnelGrilleMagazin = new ListStore<StructureAPersonne>();
103 jpm 919
		personnelGrilleMagazin.add(personnes);
920
 
102 jpm 921
		List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
922
 
211 jp_milcent 923
		CheckBoxSelectionModel<StructureAPersonne> sm = new CheckBoxSelectionModel<StructureAPersonne>();
102 jpm 924
		configs.add(sm.getColumn());
103 jpm 925
 
926
		ColumnConfig column = new ColumnConfig("ce_truk_fonction", "Fonction", 100);
119 jpm 927
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("fonction"));
103 jpm 928
		magazinLiFonction = new ListStore<Valeur>();
929
		magazinLiFonction.add(new ArrayList<Valeur>());
930
 
931
		comboLiFonction = new ComboBox<Valeur>();
932
		comboLiFonction.setTriggerAction(TriggerAction.ALL);
933
		comboLiFonction.setEditable(true);
934
		comboLiFonction.setDisplayField("nom");
935
		//comboLiStatut.setEmptyText("Sélectionez une fonction...");
936
		comboLiFonction.setStore(magazinLiFonction);
211 jp_milcent 937
		/*
938
		comboLiFonction.addListener(Events.Blur, new Listener<BaseEvent>() {
939
 
940
			@Override
941
			public void handleEvent(BaseEvent be) {
942
				//grillePersonnel..comboLiFonction.getRawValue();
943
 
944
			}
945
 
946
		});*/
103 jpm 947
 
948
		CellEditor fonctionEditor = new CellEditor(comboLiFonction) {
949
			@Override
211 jp_milcent 950
			public Object preProcessValue(Object valeur) {
951
				if (valeur == null) {
952
					return valeur;
103 jpm 953
				}
211 jp_milcent 954
				GWT.log("pre : "+valeur.toString(), null);
955
				Object retour = null;
956
				if (((String) valeur).matches("^[0-9]+$")) {
957
					retour = comboLiFonction.getStore().findModel("id_valeur", (String) valeur);
958
				} else {
959
					retour = comboLiFonction.getStore().findModel("nom", (String) valeur);
960
				}
961
				GWT.log("pre - retour : \n"+retour.toString(), null);
962
				return retour;
103 jpm 963
			}
964
 
965
			@Override
211 jp_milcent 966
			public Object postProcessValue(Object valeur) {
967
				if (valeur == null) {
968
					// Si la combobox n'a pas été utilisé, nous renvoyons la valeur brute saisie par l'utilisateur
969
					return this.getField().getRawValue();
970
				} else {
971
					this.setUpdateEl(false);
972
					GWT.log("post : \n"+valeur.toString(), null);
973
					if (valeur instanceof String && ((String) valeur).matches("^[0-9]+$")) {
974
						GWT.log("ici", null);
975
						return (comboLiFonction.getStore().findModel("id_valeur", (String) valeur)).getNom();
976
					} else {
977
						String nom = (((Valeur) valeur).getNom());
978
						GWT.log("la "+nom, null);
979
						return nom;
980
					}
103 jpm 981
				}
211 jp_milcent 982
			}
103 jpm 983
		};
984
		column.setEditor(fonctionEditor);
102 jpm 985
		configs.add(column);
986
 
987
		column = new ColumnConfig();
988
		column.setId("prenom");
103 jpm 989
		column.setHeader("Prénom");
990
		column.setWidth(100);
991
		TextField<String> prenomChp = new TextField<String>();
992
		prenomChp.setAllowBlank(false);
993
		prenomChp.getMessages().setBlankText("Ce champ est obligatoire.");
994
		prenomChp.setAutoValidate(true);
995
		column.setEditor(new CellEditor(prenomChp));
102 jpm 996
		configs.add(column);
997
 
998
		column = new ColumnConfig();
999
		column.setId("nom");
1000
		column.setHeader("Nom");
103 jpm 1001
		column.setWidth(100);
1002
		TextField<String> nomChp = new TextField<String>();
1003
		nomChp.setAllowBlank(false);
1004
		nomChp.getMessages().setBlankText("Ce champ est obligatoire.");
1005
		nomChp.setAutoValidate(true);
1006
		column.setEditor(new CellEditor(nomChp));
102 jpm 1007
		configs.add(column);
1008
 
211 jp_milcent 1009
		column = new ColumnConfig("telephone", "Téléphone fixe", 100);
103 jpm 1010
		TextField<String> telChp = new TextField<String>();
1011
		column.setEditor(new CellEditor(telChp));
102 jpm 1012
		configs.add(column);
1013
 
1014
		column = new ColumnConfig("fax", "Fax", 100);
103 jpm 1015
		TextField<String> faxChp = new TextField<String>();
1016
		column.setEditor(new CellEditor(faxChp));
102 jpm 1017
		configs.add(column);
1018
 
103 jpm 1019
		column = new ColumnConfig("courriel", "Courriel", 100);
1020
		TextField<String> emailChp = new TextField<String>();
1021
		column.setEditor(new CellEditor(emailChp));
102 jpm 1022
		configs.add(column);
1023
 
119 jpm 1024
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("statut"));
103 jpm 1025
		magazinLiStatut = new ListStore<Valeur>();
1026
		magazinLiStatut.add(new ArrayList<Valeur>());
1027
 
1028
		comboLiStatut = new ComboBox<Valeur>();
1029
		comboLiStatut.setTriggerAction(TriggerAction.ALL);
1030
		comboLiStatut.setEditable(false);
1031
		comboLiStatut.setDisplayField("nom");
1032
		comboLiStatut.setEmptyText("Sélectionez un statut...");
1033
		comboLiStatut.setStore(magazinLiStatut);
1034
 
1035
		CellEditor statutEditor = new CellEditor(comboLiStatut) {
1036
			@Override
1037
			public Object preProcessValue(Object value) {
1038
				if (value == null) {
1039
					return value;
1040
				}
1041
				//GWT.log("pre : "+value.toString(), null);
1042
				return comboLiStatut.getStore().findModel("nom", (String) value);
1043
			}
1044
 
1045
			@Override
1046
			public Object postProcessValue(Object value) {
1047
				if (value == null) {
1048
					return value;
1049
				}
1050
				//GWT.log("post : "+value.toString(), null);
1051
				return ((Valeur) value).get("nom");
1052
			}
1053
		};
1054
		column = new ColumnConfig("statut", "Statut", 100);
1055
		column.setEditor(statutEditor);
102 jpm 1056
		configs.add(column);
1057
 
211 jp_milcent 1058
		column = new ColumnConfig("travail", "Temps travail", 100);
103 jpm 1059
		column.setNumberFormat(NumberFormat.getFormat("##"));
1060
		NumberField tpsWChp = new NumberField();
1061
		tpsWChp.setFormat(NumberFormat.getFormat("##"));
1062
		tpsWChp.setToolTip("Ce champ doit contenir un nombre");
1063
		column.setEditor(new CellEditor(tpsWChp));
1064
		configs.add(column);
1065
 
211 jp_milcent 1066
		column = new ColumnConfig("specialite", "Spécialité principale", 150);
103 jpm 1067
		TextField<String> speChp = new TextField<String>();
1068
		column.setEditor(new CellEditor(speChp));
1069
		configs.add(column);
1070
 
211 jp_milcent 1071
		CheckColumnConfig checkColumn = new CheckColumnConfig("contact", "Contact ?", 60);
102 jpm 1072
		configs.add(checkColumn);
1073
 
211 jp_milcent 1074
 
102 jpm 1075
		cp.setHeading("Personnes travaillant sur les collections");
110 jpm 1076
		cp.setIconStyle("icone-table");
1077
		cp.setScrollMode(Scroll.AUTO);
103 jpm 1078
		cp.setLayout(new FitLayout());
110 jpm 1079
		cp.setSize(1100, 200);
102 jpm 1080
		cp.setFrame(true);
1081
 
1082
		ToolBar toolBar = new ToolBar();
103 jpm 1083
 
1084
		TextToolItem ajouterPersonnelBtn = new TextToolItem("Ajouter", "icone-vcard-ajouter");
1085
		ajouterPersonnelBtn.addSelectionListener(new SelectionListener<ToolBarEvent>() {
1086
			@Override
1087
			public void componentSelected(ToolBarEvent ce) {
211 jp_milcent 1088
				StructureAPersonne personne = new StructureAPersonne();
103 jpm 1089
				grillePersonnel.stopEditing();
1090
				personnelGrilleMagazin.insert(personne, 0);
1091
				grillePersonnel.startEditing(0, 0);
1092
				// Mise à jour du nombre de personnel travaillant sur les collections
1093
				nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
1094
				// Activation du bouton supprimer si la grille contient un élément
1095
				if (grillePersonnel.getStore().getCount() > 0) {
1096
					ce.component.enable();
1097
				}
1098
			}
1099
		});
1100
		toolBar.add(ajouterPersonnelBtn);
1101
		toolBar.add(new SeparatorToolItem());
1102
		TextToolItem supprimerPersonnelBtn = new TextToolItem("Supprimer", "icone-vcard-supprimer");
1103
		supprimerPersonnelBtn.addSelectionListener(new SelectionListener<ToolBarEvent>() {
1104
			@Override
1105
			public void componentSelected(ToolBarEvent ce) {
1106
				grillePersonnel.getStore().remove(grillePersonnel.getStore().getAt(0));
1107
				// Mise à jour du nombre de personnel travaillant sur les collections
1108
				nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
1109
				// Désactivation du bouton supprimer si la grille contient plus d'élément
1110
				if (grillePersonnel.getStore().getCount() == 0) {
1111
					ce.item.disable();
1112
				}
1113
			}
1114
		});
1115
		toolBar.add(supprimerPersonnelBtn);
102 jpm 1116
		cp.setTopComponent(toolBar);
1117
 
1118
		ColumnModel cm = new ColumnModel(configs);
1119
 
211 jp_milcent 1120
		grillePersonnel = new EditorGrid<StructureAPersonne>(personnelGrilleMagazin, cm);
103 jpm 1121
		grillePersonnel.setBorders(true);
1122
		grillePersonnel.setSelectionModel(sm);
1123
		grillePersonnel.addPlugin(sm);
1124
		grillePersonnel.addPlugin(checkColumn);
211 jp_milcent 1125
  		grillePersonnel.setAutoExpandColumn("specialite");
1126
  		grillePersonnel.setStripeRows(true);
1127
  		grillePersonnel.setTrackMouseOver(true);
103 jpm 1128
		cp.add(grillePersonnel);
211 jp_milcent 1129
 
1130
		return cp;
102 jpm 1131
	}
1132
 
110 jpm 1133
	private TabItem creerOngletIdentification() {
1134
		//+-----------------------------------------------------------------------------------------------------------+
1135
		// Onlget formulaire IDENTIFICATION
192 jp_milcent 1136
		identificationOnglet = new TabItem();
1137
		identificationOnglet.setId("identification");
1138
		identificationOnglet.setText("Identification");
110 jpm 1139
		identificationOnglet.setLayout(new FormLayout());
211 jp_milcent 1140
		identificationOnglet.setData("acces", false);
1141
		identificationOnglet.addListener(Events.Select, new Listener<ComponentEvent>() {
1142
			public void handleEvent(ComponentEvent be) {
1143
				// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter...
1144
				identificationOnglet.setData("acces", true);
1145
				peuplerStructureIdentification();
1146
			}
1147
		});
1148
 
110 jpm 1149
		//+-----------------------------------------------------------------------------------------------------------+
172 jp_milcent 1150
		// Champs cachés
1151
		idStructureChp = new HiddenField<String>();
1152
 
1153
		//+-----------------------------------------------------------------------------------------------------------+
110 jpm 1154
		// Fieldset IDENTITÉ
1155
		FieldSet fieldSetIdentite = new FieldSet();
1156
		fieldSetIdentite.setHeading("Identité");
1157
		fieldSetIdentite.setCollapsible(true);
1158
		fieldSetIdentite.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
1159
 
119 jpm 1160
		nomStructureChp = new TextField<String>();
133 jpm 1161
		nomStructureChp.setTabIndex(100);
110 jpm 1162
		nomStructureChp.setFieldLabel("Nom de la structure");
1163
		nomStructureChp.setAllowBlank(false);
1164
		nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire.");
1165
		fieldSetIdentite.add(nomStructureChp, new FormData(450, 0));
1166
 
1167
		// Création du sous-formulaire : Acronyme
1168
		LayoutContainer ligne = new LayoutContainer();
1169
		ligne.setLayout(new ColumnLayout());
1170
		LayoutContainer gauche = new LayoutContainer();
1171
		gauche.setLayout(creerFormLayout(200, LabelAlign.LEFT, 0));
1172
		LayoutContainer droite = new LayoutContainer();
1173
		droite.setLayout(creerFormLayout(0, null, 0));
1174
 
1175
		ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>();
1176
		acronymes.add(InterneValeurListe.getTypeAcronyme());
1177
 
133 jpm 1178
		comboAcronyme = new ComboBox<InterneValeur>();
1179
		comboAcronyme.setTabIndex(101);
110 jpm 1180
		comboAcronyme.setEmptyText("Sélectioner un type d'acronyme...");
1181
		comboAcronyme.setFieldLabel("Acronymes");
1182
		comboAcronyme.setDisplayField("nom");
1183
		comboAcronyme.setStore(acronymes);
1184
		comboAcronyme.setEditable(false);
1185
		comboAcronyme.setTypeAhead(true);
1186
		comboAcronyme.setTriggerAction(TriggerAction.ALL);
1187
		comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
1188
			@Override
1189
			public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
1190
				String acronymeAbr = se.getSelectedItem().getAbr();
1191
				if (acronymeAbr.equals("IH")) {
1192
					mnhnChp.hide();
1193
					ihChp.show();
1194
				} else if (acronymeAbr.equals("MNHN")) {
1195
					ihChp.hide();
1196
					mnhnChp.show();
1197
				} else if (acronymeAbr.equals("")) {
1198
					ihChp.hide();
1199
					mnhnChp.hide();
1200
					comboAcronyme.clearSelections();
1201
				}
1202
			}
1203
        });
1204
		gauche.add(comboAcronyme);
1205
 
1206
		ihChp = new TextField<String>();
1207
		//ihChp.setEmptyText("Index Herbariorum");
133 jpm 1208
		ihChp.setTabIndex(102);
110 jpm 1209
		ihChp.setLabelSeparator("");
1210
		ihChp.setToolTip("Index Herbariorum : herbier de plus de 5000 échantillons");
1211
		ihChp.hide();
1212
		droite.add(ihChp);
1213
 
133 jpm 1214
		mnhnChp = new TextField<String>();
1215
		mnhnChp.setTabIndex(103);
110 jpm 1216
		//mnhnChp.setEmptyText("MNHN");
1217
		mnhnChp.setLabelSeparator("");
1218
		mnhnChp.setToolTip("Acronyme MNHN : herbier de moins de 5000 échantillons");
1219
		mnhnChp.hide();
1220
		droite.add(mnhnChp);
1221
 
1222
		ligne.add(gauche, new ColumnData(0.5));
1223
		ligne.add(droite, new ColumnData(0.5));
1224
		fieldSetIdentite.add(ligne);
1225
 
1226
		// Création du sous-formulaire : Type de Structure
1227
		LayoutContainer ligneTs = new LayoutContainer();
1228
		ligneTs.setLayout(new ColumnLayout());
1229
 
1230
		LayoutContainer gaucheTs = new LayoutContainer();
1231
		gaucheTs.setLayout(creerFormLayout(200, LabelAlign.LEFT, 0));
1232
 
1233
		LayoutContainer droiteTs = new LayoutContainer();
1234
		droiteTs.setLayout(creerFormLayout(0, null, 0));
1235
 
1236
		ListStore<InterneValeur> typesStructure = new ListStore<InterneValeur>();
1237
		typesStructure.add(InterneValeurListe.getTypeStructure());
1238
 
133 jpm 1239
		comboTypeStructure = new ComboBox<InterneValeur>();
1240
		comboTypeStructure.setTabIndex(104);
110 jpm 1241
		comboTypeStructure.setEmptyText("Sélectioner un type de structure...");
1242
		comboTypeStructure.setFieldLabel("Statut des structures");
1243
		comboTypeStructure.setDisplayField("nom");
1244
		comboTypeStructure.setStore(typesStructure);
1245
		comboTypeStructure.setEditable(false);
1246
		comboTypeStructure.setTypeAhead(true);
1247
		comboTypeStructure.setTriggerAction(TriggerAction.ALL);
1248
		comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
1249
			@Override
1250
			public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
1251
				String typeAbr = se.getSelectedItem().getAbr();
1252
				if (typeAbr.equals("stpu")) {
1253
					comboLstpr.hide();
1254
					comboLstpu.show();
1255
				} else if (typeAbr.equals("stpr")) {
1256
					comboLstpu.hide();
1257
					comboLstpr.show();
1258
				} else if (typeAbr.equals("")) {
1259
					comboLstpr.hide();
1260
					comboLstpu.hide();
1261
					comboTypeStructure.clearSelections();
1262
				}
1263
			}
1264
        });
1265
		gaucheTs.add(comboTypeStructure);
1266
 
119 jpm 1267
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
110 jpm 1268
		magazinLstpu = new ListStore<Valeur>();
1269
		magazinLstpu.add(new ArrayList<Valeur>());
133 jpm 1270
		comboLstpu = new ComboBox<Valeur>();
1271
		comboLstpu.setTabIndex(105);
110 jpm 1272
		//comboLstpu.setFieldLabel("Statut des structures publiques");
1273
		comboLstpu.setLabelSeparator("");
1274
		comboLstpu.setDisplayField("nom");
1275
		comboLstpu.setEditable(false);
1276
		comboLstpu.setTriggerAction(TriggerAction.ALL);
1277
		comboLstpu.setStore(magazinLstpu);
1278
		comboLstpu.hide();
1279
		droiteTs.add(comboLstpu);
1280
 
119 jpm 1281
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
110 jpm 1282
		magazinLstpr = new ListStore<Valeur>();
1283
		magazinLstpr.add(new ArrayList<Valeur>());
133 jpm 1284
		comboLstpr = new ComboBox<Valeur>();
1285
		comboLstpr.setTabIndex(106);
110 jpm 1286
		//comboLstpr.setFieldLabel("Statut des structures privées");
1287
		comboLstpr.setLabelSeparator("");
1288
		comboLstpr.setDisplayField("nom");
1289
		comboLstpr.setEditable(false);
1290
		comboLstpr.setTriggerAction(TriggerAction.ALL);
1291
		comboLstpr.setStore(magazinLstpr);
1292
		comboLstpr.hide();
1293
		droiteTs.add(comboLstpr);
1294
 
1295
		ligneTs.add(gaucheTs, new ColumnData(0.5));
1296
		ligneTs.add(droiteTs, new ColumnData(0.5));
1297
		fieldSetIdentite.add(ligneTs);
1298
 
119 jpm 1299
		dateFondationChp = new DateField();
133 jpm 1300
		dateFondationChp.setTabIndex(107);
110 jpm 1301
		dateFondationChp.setFieldLabel("Date de fondation");
1302
		dateFondationChp.getPropertyEditor().getFormat();
1303
		dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
1304
		dateFondationChp.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
1305
		fieldSetIdentite.add(dateFondationChp);
1306
 
1307
		identificationOnglet.add(fieldSetIdentite);
1308
 
1309
		//+-----------------------------------------------------------------------------------------------------------+
1310
		// Fieldset ADRESSE
1311
		LayoutContainer principalFdAdresse = new LayoutContainer();
1312
		principalFdAdresse.setLayout(new ColumnLayout());
1313
 
1314
		LayoutContainer gaucheFdAdresse = new LayoutContainer();
1315
		gaucheFdAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1316
 
1317
		LayoutContainer droiteFdAdresse = new LayoutContainer();
1318
		droiteFdAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1319
 
1320
		FieldSet fieldSetAdresse = new FieldSet();
1321
		fieldSetAdresse.setHeading("Adresse");
1322
		fieldSetAdresse.setCollapsible(true);
1323
 
1324
		fieldSetAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 4));
1325
 
164 jp_milcent 1326
		adrChp = new TextArea();
133 jpm 1327
		adrChp.setTabIndex(108);
110 jpm 1328
		adrChp.setFieldLabel("Adresse");
1329
		fieldSetAdresse.add(adrChp, new FormData(550, 0));
1330
 
133 jpm 1331
		cpChp = new TextField<String>();
1332
		cpChp.setTabIndex(109);
110 jpm 1333
		cpChp.setFieldLabel("Code postal");
1334
		gaucheFdAdresse.add(cpChp);
1335
 
133 jpm 1336
		villeChp = new TextField<String>();
1337
		villeChp.setTabIndex(110);
110 jpm 1338
		villeChp.setFieldLabel("Ville");
1339
		droiteFdAdresse.add(villeChp);
1340
 
133 jpm 1341
		regionChp = new TextField<String>();
1342
		regionChp.setTabIndex(111);
110 jpm 1343
		regionChp.setFieldLabel("Région");
1344
		gaucheFdAdresse.add(regionChp);
1345
 
164 jp_milcent 1346
		//paysChp = new TextField<String>();
1347
		//paysChp.setTabIndex(112);
1348
		//paysChp.setFieldLabel("Pays");
1349
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("pays"));
1350
		magazinPays = new ListStore<Valeur>();
1351
		magazinPays.add(new ArrayList<Valeur>());
1352
		comboPays = new ComboBox<Valeur>();
1353
		comboPays.setTabIndex(112);
1354
		comboPays.setFieldLabel("Pays");
172 jp_milcent 1355
		comboPays.setEmptyText("Sélectioner un pays...");
164 jp_milcent 1356
		comboPays.setEditable(true);
1357
		comboPays.setLabelSeparator("");
1358
		comboPays.setDisplayField("nom");
172 jp_milcent 1359
		comboPays.setTemplate(getTemplatePays());
1360
		comboPays.setTypeAhead(true);
164 jp_milcent 1361
		comboPays.setTriggerAction(TriggerAction.ALL);
1362
		comboPays.setStore(magazinPays);
1363
		droiteFdAdresse.add(comboPays);
110 jpm 1364
 
1365
		principalFdAdresse.add(gaucheFdAdresse, new ColumnData(.5));
1366
		principalFdAdresse.add(droiteFdAdresse, new ColumnData(.5));
1367
		fieldSetAdresse.add(principalFdAdresse);
1368
		identificationOnglet.add(fieldSetAdresse);
1369
 
1370
		//+-----------------------------------------------------------------------------------------------------------+
1371
		// Fieldset TÉLÉPHONE et EMAIL
1372
		LayoutContainer principalFdTelMail = new LayoutContainer();
1373
		principalFdTelMail.setLayout(new ColumnLayout());
1374
 
1375
		LayoutContainer gaucheFdTelMail = new LayoutContainer();
1376
		gaucheFdTelMail.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1377
 
1378
		LayoutContainer droiteFdTelMail = new LayoutContainer();
1379
		droiteFdTelMail.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1380
 
1381
		FieldSet fieldSetTelMail = new FieldSet();
1382
		fieldSetTelMail.setHeading("Communication");
1383
		fieldSetTelMail.setCollapsible(true);
1384
 
1385
		fieldSetTelMail.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
1386
 
133 jpm 1387
		telChp = new TextField<String>();
1388
		telChp.setTabIndex(113);
110 jpm 1389
		telChp.setFieldLabel("Téléphone");
1390
		gaucheFdTelMail.add(telChp);
1391
 
133 jpm 1392
		faxChp = new TextField<String>();
1393
		faxChp.setTabIndex(114);
110 jpm 1394
		faxChp.setFieldLabel("Fax");
1395
		droiteFdTelMail.add(faxChp);
1396
 
133 jpm 1397
		emailChp = new TextField<String>();
1398
		emailChp.setTabIndex(115);
110 jpm 1399
		emailChp.setFieldLabel("Courriel");
1400
		emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org");
1401
		gaucheFdTelMail.add(emailChp);
1402
 
133 jpm 1403
		urlChp = new TextField<String>();
1404
		urlChp.setTabIndex(116);
110 jpm 1405
		urlChp.setFieldLabel("Site web");
1406
		droiteFdTelMail.add(urlChp);
1407
 
1408
		principalFdTelMail.add(gaucheFdTelMail, new ColumnData(.5));
1409
		principalFdTelMail.add(droiteFdTelMail, new ColumnData(.5));
1410
		fieldSetTelMail.add(principalFdTelMail);
1411
		identificationOnglet.add(fieldSetTelMail);
1412
 
1413
		return identificationOnglet;
1414
	}
1415
 
172 jp_milcent 1416
	private native String getTemplatePays() /*-{
1417
		return  [
1418
		'<tpl for=".">',
1419
		'<div class="x-combo-list-item">{nom} ({abreviation})</div>',
1420
		'</tpl>'
1421
		].join("");
1422
		}-*/;
1423
 
192 jp_milcent 1424
	private void peuplerCasesACocher(String donnees, CheckBoxGroup groupeCac, TextField<String> champAutre) {
1425
		String[] valeurs = donnees.split(";;");
1426
		for (int i = 0; i < valeurs.length; i++) {
1427
			if (valeurs[i].startsWith("AUTRE##")) {
1428
				champAutre.setValue(valeurs[i].replaceFirst("^AUTRE##", ""));
1429
			} else {
1430
				List<CheckBox> cases = groupeCac.getAll();
1431
				for (int j = 0; j < cases.size(); j++) {
1432
					if (cases.get(j).getId().equals("val-"+valeurs[i])) {
1433
						cases.get(j).setValue(true);
1434
					}
1435
				}
1436
			}
1437
		}
1438
	}
1439
 
1440
	private void peuplerBoutonsRadio(String valeur, RadioGroup groupeBr) {
1441
		List<Radio> boutons = groupeBr.getAll();
1442
		String id = valeur+"_"+groupeBr.getName().replace("_grp", "");
1443
		for (int i = 0; i < boutons.size(); i++) {
1444
			if (boutons.get(i).getId().equals(id)) {
1445
				boutons.get(i).setValue(true);
1446
			}
1447
		}
1448
	}
1449
 
1450
	private String creerChaineDenormalisee(List<CheckBox> liste) {
1451
		String identifiants = "";
1452
		int taille = liste.size();
1453
		for (int i = 0; i < taille; i++) {
1454
			CheckBox cac = liste.get(i);
1455
			if (cac.isEnabled()) {
1456
				identifiants = identifiants.concat(";;"+cac.getData("id"));
1457
			}
1458
		}
1459
		return identifiants.replaceFirst("^;;", "");
1460
	}
1461
 
108 jpm 1462
	/** Méthode simplifiant la création de FormLayout.
110 jpm 1463
	 * Chacun des paramètres peut prendre la valeur null pour utiliser la valeur par défaut.
108 jpm 1464
	 *
110 jpm 1465
	 * @param labelWidth largeur des labels.
108 jpm 1466
	 * @param labelAlign alignement des labels
1467
	 * @param padding padding du layout
1468
	 * @return
1469
	 */
1470
	private FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign, Integer padding) {
1471
		FormLayout formLayout = new FormLayout();
110 jpm 1472
		if (labelWidth != null) {
1473
			formLayout.setLabelWidth(labelWidth);
1474
		}
1475
		if (labelAlign != null) {
1476
			formLayout.setLabelAlign(labelAlign);
1477
		}
108 jpm 1478
		if (padding != null) {
1479
			formLayout.setPadding(padding);
1480
		}
1481
		return formLayout;
1482
	}
1483
 
109 jpm 1484
	/** Méthode simplifiant la création de bouton radio oui/non
1485
	 *
1486
	 * @param listeNom nom de la liste de valeur
1487
	 * @return
1488
	 */
115 jpm 1489
	private RadioGroup creerChoixUniqueRadioGroupe(String groupeNom, String listeNom) {
1490
		groupeNom += "_grp";
1491
		// NOTE : il semblerait qu'il faille aussi utiliser setName() pour éviter tout problème...
1492
		RadioGroup radioGroup = new RadioGroup(groupeNom);
1493
		radioGroup.setName(groupeNom);
119 jpm 1494
 
188 jp_milcent 1495
		if (listeNom.equals("ouiNon")) {
115 jpm 1496
			ValeurListe ouiNonListe = new ValeurListe();
188 jp_milcent 1497
			ouiNonListe.ajouter(new Valeur("1", "Oui", "NULL", "NULL"));
1498
			ouiNonListe.ajouter(new Valeur("0", "Non", "NULL", "NULL"));
115 jpm 1499
			creerChoixUniqueBoutonRadio(radioGroup, ouiNonListe);
1500
		}
109 jpm 1501
 
115 jpm 1502
		return radioGroup;
109 jpm 1503
	}
1504
 
115 jpm 1505
	private void creerChoixUniqueBoutonRadio(RadioGroup radioGroupe, ValeurListe listeValeurs) {
1506
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
1507
			Valeur val = listeValeurs.get(it.next());
1508
 
1509
			Radio radioBtn = new Radio();
119 jpm 1510
			radioBtn.setName(radioGroupe.getName().replace("_grp", ""));
188 jp_milcent 1511
			radioBtn.setId(val.getId()+"_"+radioBtn.getName());
115 jpm 1512
			radioBtn.setBoxLabel(val.getNom());
188 jp_milcent 1513
			radioBtn.setValueAttribute(val.getId());
119 jpm 1514
			radioBtn.addListener(Events.Change, new Listener<ComponentEvent>() {
115 jpm 1515
 
119 jpm 1516
				public void handleEvent(ComponentEvent be) {
133 jpm 1517
					//Window.alert(((Radio) be.component).getName());
1518
					afficherChampSupplementaire(((Radio) be.component));
115 jpm 1519
				}
1520
 
1521
			});
119 jpm 1522
 
115 jpm 1523
			if (! val.getDescription().equals("NULL")) {
1524
				radioBtn.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
1525
			}
188 jp_milcent 1526
			radioGroupe.add(radioBtn);
115 jpm 1527
		}
1528
	}
1529
 
1530
	private void afficherChampSupplementaire(Radio radioBtn) {
119 jpm 1531
		//GWT.log("Nom btn : "+radioBtn.getName()+" - Nom group : "+radioBtn.getGroup().getName(), null);
115 jpm 1532
		// Valeur du bouton radio déclenchant l'affichage des composants cachés
1533
		String valeurPourAfficher = "oui";
111 jpm 1534
 
115 jpm 1535
		// Construction de la liste des composants à afficher/cacher
1536
		String radioGroupeNom = radioBtn.getGroup().getName();
1537
		ArrayList<Object> composants = new ArrayList<Object>();
1538
		if (radioGroupeNom.equals("action_mark_grp")) {
1539
			composants.add(actionTrukCp);
1540
		} else if (radioGroupeNom.equals("future_action_mark_grp")) {
1541
			composants.add(futureActionChp);
1542
		} else if (radioGroupeNom.equals("sans_motif_acces_mark_grp")) {
1543
			composants.add(sansMotifAccesChp);
1544
		} else if (radioGroupeNom.equals("avec_motif_acces_mark_grp")) {
1545
			composants.add(avecMotifAccesChp);
1546
		} else if (radioGroupeNom.equals("recherche_mark_grp")) {
1547
			composants.add(provenanceRechercheTrukCp);
119 jpm 1548
			composants.add(typeRechercheTrukCp);
115 jpm 1549
		} else if (radioGroupeNom.equals("formation_mark_grp")) {
1550
			composants.add(formationChp);
1551
		} else if (radioGroupeNom.equals("collection_commune_mark_grp")) {
1552
			composants.add(collectionAutreTrukCp);
1553
		} else if (radioGroupeNom.equals("restauration_mark_grp")) {
1554
			composants.add(opRestauTrukCp);
1555
		} else if (radioGroupeNom.equals("traitement_mark_grp")) {
1556
			composants.add(traitementTrukCp);
1557
		} else if (radioGroupeNom.equals("echantillon_acquisition_mark_grp")) {
1558
			composants.add(traitementAcquisitionMarkRGrpChp);
1559
		} else if (radioGroupeNom.equals("traitement_acquisition_mark_grp")) {
1560
			composants.add(traitementAcquisitionMarkLabel);
1561
			composants.add(poisonTraitementTrukCp);
1562
			composants.add(insecteTraitementTrukCp);
1563
		} else if (radioGroupeNom.equals("materiel_conservation_ce_grp")) {
1564
			composants.add(autreMaterielTrukCp);
1565
			valeurPourAfficher = "non";
1566
		}
111 jpm 1567
 
115 jpm 1568
		// Nous affichons/cachons les composant de la liste
211 jp_milcent 1569
		final int nbreComposants = composants.size();
115 jpm 1570
		//GWT.log("Id : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax, null);
119 jpm 1571
		//Window.alert("Radio grp nom : "+radioGroupeNom+" - Id btn : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax);
211 jp_milcent 1572
		for (int i = 0; i < nbreComposants; i++) {
111 jpm 1573
			// En fonction du type de bouton cliquer, on affiche ou cache les champs
115 jpm 1574
			String type = radioBtn.getBoxLabel().toLowerCase();
119 jpm 1575
			//GWT.log(type, null);
115 jpm 1576
			if (radioBtn.getValue() == true) {
1577
				if (type.equals(valeurPourAfficher)) {
1578
					((Component) composants.get(i)).show();
1579
				} else {
1580
					((Component) composants.get(i)).hide();
1581
				}
111 jpm 1582
			}
1583
			// Si on a à faire à un ContentPanel, on l'actualise pour déclencher l'affichage
115 jpm 1584
			if (composants.get(i) instanceof ContentPanel) {
1585
				((ContentPanel) composants.get(i)).layout();
111 jpm 1586
			}
1587
		}
1588
 
1589
	}
1590
 
109 jpm 1591
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
1592
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
1593
	 * Ajoute ou pas un champ "Autre".
1594
	 *
1595
	 * @param listeNom nom de la liste de valeur
1596
	 * @return
1597
	 */
1598
	private ContentPanel creerChoixMultipleCp(String listeNom) {
119 jpm 1599
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
109 jpm 1600
		ContentPanel cp = new ContentPanel();
1601
		cp.setLayout(creerFormLayout(650, LabelAlign.TOP, 0));
1602
		cp.setHeaderVisible(false);
1603
		return cp;
1604
	}
1605
 
1606
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
1607
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
1608
	 * Ajoute ou pas un champ "Autre".
1609
	 *
1610
	 * @param cp panneau conteant le groupe de case à cocher
1611
	 * @param cacGroup le groupe de case à cocher
1612
	 * @param listeValeurs la liste de valeurs à transformer en case à cocher
1613
	 * @param boolAutreChp booléen indiquant si oui ou non le champ autre doit apparaître
1614
	 * @return
1615
	 */
188 jp_milcent 1616
	private void creerChoixMultipleCac(ContentPanel cp, CheckBoxGroup cacGroupe, ValeurListe listeValeurs, Field<String> autreChp) {
110 jpm 1617
		cacGroupe.setAutoWidth(true);
188 jp_milcent 1618
		cacGroupe.setData("liste_id", listeValeurs.getId());
109 jpm 1619
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
111 jpm 1620
			Valeur val = listeValeurs.get(it.next());
1621
			String nom =  val.get("nom");
109 jpm 1622
			CheckBox cac = new CheckBox();
115 jpm 1623
			cac.setId("val-"+val.getId());
188 jp_milcent 1624
			cac.setData("id", val.getId());
111 jpm 1625
			cac.setBoxLabel(nom);
1626
			if (! val.getDescription().equals("NULL")) {
1627
				cac.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
109 jpm 1628
			}
1629
			cacGroupe.add(cac);
1630
		}
1631
		cp.add(cacGroupe);
1632
 
188 jp_milcent 1633
		if (autreChp != null) {
109 jpm 1634
			ContentPanel autreCp = new ContentPanel();
1635
			autreCp.setLayout(creerFormLayout(75, LabelAlign.TOP, 0));
1636
			autreCp.setHeaderVisible(false);
188 jp_milcent 1637
			autreChp.setId("autre-"+listeValeurs.getId());
119 jpm 1638
			autreChp.setFieldLabel("Autre");
1639
			autreChp.setLabelStyle("font-weight:normal;");
1640
			autreCp.add(autreChp);
109 jpm 1641
			cp.add(autreCp);
1642
		}
1643
 
1644
		cp.layout();
1645
	}
1646
 
69 jpm 1647
	public void rafraichir(Object nouvelleDonnees) {
211 jp_milcent 1648
		try {
1649
			if (nouvelleDonnees instanceof Information) {
1650
				Information info = (Information) nouvelleDonnees;
1651
				if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
1652
					GWT.log(info.getMessages().toString(), null);
188 jp_milcent 1653
				}
211 jp_milcent 1654
				if (info.getType().equals("modif_structure")) {
1655
					Info.display("Modification d'une institution", info.toString());
1656
				} else if (info.getType().equals("ajout_structure")) {
1657
					Info.display("Ajout d'une Institution", info.toString());
1658
				} else if (info.getType().equals("selection_structure")) {
1659
					Info.display("Modification d'une institution", info.toString());
1660
					mode = "MODIF";
1661
					GWT.log("Mode du formulaire : "+mode, null);
1662
					String titre = i18nC.titreModifFormStructurePanneau();
1663
					if (info.getDonnee(0) != null) {
1664
						identification = (Structure) info.getDonnee(0);
1665
						if (onglets.getSelectedItem().equals(identificationOnglet)) {
1666
							peuplerStructureIdentification();
1667
						}
1668
						// Composition du titre
1669
						titre += " - ID : "+identification.getId();
192 jp_milcent 1670
					}
211 jp_milcent 1671
					if (info.getDonnee(1) != null) {
1672
						conservation = (StructureConservation) info.getDonnee(1);
1673
						if (onglets.getSelectedItem().equals(conservationOnglet)) {
1674
							peuplerStructureConservation();
206 jp_milcent 1675
						}
1676
					}
211 jp_milcent 1677
					if (info.getDonnee(2) != null) {
1678
						valorisation = (StructureValorisation) info.getDonnee(2);
1679
						if (valorisation != null) {
1680
							if (onglets.getSelectedItem().equals(valorisationOnglet)) {
1681
								peuplerStructureValorisation();
1682
							}
1683
						}
111 jpm 1684
					}
211 jp_milcent 1685
					structureFormPanneau.setHeading(titre);
1686
				} else if (info.getType().equals("liste_structure_a_personne")) {
1687
					if (info.getDonnee(0) != null) {
1688
						StructureAPersonneListe personnes = (StructureAPersonneListe) info.getDonnee(0);
1689
						personnel = new ArrayList<StructureAPersonne>();
1690
						for (Iterator<String> it = personnes.keySet().iterator(); it.hasNext();) {
1691
							String index = it.next();
1692
							personnes.get(index).set("fonction", magazinLiFonction.findModel("id_valeur", personnes.get(index).getFonction()).getNom());
1693
							personnel.add(personnes.get(index));
1694
						}
1695
 
1696
						//GWT.log(personnel.toString(), null);
1697
						if (onglets.getSelectedItem().equals(personnelOnglet)) {
1698
							peuplerStructurePersonnel();
1699
						}
111 jpm 1700
					}
110 jpm 1701
				}
211 jp_milcent 1702
			} else if (nouvelleDonnees instanceof ValeurListe) {
1703
				ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;
1704
 
1705
				List<Valeur> liste = new ArrayList<Valeur>();
1706
				for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
1707
					liste.add(listeValeurs.get(it.next()));
110 jpm 1708
				}
211 jp_milcent 1709
				// Test pour savoir si la liste contient des éléments
1710
				if (liste.size() > 0) {
1711
					Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
1712
					if (listeValeurs.getId().equals(config.getListeId("stpr"))) {
1713
						magazinLstpr.removeAll();
1714
						magazinLstpr.add(liste);
1715
						comboLstpr.setStore(magazinLstpr);
110 jpm 1716
					}
211 jp_milcent 1717
					if (listeValeurs.getId().equals(config.getListeId("stpu"))) {
1718
						magazinLstpu.removeAll();
1719
						magazinLstpu.add(liste);
1720
						comboLstpu.setStore(magazinLstpu);
110 jpm 1721
					}
211 jp_milcent 1722
					if (listeValeurs.getId().equals(config.getListeId("statut"))) {
1723
						magazinLiStatut.removeAll();
1724
						magazinLiStatut.add(liste);
1725
						comboLiStatut.setStore(magazinLiStatut);
1726
					}
1727
					if (listeValeurs.getId().equals(config.getListeId("fonction"))) {
1728
						magazinLiFonction.removeAll();
1729
						magazinLiFonction.add(liste);
1730
						comboLiFonction.setStore(magazinLiFonction);
1731
					}
1732
					if (listeValeurs.getId().equals(config.getListeId("pays"))) {
1733
						magazinPays.removeAll();
1734
						magazinPays.add(liste);
1735
						comboPays.setStore(magazinPays);
1736
					}
1737
					if (listeValeurs.getId().equals(config.getListeId("localStockage"))) {
1738
						localStockageAutreChp = new TextField<String>();
1739
						creerChoixMultipleCac(localStockageTrukCp, localStockageTrukCacGrpChp, listeValeurs, localStockageAutreChp);
1740
					}
1741
					if (listeValeurs.getId().equals(config.getListeId("meubleStockage"))) {
1742
						meubleStockageAutreChp = new TextField<String>();
1743
						creerChoixMultipleCac(meubleStockageTrukCp, meubleStockageTrukCacGrpChp, listeValeurs, meubleStockageAutreChp);
1744
					}
1745
					if (listeValeurs.getId().equals(config.getListeId("parametreStockage"))) {
1746
						parametreStockageAutreChp = new TextField<String>();
1747
						creerChoixMultipleCac(parametreStockageTrukCp, parametreStockageTrukCacGrpChp, listeValeurs, parametreStockageAutreChp);
1748
					}
1749
					if (listeValeurs.getId().equals(config.getListeId("autreCollection"))) {
1750
						if (collectionAutreTrukCp.getItemByItemId("collectionAutreTrukCacGrpChp") == null) {
1751
							collectionAutreTrukCacGrpChp.setId("collectionAutreTrukCacGrpChp");
1752
							collectionAutreAutreChp = new TextField<String>();
1753
							creerChoixMultipleCac(collectionAutreTrukCp, collectionAutreTrukCacGrpChp, listeValeurs, collectionAutreAutreChp);
1754
						}
1755
						if (autreCollectionTrukCp.getItemByItemId("autreCollectionTrukCacGrpChp") == null) {
1756
							autreCollectionTrukCacGrpChp.setId("autreCollectionTrukCacGrpChp");
1757
							autreCollectionAutreChp = new TextField<String>();
1758
							creerChoixMultipleCac(autreCollectionTrukCp, autreCollectionTrukCacGrpChp, listeValeurs, autreCollectionAutreChp);
1759
						}
1760
					}
1761
					if (listeValeurs.getId().equals(config.getListeId("opRestau"))) {
1762
						opRestauAutreChp = new TextField<String>();
1763
						creerChoixMultipleCac(opRestauTrukCp, opRestauTrukCacGrpChp, listeValeurs, opRestauAutreChp);
1764
					}
1765
					if (listeValeurs.getId().equals(config.getListeId("onep"))) {
1766
						creerChoixUniqueBoutonRadio(materielConservationCeRGrpChp, listeValeurs);
1767
						materielConservationCp.add(materielConservationCeRGrpChp);
1768
						materielConservationCp.layout();
1769
					}
1770
					if (listeValeurs.getId().equals(config.getListeId("autreMateriel"))) {
1771
						autreMaterielAutreChp = new TextField<String>();
1772
						creerChoixMultipleCac(autreMaterielTrukCp, autreMaterielTrukCacGrpChp, listeValeurs, autreMaterielAutreChp);
1773
					}
1774
					if (listeValeurs.getId().equals(config.getListeId("poisonTraitement"))) {
1775
						poisonTraitementAutreChp = new TextField<String>();
1776
						creerChoixMultipleCac(poisonTraitementTrukCp, poisonTraitementTrukCacGrpChp, listeValeurs, poisonTraitementAutreChp);
1777
					}
1778
					if (listeValeurs.getId().equals(config.getListeId("insecteTraitement"))) {
1779
						if (traitementTrukCp.getItemByItemId("traitementTrukCacGrpChp") == null) {
1780
							traitementTrukCacGrpChp.setId("traitementTrukCacGrpChp");
1781
							traitementAutreChp = new TextField<String>();
1782
							creerChoixMultipleCac(traitementTrukCp, traitementTrukCacGrpChp, listeValeurs, traitementAutreChp);
1783
						}
1784
						if (insecteTraitementTrukCp.getItemByItemId("insecteTraitementTrukCacGrpChp") == null) {
1785
							insecteTraitementTrukCacGrpChp.setId("insecteTraitementTrukCacGrpChp");
1786
							insecteTraitementAutreChp = new TextField<String>();
1787
							creerChoixMultipleCac(insecteTraitementTrukCp, insecteTraitementTrukCacGrpChp, listeValeurs, insecteTraitementAutreChp);
1788
						}
1789
					}
1790
					if (listeValeurs.getId().equals(config.getListeId("actionValorisation"))) {
1791
						actionAutreChp = new TextField<String>();
1792
						creerChoixMultipleCac(actionTrukCp, actionTrukCacGrpChp, listeValeurs, actionAutreChp);
1793
					}
1794
					if (listeValeurs.getId().equals(config.getListeId("continentEtFr"))) {
1795
						provenanceRechercheAutreChp = new TextField<String>();
1796
						creerChoixMultipleCac(provenanceRechercheTrukCp, provenanceRechercheTrukCacGrpChp, listeValeurs, provenanceRechercheAutreChp);
1797
					}
1798
					if (listeValeurs.getId().equals(config.getListeId("typeRecherche"))) {
1799
						typeRechercheAutreChp = new TextField<String>();
1800
						creerChoixMultipleCac(typeRechercheTrukCp, typeRechercheTrukCacGrpChp, listeValeurs, typeRechercheAutreChp);
1801
					}
1802
					//GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
1803
				} else {
1804
					GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);
110 jpm 1805
				}
91 jpm 1806
			}
211 jp_milcent 1807
		} catch (Exception e) {
1808
			GWT.log("rafraichir()", e);
91 jpm 1809
		}
69 jpm 1810
	}
100 jpm 1811
 
115 jpm 1812
}