Subversion Repositories eFlore/Applications.coel

Rev

Rev 172 | Rev 192 | 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;
188 jp_milcent 19
import org.tela_botanica.client.modeles.StructureConservation;
91 jpm 20
import org.tela_botanica.client.modeles.Valeur;
21
import org.tela_botanica.client.modeles.ValeurListe;
69 jpm 22
 
111 jpm 23
import com.extjs.gxt.ui.client.Events;
91 jpm 24
import com.extjs.gxt.ui.client.Registry;
69 jpm 25
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
110 jpm 26
import com.extjs.gxt.ui.client.Style.Scroll;
111 jpm 27
import com.extjs.gxt.ui.client.event.ComponentEvent;
28
import com.extjs.gxt.ui.client.event.Listener;
100 jpm 29
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
30
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
103 jpm 31
import com.extjs.gxt.ui.client.event.SelectionListener;
32
import com.extjs.gxt.ui.client.event.ToolBarEvent;
69 jpm 33
import com.extjs.gxt.ui.client.store.ListStore;
172 jp_milcent 34
import com.extjs.gxt.ui.client.store.Store;
111 jpm 35
import com.extjs.gxt.ui.client.widget.Component;
102 jpm 36
import com.extjs.gxt.ui.client.widget.ContentPanel;
153 jpm 37
import com.extjs.gxt.ui.client.widget.Info;
69 jpm 38
import com.extjs.gxt.ui.client.widget.LayoutContainer;
100 jpm 39
import com.extjs.gxt.ui.client.widget.TabItem;
40
import com.extjs.gxt.ui.client.widget.TabPanel;
188 jp_milcent 41
import com.extjs.gxt.ui.client.widget.WidgetComponent;
69 jpm 42
import com.extjs.gxt.ui.client.widget.button.Button;
108 jpm 43
import com.extjs.gxt.ui.client.widget.form.CheckBox;
44
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
69 jpm 45
import com.extjs.gxt.ui.client.widget.form.ComboBox;
100 jpm 46
import com.extjs.gxt.ui.client.widget.form.DateField;
119 jpm 47
import com.extjs.gxt.ui.client.widget.form.Field;
100 jpm 48
import com.extjs.gxt.ui.client.widget.form.FieldSet;
69 jpm 49
import com.extjs.gxt.ui.client.widget.form.FormPanel;
172 jp_milcent 50
import com.extjs.gxt.ui.client.widget.form.HiddenField;
103 jpm 51
import com.extjs.gxt.ui.client.widget.form.LabelField;
102 jpm 52
import com.extjs.gxt.ui.client.widget.form.NumberField;
109 jpm 53
import com.extjs.gxt.ui.client.widget.form.Radio;
54
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
164 jp_milcent 55
import com.extjs.gxt.ui.client.widget.form.TextArea;
69 jpm 56
import com.extjs.gxt.ui.client.widget.form.TextField;
57
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
58
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
102 jpm 59
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
60
import com.extjs.gxt.ui.client.widget.grid.CheckBoxSelectionModel;
61
import com.extjs.gxt.ui.client.widget.grid.CheckColumnConfig;
62
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
63
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
64
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
69 jpm 65
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
66
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
67
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
68
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
100 jpm 69
import com.extjs.gxt.ui.client.widget.layout.FormData;
69 jpm 70
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
110 jpm 71
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
102 jpm 72
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
73
import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem;
74
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
91 jpm 75
import com.google.gwt.core.client.GWT;
100 jpm 76
import com.google.gwt.i18n.client.DateTimeFormat;
102 jpm 77
import com.google.gwt.i18n.client.NumberFormat;
133 jpm 78
import com.google.gwt.user.client.Window;
188 jp_milcent 79
import com.google.gwt.user.client.ui.HTML;
80
import com.google.gwt.user.client.ui.Widget;
69 jpm 81
 
82
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
115 jpm 83
 
84
	private Constantes i18nC = null;
119 jpm 85
	private Mediateur mediateur = null;
86
	private Modele modele = null ;
87
 
156 jp_milcent 88
	private String mode = "AJOUT";
119 jpm 89
	private FormPanel structureFormPanneau;
133 jpm 90
	private int tabIndex = 100;
115 jpm 91
 
91 jpm 92
	private ListStore<Valeur> magazinLstpr = null;
93
	private ComboBox<Valeur> comboLstpr = null;
94
	private ListStore<Valeur> magazinLstpu = null;
95
	private ComboBox<Valeur> comboLstpu = null;
103 jpm 96
	private ListStore<Valeur> magazinLiStatut = null;
97
	private ComboBox<Valeur> comboLiStatut = null;
98
	private ListStore<Valeur> magazinLiFonction = null;
99
	private ComboBox<Valeur> comboLiFonction = null;
100 jpm 100
	private ComboBox<InterneValeur> comboAcronyme = null;
101
	private TextField<String> ihChp = null;
102
	private TextField<String> mnhnChp = null;
103
	private ComboBox<InterneValeur> comboTypeStructure = null;
108 jpm 104
	private TabItem personnelOnglet = null;
103 jpm 105
	private EditorGrid<Personne> grillePersonnel = null;
106
	private ListStore<Personne> personnelGrilleMagazin = null;
107
	private LabelField nbreTotalPersonnelChp = null;
108 jpm 108
	private TabItem conservationOnglet = null;
115 jpm 109
	private CheckBoxGroup localStockageTrukCacGrpChp = null;
110
	private ContentPanel localStockageTrukCp = null;
111
	private CheckBoxGroup meubleStockageTrukCacGrpChp = null;
112
	private ContentPanel meubleStockageTrukCp = null;
113
	private CheckBoxGroup parametreStockageTrukCacGrpChp = null;
114
	private ContentPanel parametreStockageTrukCp = null;
111 jpm 115
	private ContentPanel collectionAutreTrukCp = null;
116
	private CheckBoxGroup collectionAutreTrukCacGrpChp = null;
115 jpm 117
	private CheckBoxGroup opRestauTrukCacGrpChp = null;
111 jpm 118
	private ContentPanel opRestauTrukCp = null;
115 jpm 119
	private CheckBoxGroup autreMaterielTrukCacGrpChp = null;
120
	private ContentPanel autreMaterielTrukCp = null;
111 jpm 121
	private ContentPanel traitementTrukCp = null;
122
	private CheckBoxGroup traitementTrukCacGrpChp = null;
115 jpm 123
	private ContentPanel poisonTraitementTrukCp = null;
111 jpm 124
	private ContentPanel insecteTraitementTrukCp = null;
125
	private CheckBoxGroup insecteTraitementTrukCacGrpChp = null;
115 jpm 126
	private CheckBoxGroup poisonTraitementTrukCacGrpChp = null;
111 jpm 127
	private TabItem valorisationOnglet = null;
115 jpm 128
	private ContentPanel actionTrukCp = null;
129
	private CheckBoxGroup actionTrukCacGrpChp = null;
130
	private ContentPanel autreCollectionTrukCp = null;
119 jpm 131
	private CheckBoxGroup autreCollectionTrukCacGrpChp = null;
115 jpm 132
	private ContentPanel provenanceRechercheTrukCp = null;
133
	private CheckBoxGroup provenanceRechercheTrukCacGrpChp = null;
134
	private CheckBoxGroup typeRechercheTrukCacGrpChp = null;
119 jpm 135
	private ContentPanel typeRechercheTrukCp = null;
115 jpm 136
	private TextField<String> futureActionChp = null;
137
	private TextField<String> sansMotifAccesChp = null;
138
	private TextField<String> avecMotifAccesChp = null;
139
	private TextField<String> formationChp = null;
140
	private RadioGroup traitementAcquisitionMarkRGrpChp = null;
141
	private LabelField traitementAcquisitionMarkLabel = null;
142
	private RadioGroup materielConservationCeRGrpChp = null;
119 jpm 143
 
144
	private RadioGroup actionMarkRGrpChp;
145
	private TextField<String> nomStructureChp;
146
	private DateField dateFondationChp;
164 jp_milcent 147
	private TextArea adrChp;
119 jpm 148
	private TextField<String> cpChp;
149
	private TextField<String> villeChp;
150
	private TextField<String> regionChp;
151
	private TextField<String> telChp;
152
	private TextField<String> faxChp;
153
	private TextField<String> emailChp;
154
	private TextField<String> urlChp;
164 jp_milcent 155
	private ListStore<Valeur> magazinPays;
156
	private ComboBox<Valeur> comboPays;
172 jp_milcent 157
	private HiddenField<String> idStructureChp;
188 jp_milcent 158
	private RadioGroup formationMarkRGrpChp;
159
	private RadioGroup interetFormationMarkRGrpChp;
160
	private RadioGroup collectionCommuneMarkRGrpChp;
161
	private RadioGroup accesControleMarkRGrpChp;
162
	private RadioGroup restaurationMarkRGrpChp;
163
	private RadioGroup traitementMarkRGrpChp;
164
	private RadioGroup collectionAcquisitionMarkRGrpChp;
165
	private RadioGroup echantillonAcquisitionMarkRGrpChp;
166
	private NumberField nbreTotalPersonneStructureChp;
167
	private TextField<String> localStockageAutreChp;
168
	private TextField<String> meubleStockageAutreChp;
169
	private TextField<String> parametreStockageAutreChp;
170
	private TextField<String> collectionAutreAutreChp;
171
	private TextField<String> autreCollectionAutreChp;
172
	private TextField<String> opRestauAutreChp;
173
	private TextField<String> autreMaterielAutreChp;
174
	private TextField<String> poisonTraitementAutreChp;
175
	private TextField<String> traitementAutreChp;
176
	private TextField<String> insecteTraitementAutreChp;
177
	private TextField<String> actionAutreChp;
178
	private TextField<String> provenanceRechercheAutreChp;
179
	private TextField<String> typeRecherche;
180
	private RadioGroup futureActionMarkRGrpChp;
181
	private RadioGroup rechercheMarkRGrpChp;
182
	private RadioGroup sansMotifAccesMarkRGrpChp;
183
	private RadioGroup avecMotifAccesMarkRGrpChp;
184
	private TextField<String> publicationChp;
185
	private ContentPanel materielConservationCp;
91 jpm 186
 
69 jpm 187
	public FormStructureVue() {
100 jpm 188
		//+-----------------------------------------------------------------------------------------------------------+
189
		// Initialisation de variables
115 jpm 190
		i18nC = GWT.create(Constantes.class);
69 jpm 191
		setLayout(new FitLayout());
119 jpm 192
		modele = Registry.get(RegistreId.MODELE);
193
		mediateur = Registry.get(RegistreId.MEDIATEUR);
194
 
100 jpm 195
		//+-----------------------------------------------------------------------------------------------------------+
110 jpm 196
		// Création du panneau du FORMULAIRE GÉNÉRAL
119 jpm 197
		structureFormPanneau = new FormPanel();
198
		structureFormPanneau.setFrame(true);
199
		structureFormPanneau.setIconStyle("icone-form-ajouter");
200
		structureFormPanneau.setCollapsible(false);
156 jp_milcent 201
		structureFormPanneau.setHeading(i18nC.titreAjoutFormStructurePanneau());
119 jpm 202
		structureFormPanneau.setButtonAlign(HorizontalAlignment.CENTER);
203
		structureFormPanneau.setLayout(new FlowLayout());
100 jpm 204
 
110 jpm 205
		//+-----------------------------------------------------------------------------------------------------------+
100 jpm 206
		// Création des onglets
102 jpm 207
		TabPanel onglets = new TabPanel();
110 jpm 208
		// NOTE : pour faire apparaître les scrollBar il faut définir la hauteur du panneau d'onglets à 100% (autoHeight ne semble pas fonctionner)
209
		onglets.setHeight("100%");
69 jpm 210
 
100 jpm 211
		//+-----------------------------------------------------------------------------------------------------------+
212
		// Onlget formulaire IDENTIFICATION
110 jpm 213
		onglets.add(creerOngletIdentification());
69 jpm 214
 
100 jpm 215
		//+-----------------------------------------------------------------------------------------------------------+
216
		// Onlget formulaire PERSONNEL
103 jpm 217
		onglets.add(creerOngletPersonnel());
91 jpm 218
 
100 jpm 219
		//+-----------------------------------------------------------------------------------------------------------+
220
		// Onlget formulaire CONSERVATION
108 jpm 221
		onglets.add(creerOngletConservation());
100 jpm 222
 
223
		//+-----------------------------------------------------------------------------------------------------------+
224
		// Onlget formulaire VALORISATION
111 jpm 225
		onglets.add(creerOngletValorisation());
100 jpm 226
 
227
		//+-----------------------------------------------------------------------------------------------------------+
228
		// Gestion du FORMULAIRE GÉNÉRAL
229
 
119 jpm 230
		// Sélection de l'onglet par défaut
188 jp_milcent 231
		onglets.setSelection(conservationOnglet);
119 jpm 232
		// Ajout des onglets au formulaire général
233
		structureFormPanneau.add(onglets);
69 jpm 234
 
235
		// Ajout des boutons au panneau formulaire
236
		Button annulerBtn = new Button("Annuler");
172 jp_milcent 237
		annulerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
238
 
239
			@Override
240
			public void componentSelected(ComponentEvent ce) {
241
				mediateur.clicMenu("Institutions");
242
			}
243
 
244
		});
119 jpm 245
		structureFormPanneau.addButton(annulerBtn);
69 jpm 246
		Button validerBtn = new Button("Valider");
119 jpm 247
		validerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
248
 
249
			@Override
250
			public void componentSelected(ComponentEvent ce) {
251
				soumettreFormulaire();
252
			}
253
 
254
		});
255
		structureFormPanneau.addButton(validerBtn);
69 jpm 256
 
257
		// Ajout du panneau Formulaire à la disposition générale
119 jpm 258
		add(structureFormPanneau);
69 jpm 259
	}
108 jpm 260
 
119 jpm 261
	private void soumettreFormulaire() {
262
		GWT.log("Soumission du formulaire", null);
188 jp_milcent 263
		Structure structure = collecterDonneesIdentification();
264
		StructureConservation conservation = collecterDonneesConservation();
156 jp_milcent 265
		if (mode == "AJOUT") {
164 jp_milcent 266
			//mediateur.ajouterStructure(this, structure);
156 jp_milcent 267
		} else if (mode == "MODIF") {
188 jp_milcent 268
			mediateur.modifierStructure(this, structure, conservation);
156 jp_milcent 269
		}
188 jp_milcent 270
		//GWT.log("Info Structure envoyées :\n"+structure.toString(), null);
119 jpm 271
	}
272
 
188 jp_milcent 273
	private StructureConservation collecterDonneesConservation() {
274
		// Création de l'objet
275
		StructureConservation conservation = new StructureConservation();
276
 
277
		if (formationMarkRGrpChp.getValue() != null) {
278
			conservation.setFormationMark(formationMarkRGrpChp.getValue().getValueAttribute());
279
		}
280
		conservation.setFormation(formationChp.getValue());
281
		if (interetFormationMarkRGrpChp.getValue() != null) {
282
			conservation.setFormationInteret(interetFormationMarkRGrpChp.getValue().getValueAttribute());
283
		}
284
		conservation.setStockageLocal(creerTruk(localStockageTrukCacGrpChp.getValues()));
285
		if (localStockageAutreChp.getValue() != null) {
286
			conservation.setStockageLocal("AUTRE", localStockageAutreChp.getValue());
287
		}
288
 
289
		// Retour de l'objet
290
		GWT.log(conservation.toString(), null);
291
		return conservation;
292
	}
293
 
294
	private void peuplerStructureConservation(StructureConservation strCons) {
295
		Radio radioBtn = new Radio();
296
		radioBtn.setId(strCons.getFormationMark()+"_"+formationMarkRGrpChp.getName());
297
		formationMarkRGrpChp.get(formationMarkRGrpChp.getAll().indexOf(radioBtn)).setValue((strCons.getFormationMark().equals("1") ? true : false));
298
 
299
	}
300
 
301
	private Structure collecterDonneesIdentification() {
302
		// IDENTIFICATION
119 jpm 303
		Structure structure = new Structure();
172 jp_milcent 304
		structure.setId(idStructureChp.getValue());
119 jpm 305
		structure.setNom(nomStructureChp.getValue());
164 jp_milcent 306
		// Récupération de l'acronyme (= identifiant alternatif)
307
		structure.setIdAlternatif(null);
308
		if (comboAcronyme.getValue() != null) {
309
			String typeAcronyme = comboAcronyme.getValue().getAbr();
310
			GWT.log("Acronyme : "+typeAcronyme, null);
311
			if (typeAcronyme == "IH") {
312
				structure.setIdAlternatif(typeAcronyme+"##"+ihChp.getValue());
313
			} else if (typeAcronyme == "MNHN") {
314
				structure.setIdAlternatif(typeAcronyme+"##"+mnhnChp.getValue());
315
			}
316
		}
317
		// Récupération statut de la structure
318
		structure.setTypePublic(null);
319
		structure.setTypePrive(null);
320
		if (comboTypeStructure.getValue() != null) {
321
			String typeStructure = comboTypeStructure.getValue().getAbr();
322
			GWT.log("Statut : "+typeStructure, null);
188 jp_milcent 323
			if (typeStructure == "stpu" && comboLstpu.getValue() != null) {
164 jp_milcent 324
				structure.setTypePublic(comboLstpu.getValue().getId());
188 jp_milcent 325
			} else if (typeStructure == "stpr" && comboLstpr.getValue() != null) {
164 jp_milcent 326
				structure.setTypePrive(comboLstpr.getValue().getId());
327
			}
328
		}
156 jp_milcent 329
		structure.setDateFondation(dateFondationChp.getValue());
164 jp_milcent 330
 
119 jpm 331
		structure.setAdresse(adrChp.getValue());
332
		structure.setCodePostal(cpChp.getValue());
333
		structure.setVille(villeChp.getValue());
334
		structure.setRegion(regionChp.getValue());
164 jp_milcent 335
		structure.setPays(null);
336
		if (comboPays.getValue() != null) {
337
			structure.setPays(comboPays.getValue().getAbreviation());
172 jp_milcent 338
		} else if (comboPays.getRawValue() != "") {
339
			structure.setPays(comboPays.getRawValue());
164 jp_milcent 340
		}
119 jpm 341
 
342
		structure.setTelephone(telChp.getValue());
343
		structure.setFax(faxChp.getValue());
344
		structure.setCourriel(emailChp.getValue());
188 jp_milcent 345
		structure.setUrl(Structure.URL_SITE, urlChp.getValue());
119 jpm 346
 
188 jp_milcent 347
		// CONSERVATION
348
 
156 jp_milcent 349
		return structure;
119 jpm 350
	}
351
 
188 jp_milcent 352
	private void peuplerStructure(Structure str) {
172 jp_milcent 353
		idStructureChp.setValue(str.getId());
156 jp_milcent 354
		nomStructureChp.setValue(str.getNom());
188 jp_milcent 355
		if (!str.getIdAlternatif().isEmpty()) {
356
			String[] acronyme = str.getIdAlternatif().split("##");
357
			if (acronyme[0].matches("^IH$")) {
358
				comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeIH());
359
				ihChp.setValue(acronyme[1]);
360
			} else if (acronyme[0].matches("^MNHN$")) {
361
				comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeMNHN());
362
				mnhnChp.setValue(acronyme[1]);
363
			}
364
		}
172 jp_milcent 365
		if (!str.getTypePrive().isEmpty()) {
366
			if (str.getTypePrive().matches("^[0-9]+$")) {
367
				comboTypeStructure.setValue(InterneValeurListe.getTypePrivee());
368
				comboLstpr.setValue(comboLstpr.getStore().findModel("id_valeur", str.getTypePrive()));
369
			}
370
		} else if (!str.getTypePublic().isEmpty()) {
371
			if (str.getTypePublic().matches("^[0-9]+$")) {
372
				comboTypeStructure.setValue(InterneValeurListe.getTypePublique());
373
				comboLstpu.setValue(comboLstpu.getStore().findModel("id_valeur", str.getTypePublic()));
374
			}
375
		}
156 jp_milcent 376
		dateFondationChp.setValue(str.getDateFondation());
377
 
378
		adrChp.setValue(str.getAdresse());
379
		cpChp.setValue(str.getCodePostal());
188 jp_milcent 380
		GWT.log("Classe :"+this.getClass(), null);
156 jp_milcent 381
		villeChp.setValue(str.getVille());
382
		regionChp.setValue(str.getRegion());
172 jp_milcent 383
		if (str.getPays().matches("^[A-Z]{2}$")) {
384
			comboPays.setValue(comboPays.getStore().findModel("abreviation", str.getPays()));
385
		} else {
386
			comboPays.setRawValue(str.getPays());
387
		}
156 jp_milcent 388
 
389
		telChp.setValue(str.getTelephone());
390
		faxChp.setValue(str.getFax());
391
		emailChp.setValue(str.getCourriel());
164 jp_milcent 392
		urlChp.setValue(str.getUrl("WEB"));
156 jp_milcent 393
	}
188 jp_milcent 394
 
395
	private String creerTruk(List<CheckBox> liste) {
396
		String identifiants = "";
397
		int taille = liste.size();
398
		for (int i = 0; i < taille; i++) {
399
			CheckBox cac = liste.get(i);
400
			if (cac.isEnabled()) {
401
				identifiants = identifiants.concat(";"+cac.getData("id"));
402
			}
403
		}
404
		return identifiants.replaceFirst("^;", "");
405
	}
156 jp_milcent 406
 
111 jpm 407
	private TabItem creerOngletValorisation() {
408
		valorisationOnglet = new TabItem();
409
		valorisationOnglet.setText("Valorisation");
410
		valorisationOnglet.setScrollMode(Scroll.AUTO);
411
		valorisationOnglet.setLayout(creerFormLayout(650, LabelAlign.TOP, null));
412
 
119 jpm 413
		actionMarkRGrpChp = creerChoixUniqueRadioGroupe("action_mark", "ouiNon");
111 jpm 414
		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 ?");
415
		valorisationOnglet.add(actionMarkRGrpChp);
416
 
119 jpm 417
 
111 jpm 418
		actionTrukCp = creerChoixMultipleCp("actionValorisation");
419
		actionTrukCp.hide();
115 jpm 420
		actionTrukCacGrpChp = new CheckBoxGroup();
421
		actionTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?");
111 jpm 422
		valorisationOnglet.add(actionTrukCp);
423
 
188 jp_milcent 424
		publicationChp = new TextField<String>();
111 jpm 425
		publicationChp.setFieldLabel("Quelques titres des ouvrages, articles scientifiques, ...");
426
		valorisationOnglet.add(publicationChp);
427
 
428
		autreCollectionTrukCp = creerChoixMultipleCp("autreCollection");
119 jpm 429
		autreCollectionTrukCacGrpChp = new CheckBoxGroup();
430
		autreCollectionTrukCacGrpChp.setFieldLabel("L'organisme dispose-t-il d'autres collections (permettant une valorisation pluridisciplinaire) ?");
111 jpm 431
		valorisationOnglet.add(autreCollectionTrukCp);
432
 
188 jp_milcent 433
		futureActionMarkRGrpChp = creerChoixUniqueRadioGroupe("future_action_mark", "ouiNon");
111 jpm 434
		futureActionMarkRGrpChp.setFieldLabel("Envisagez vous des actions de valorisation dans le cadre de votre politique culturelle ?");
435
		valorisationOnglet.add(futureActionMarkRGrpChp);
436
 
437
		futureActionChp = new TextField<String>();
438
		futureActionChp.setFieldLabel("Si oui, lesquelles ?");
439
		futureActionChp.hide();
440
		valorisationOnglet.add(futureActionChp);
441
 
188 jp_milcent 442
		rechercheMarkRGrpChp = creerChoixUniqueRadioGroupe("recherche_mark", "ouiNon");
111 jpm 443
		rechercheMarkRGrpChp.setFieldLabel("Vos collections botaniques sont-elles utilisées pour des recherches scientifiques ?");
444
		valorisationOnglet.add(rechercheMarkRGrpChp);
445
 
446
		provenanceRechercheTrukCp = creerChoixMultipleCp("continentEtFr");
447
		provenanceRechercheTrukCp.hide();
115 jpm 448
		provenanceRechercheTrukCacGrpChp = new CheckBoxGroup();
449
		provenanceRechercheTrukCacGrpChp.setFieldLabel("Si oui, par des chercheurs (professionnels ou amateurs) de quelle provenance ?");
111 jpm 450
		valorisationOnglet.add(provenanceRechercheTrukCp);
451
 
119 jpm 452
		typeRechercheTrukCp = creerChoixMultipleCp("typeRecherche");
453
		typeRechercheTrukCp.hide();
115 jpm 454
		typeRechercheTrukCacGrpChp = new CheckBoxGroup();
455
		typeRechercheTrukCacGrpChp.setFieldLabel("Et pour quelles recherches ?");
119 jpm 456
		valorisationOnglet.add(typeRechercheTrukCp);
111 jpm 457
 
188 jp_milcent 458
		sansMotifAccesMarkRGrpChp = creerChoixUniqueRadioGroupe("sans_motif_acces_mark", "ouiNon");
111 jpm 459
		sansMotifAccesMarkRGrpChp.setFieldLabel("Peut-on consulter vos collections botaniques sans motif de recherches scientifiques ?");
460
		valorisationOnglet.add(sansMotifAccesMarkRGrpChp);
461
 
462
		sansMotifAccesChp = new TextField<String>();
463
		sansMotifAccesChp.hide();
464
		sansMotifAccesChp.setFieldLabel("Si oui, quelles démarches doit-on faire pour les consulter ?");
465
		valorisationOnglet.add(sansMotifAccesChp);
466
 
188 jp_milcent 467
		avecMotifAccesMarkRGrpChp = creerChoixUniqueRadioGroupe("avec_motif_acces_mark", "ouiNon");
111 jpm 468
		avecMotifAccesMarkRGrpChp.setFieldLabel("Peut-on visiter vos collections botaniques avec des objectifs de recherches scientifiques ?");
469
		valorisationOnglet.add(avecMotifAccesMarkRGrpChp);
470
 
115 jpm 471
		valorisationOnglet.add(avecMotifAccesChp = new TextField<String>());
111 jpm 472
		avecMotifAccesChp.hide();
473
		avecMotifAccesChp.setFieldLabel("Si oui, quelles démarches doit-on faire pour les visiter ?");
474
 
475
		return valorisationOnglet;
476
	}
477
 
108 jpm 478
	private TabItem creerOngletConservation() {
479
		conservationOnglet = new TabItem();
480
		conservationOnglet.setText("Conservation");
110 jpm 481
		conservationOnglet.setScrollMode(Scroll.AUTO);
108 jpm 482
		conservationOnglet.setLayout(creerFormLayout(650, LabelAlign.TOP, null));
483
 
188 jp_milcent 484
		formationMarkRGrpChp = creerChoixUniqueRadioGroupe("formation_mark", "ouiNon");
485
		formationMarkRGrpChp.setFieldLabel("Le personnel s'occupant des collections a-t-il suivi des formations en conservations ?");
486
		conservationOnglet.add(formationMarkRGrpChp);
108 jpm 487
 
111 jpm 488
		formationChp = new TextField<String>();
489
		formationChp.hide();
490
		formationChp.setFieldLabel("Si oui, lesquelles ?");
108 jpm 491
		conservationOnglet.add(formationChp);
492
 
188 jp_milcent 493
		interetFormationMarkRGrpChp = creerChoixUniqueRadioGroupe("interet_formation_mark", "ouiNon");
494
		interetFormationMarkRGrpChp.setFieldLabel("Seriez vous intéressé par une formation à la conservation et à la restauration d'herbier ?");
495
		conservationOnglet.add(interetFormationMarkRGrpChp);
108 jpm 496
 
115 jpm 497
		localStockageTrukCp = creerChoixMultipleCp("localStockage");
498
		localStockageTrukCacGrpChp = new CheckBoxGroup();
499
		localStockageTrukCacGrpChp.setFieldLabel("Avez vous des locaux spécifiques de stockage des collections botaniques ?");
500
		conservationOnglet.add(localStockageTrukCp);
108 jpm 501
 
115 jpm 502
		meubleStockageTrukCp = creerChoixMultipleCp("meubleStockage");
503
		meubleStockageTrukCacGrpChp = new CheckBoxGroup();
504
		meubleStockageTrukCacGrpChp.setFieldLabel("Avez vous des meubles spécifiques au stockage des collections botaniques ?");
505
		conservationOnglet.add(meubleStockageTrukCp);
108 jpm 506
 
115 jpm 507
		parametreStockageTrukCp = creerChoixMultipleCp("parametreStockage");
508
		parametreStockageTrukCacGrpChp = new CheckBoxGroup();
509
		parametreStockageTrukCacGrpChp.setFieldLabel("Quels paramètres maîtrisez vous ?");
510
		conservationOnglet.add(parametreStockageTrukCp);
109 jpm 511
 
188 jp_milcent 512
		collectionCommuneMarkRGrpChp = creerChoixUniqueRadioGroupe("collection_commune_mark", "ouiNon");
111 jpm 513
		collectionCommuneMarkRGrpChp.setFieldLabel("Les collections botaniques sont-elles conservées avec d'autres collections  dans les mêmes locaux (problème de conservation en commun) ?");
514
		conservationOnglet.add(collectionCommuneMarkRGrpChp);
109 jpm 515
 
111 jpm 516
		collectionAutreTrukCp = creerChoixMultipleCp("autreCollection");
115 jpm 517
		collectionAutreTrukCacGrpChp = new CheckBoxGroup();
518
		collectionAutreTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?");
111 jpm 519
		collectionAutreTrukCp.hide();
520
		conservationOnglet.add(collectionAutreTrukCp);
110 jpm 521
 
188 jp_milcent 522
		accesControleMarkRGrpChp = creerChoixUniqueRadioGroupe("mark_acces_controle", "ouiNon");
115 jpm 523
		accesControleMarkRGrpChp.setFieldLabel("L'accès à vos collections botanique est-il contrôlé (ex. : manipulation réservées à des personnes compétentes) ?");
524
		conservationOnglet.add(accesControleMarkRGrpChp);
110 jpm 525
 
188 jp_milcent 526
		restaurationMarkRGrpChp = creerChoixUniqueRadioGroupe("restauration_mark", "ouiNon");
115 jpm 527
		restaurationMarkRGrpChp.setFieldLabel("Effectuez vous des opérations de restauration ou de remise en état de vos collections botaniques ?");
528
		conservationOnglet.add(restaurationMarkRGrpChp);
110 jpm 529
 
111 jpm 530
		opRestauTrukCp = creerChoixMultipleCp("opRestau");
115 jpm 531
		opRestauTrukCacGrpChp = new CheckBoxGroup();
532
		opRestauTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?");
111 jpm 533
		opRestauTrukCp.hide();
534
		conservationOnglet.add(opRestauTrukCp);
110 jpm 535
 
188 jp_milcent 536
		// Création d'un ContentPanel vide et du groupe de bouton radio
537
		// 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
538
		materielConservationCp = creerChoixMultipleCp("onep");
539
		conservationOnglet.add(materielConservationCp);
115 jpm 540
		materielConservationCeRGrpChp = creerChoixUniqueRadioGroupe("materiel_conservation_ce", "onep");
541
		materielConservationCeRGrpChp.setFieldLabel("Utilisez vous du matériel de conservation ?");
542
		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 543
 
115 jpm 544
		autreMaterielTrukCp = creerChoixMultipleCp("autreMateriel");
545
		autreMaterielTrukCp.hide();
546
		autreMaterielTrukCacGrpChp = new CheckBoxGroup();
547
		autreMaterielTrukCacGrpChp.setFieldLabel("Si non, qu'utilisez vous comme matériel ?");
548
		conservationOnglet.add(autreMaterielTrukCp);
110 jpm 549
 
188 jp_milcent 550
		traitementMarkRGrpChp = creerChoixUniqueRadioGroupe("traitement_mark", "ouiNon");
551
		traitementMarkRGrpChp.setFieldLabel("Réalisez vous actuellement des traitements globaux contre les insectes ?");
552
		conservationOnglet.add(traitementMarkRGrpChp);
110 jpm 553
 
111 jpm 554
		traitementTrukCp = creerChoixMultipleCp("insecteTraitement");
115 jpm 555
		traitementTrukCp.hide();
556
		traitementTrukCacGrpChp = new CheckBoxGroup();
557
		traitementTrukCacGrpChp.setFieldLabel("Si oui, lesquels ?");
111 jpm 558
		conservationOnglet.add(traitementTrukCp);
110 jpm 559
 
188 jp_milcent 560
		collectionAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("collection_acquisition_mark", "ouiNon");
561
		collectionAcquisitionMarkRGrpChp.setFieldLabel("Actuellement, vos collections botaniques s'accroissent-elles de nouvelles acquisitions ?");
562
		conservationOnglet.add(collectionAcquisitionMarkRGrpChp);
110 jpm 563
 
188 jp_milcent 564
		echantillonAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("echantillon_acquisition_mark", "ouiNon");
565
		echantillonAcquisitionMarkRGrpChp.setFieldLabel("Actuellement, mettez vous en herbier de nouveaux échantillons ?");
566
		conservationOnglet.add(echantillonAcquisitionMarkRGrpChp);
110 jpm 567
 
115 jpm 568
		traitementAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("traitement_acquisition_mark", "ouiNon");
569
		traitementAcquisitionMarkRGrpChp.hide();
570
		traitementAcquisitionMarkRGrpChp.setFieldLabel("Si oui, faites-vous un traitement contre les insectes avant l'intégration dans vos collections ?");
571
		conservationOnglet.add(traitementAcquisitionMarkRGrpChp);
110 jpm 572
 
115 jpm 573
		traitementAcquisitionMarkLabel = new LabelField();
574
		traitementAcquisitionMarkLabel.hide();
575
		traitementAcquisitionMarkLabel.setFieldLabel("Si oui, lesquels ?");
576
		conservationOnglet.add(traitementAcquisitionMarkLabel);
110 jpm 577
 
115 jpm 578
		poisonTraitementTrukCp = creerChoixMultipleCp("poisonTraitement");
579
		poisonTraitementTrukCp.hide();
580
		poisonTraitementTrukCacGrpChp = new CheckBoxGroup();
581
		poisonTraitementTrukCacGrpChp.setFieldLabel("Empoisonnement");
582
		poisonTraitementTrukCacGrpChp.setLabelStyle("font-weight:normal;text-decoration:underline;");
583
		poisonTraitementTrukCacGrpChp.setLabelSeparator("");
584
		conservationOnglet.add(poisonTraitementTrukCp);
110 jpm 585
 
111 jpm 586
		insecteTraitementTrukCp = creerChoixMultipleCp("insecteTraitement");
115 jpm 587
		insecteTraitementTrukCp.hide();
588
		insecteTraitementTrukCacGrpChp = new CheckBoxGroup();
589
		insecteTraitementTrukCacGrpChp.setLabelStyle("font-weight:normal;text-decoration:underline;");
590
		insecteTraitementTrukCacGrpChp.setLabelSeparator("");
591
		insecteTraitementTrukCacGrpChp.setFieldLabel("Désinsectisation");
111 jpm 592
		conservationOnglet.add(insecteTraitementTrukCp);
110 jpm 593
 
108 jpm 594
		return conservationOnglet;
595
	}
596
 
103 jpm 597
	private TabItem creerOngletPersonnel() {
108 jpm 598
		personnelOnglet = new TabItem();
103 jpm 599
		personnelOnglet.setText("Personnel");
110 jpm 600
		personnelOnglet.setScrollMode(Scroll.AUTO);
601
		personnelOnglet.setLayout(creerFormLayout(400, LabelAlign.LEFT, null));
103 jpm 602
 
188 jp_milcent 603
		nbreTotalPersonneStructureChp = new NumberField();
103 jpm 604
		nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personne travaillant dans l'institution");
605
		nbreTotalPersonneStructureChp.setFormat(NumberFormat.getFormat("#"));
606
		nbreTotalPersonneStructureChp.setToolTip("Ce champ doit contenir un nombre");
607
		personnelOnglet.add(nbreTotalPersonneStructureChp);
608
 
609
		personnelOnglet.add(this.creerGrillePersonnel());
610
 
611
		nbreTotalPersonnelChp = new LabelField();
612
		nbreTotalPersonnelChp.setFieldLabel("Nombre de personne travaillant sur les collections");
613
		nbreTotalPersonnelChp.setLabelSeparator(":");
614
		nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
615
		personnelOnglet.add(nbreTotalPersonnelChp);
616
 
617
		return personnelOnglet;
618
	}
619
 
102 jpm 620
	private ContentPanel creerGrillePersonnel() {
103 jpm 621
 
102 jpm 622
		List<Personne> personnes = new ArrayList<Personne>();
623
		personnes.add(new Personne(Valeur.FONCTION_DIRECTEUR));
624
		personnes.add(new Personne(Valeur.FONCTION_CONSERVATEUR));
625
 
103 jpm 626
		personnelGrilleMagazin = new ListStore<Personne>();
627
		personnelGrilleMagazin.add(personnes);
628
 
102 jpm 629
		List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
630
 
631
		CheckBoxSelectionModel<Personne> sm = new CheckBoxSelectionModel<Personne>();
632
		configs.add(sm.getColumn());
103 jpm 633
 
634
		ColumnConfig column = new ColumnConfig("ce_truk_fonction", "Fonction", 100);
119 jpm 635
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("fonction"));
103 jpm 636
		magazinLiFonction = new ListStore<Valeur>();
637
		magazinLiFonction.add(new ArrayList<Valeur>());
638
 
639
		comboLiFonction = new ComboBox<Valeur>();
640
		comboLiFonction.setTriggerAction(TriggerAction.ALL);
641
		comboLiFonction.setEditable(true);
642
		comboLiFonction.setDisplayField("nom");
643
		//comboLiStatut.setEmptyText("Sélectionez une fonction...");
644
		comboLiFonction.setStore(magazinLiFonction);
645
 
646
		CellEditor fonctionEditor = new CellEditor(comboLiFonction) {
647
			@Override
648
			public Object preProcessValue(Object value) {
649
				if (value == null) {
650
					return value;
651
				}
652
				//GWT.log("pre : "+value.toString(), null);
653
				return comboLiFonction.getStore().findModel("nom", (String) value);
654
			}
655
 
656
			@Override
657
			public Object postProcessValue(Object value) {
658
				if (value == null) {
659
					return value;
660
				}
661
				//GWT.log("post : "+value.toString(), null);
662
				return ((Valeur) value).get("nom");
663
			}
664
		};
665
		column.setEditor(fonctionEditor);
102 jpm 666
		configs.add(column);
667
 
668
		column = new ColumnConfig();
669
		column.setId("prenom");
103 jpm 670
		column.setHeader("Prénom");
671
		column.setWidth(100);
672
		TextField<String> prenomChp = new TextField<String>();
673
		prenomChp.setAllowBlank(false);
674
		prenomChp.getMessages().setBlankText("Ce champ est obligatoire.");
675
		prenomChp.setAutoValidate(true);
676
		column.setEditor(new CellEditor(prenomChp));
102 jpm 677
		configs.add(column);
678
 
679
		column = new ColumnConfig();
680
		column.setId("nom");
681
		column.setHeader("Nom");
103 jpm 682
		column.setWidth(100);
683
		TextField<String> nomChp = new TextField<String>();
684
		nomChp.setAllowBlank(false);
685
		nomChp.getMessages().setBlankText("Ce champ est obligatoire.");
686
		nomChp.setAutoValidate(true);
687
		column.setEditor(new CellEditor(nomChp));
102 jpm 688
		configs.add(column);
689
 
103 jpm 690
		column = new ColumnConfig("tel", "Téléphone", 100);
691
		TextField<String> telChp = new TextField<String>();
692
		column.setEditor(new CellEditor(telChp));
102 jpm 693
		configs.add(column);
694
 
695
		column = new ColumnConfig("fax", "Fax", 100);
103 jpm 696
		TextField<String> faxChp = new TextField<String>();
697
		column.setEditor(new CellEditor(faxChp));
102 jpm 698
		configs.add(column);
699
 
103 jpm 700
		column = new ColumnConfig("courriel", "Courriel", 100);
701
		TextField<String> emailChp = new TextField<String>();
702
		column.setEditor(new CellEditor(emailChp));
102 jpm 703
		configs.add(column);
704
 
119 jpm 705
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("statut"));
103 jpm 706
		magazinLiStatut = new ListStore<Valeur>();
707
		magazinLiStatut.add(new ArrayList<Valeur>());
708
 
709
		comboLiStatut = new ComboBox<Valeur>();
710
		comboLiStatut.setTriggerAction(TriggerAction.ALL);
711
		comboLiStatut.setEditable(false);
712
		comboLiStatut.setDisplayField("nom");
713
		comboLiStatut.setEmptyText("Sélectionez un statut...");
714
		comboLiStatut.setStore(magazinLiStatut);
715
 
716
		CellEditor statutEditor = new CellEditor(comboLiStatut) {
717
			@Override
718
			public Object preProcessValue(Object value) {
719
				if (value == null) {
720
					return value;
721
				}
722
				//GWT.log("pre : "+value.toString(), null);
723
				return comboLiStatut.getStore().findModel("nom", (String) value);
724
			}
725
 
726
			@Override
727
			public Object postProcessValue(Object value) {
728
				if (value == null) {
729
					return value;
730
				}
731
				//GWT.log("post : "+value.toString(), null);
732
				return ((Valeur) value).get("nom");
733
			}
734
		};
735
		column = new ColumnConfig("statut", "Statut", 100);
736
		column.setEditor(statutEditor);
102 jpm 737
		configs.add(column);
738
 
103 jpm 739
		column = new ColumnConfig("tps_w", "Temps travail", 100);
740
		column.setNumberFormat(NumberFormat.getFormat("##"));
741
		NumberField tpsWChp = new NumberField();
742
		tpsWChp.setFormat(NumberFormat.getFormat("##"));
743
		tpsWChp.setToolTip("Ce champ doit contenir un nombre");
744
		column.setEditor(new CellEditor(tpsWChp));
745
		configs.add(column);
746
 
747
		column = new ColumnConfig("specialites", "Spécialités botaniques", 150);
748
		TextField<String> speChp = new TextField<String>();
749
		column.setEditor(new CellEditor(speChp));
750
		configs.add(column);
751
 
752
		CheckColumnConfig checkColumn = new CheckColumnConfig("mark_contact", "Contact ?", 60);
102 jpm 753
		configs.add(checkColumn);
754
 
755
		ContentPanel cp = new ContentPanel();
756
		cp.setHeading("Personnes travaillant sur les collections");
110 jpm 757
		cp.setIconStyle("icone-table");
758
		cp.setScrollMode(Scroll.AUTO);
103 jpm 759
		cp.setLayout(new FitLayout());
110 jpm 760
		cp.setSize(1100, 200);
102 jpm 761
		cp.setFrame(true);
762
 
763
		ToolBar toolBar = new ToolBar();
103 jpm 764
 
765
		TextToolItem ajouterPersonnelBtn = new TextToolItem("Ajouter", "icone-vcard-ajouter");
766
		ajouterPersonnelBtn.addSelectionListener(new SelectionListener<ToolBarEvent>() {
767
			@Override
768
			public void componentSelected(ToolBarEvent ce) {
769
				Personne personne = new Personne();
770
				grillePersonnel.stopEditing();
771
				personnelGrilleMagazin.insert(personne, 0);
772
				grillePersonnel.startEditing(0, 0);
773
				// Mise à jour du nombre de personnel travaillant sur les collections
774
				nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
775
				// Activation du bouton supprimer si la grille contient un élément
776
				if (grillePersonnel.getStore().getCount() > 0) {
777
					ce.component.enable();
778
				}
779
			}
780
		});
781
		toolBar.add(ajouterPersonnelBtn);
782
		toolBar.add(new SeparatorToolItem());
783
		TextToolItem supprimerPersonnelBtn = new TextToolItem("Supprimer", "icone-vcard-supprimer");
784
		supprimerPersonnelBtn.addSelectionListener(new SelectionListener<ToolBarEvent>() {
785
			@Override
786
			public void componentSelected(ToolBarEvent ce) {
787
				grillePersonnel.getStore().remove(grillePersonnel.getStore().getAt(0));
788
				// Mise à jour du nombre de personnel travaillant sur les collections
789
				nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
790
				// Désactivation du bouton supprimer si la grille contient plus d'élément
791
				if (grillePersonnel.getStore().getCount() == 0) {
792
					ce.item.disable();
793
				}
794
			}
795
		});
796
		toolBar.add(supprimerPersonnelBtn);
102 jpm 797
		cp.setTopComponent(toolBar);
798
 
799
		ColumnModel cm = new ColumnModel(configs);
800
 
103 jpm 801
		grillePersonnel = new EditorGrid<Personne>(personnelGrilleMagazin, cm);
802
		grillePersonnel.setBorders(true);
803
		grillePersonnel.setSelectionModel(sm);
804
		grillePersonnel.addPlugin(sm);
805
		grillePersonnel.addPlugin(checkColumn);
110 jpm 806
  		grillePersonnel.setAutoExpandColumn("specialites");
102 jpm 807
 
103 jpm 808
		cp.add(grillePersonnel);
102 jpm 809
		return cp;
810
	}
811
 
110 jpm 812
	private TabItem creerOngletIdentification() {
813
		//+-----------------------------------------------------------------------------------------------------------+
814
		// Onlget formulaire IDENTIFICATION
815
		TabItem identificationOnglet = new TabItem();
816
		identificationOnglet.setText("Identification");
817
		identificationOnglet.setLayout(new FormLayout());
818
 
819
		//+-----------------------------------------------------------------------------------------------------------+
172 jp_milcent 820
		// Champs cachés
821
		idStructureChp = new HiddenField<String>();
822
 
823
		//+-----------------------------------------------------------------------------------------------------------+
110 jpm 824
		// Fieldset IDENTITÉ
825
		FieldSet fieldSetIdentite = new FieldSet();
826
		fieldSetIdentite.setHeading("Identité");
827
		fieldSetIdentite.setCollapsible(true);
828
		fieldSetIdentite.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
829
 
119 jpm 830
		nomStructureChp = new TextField<String>();
133 jpm 831
		nomStructureChp.setTabIndex(100);
110 jpm 832
		nomStructureChp.setFieldLabel("Nom de la structure");
833
		nomStructureChp.setAllowBlank(false);
834
		nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire.");
835
		fieldSetIdentite.add(nomStructureChp, new FormData(450, 0));
836
 
837
		// Création du sous-formulaire : Acronyme
838
		LayoutContainer ligne = new LayoutContainer();
839
		ligne.setLayout(new ColumnLayout());
840
		LayoutContainer gauche = new LayoutContainer();
841
		gauche.setLayout(creerFormLayout(200, LabelAlign.LEFT, 0));
842
		LayoutContainer droite = new LayoutContainer();
843
		droite.setLayout(creerFormLayout(0, null, 0));
844
 
845
		ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>();
846
		acronymes.add(InterneValeurListe.getTypeAcronyme());
847
 
133 jpm 848
		comboAcronyme = new ComboBox<InterneValeur>();
849
		comboAcronyme.setTabIndex(101);
110 jpm 850
		comboAcronyme.setEmptyText("Sélectioner un type d'acronyme...");
851
		comboAcronyme.setFieldLabel("Acronymes");
852
		comboAcronyme.setDisplayField("nom");
853
		comboAcronyme.setStore(acronymes);
854
		comboAcronyme.setEditable(false);
855
		comboAcronyme.setTypeAhead(true);
856
		comboAcronyme.setTriggerAction(TriggerAction.ALL);
857
		comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
858
			@Override
859
			public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
860
				String acronymeAbr = se.getSelectedItem().getAbr();
861
				if (acronymeAbr.equals("IH")) {
862
					mnhnChp.hide();
863
					ihChp.show();
864
				} else if (acronymeAbr.equals("MNHN")) {
865
					ihChp.hide();
866
					mnhnChp.show();
867
				} else if (acronymeAbr.equals("")) {
868
					ihChp.hide();
869
					mnhnChp.hide();
870
					comboAcronyme.clearSelections();
871
				}
872
			}
873
        });
874
		gauche.add(comboAcronyme);
875
 
876
		ihChp = new TextField<String>();
877
		//ihChp.setEmptyText("Index Herbariorum");
133 jpm 878
		ihChp.setTabIndex(102);
110 jpm 879
		ihChp.setLabelSeparator("");
880
		ihChp.setToolTip("Index Herbariorum : herbier de plus de 5000 échantillons");
881
		ihChp.hide();
882
		droite.add(ihChp);
883
 
133 jpm 884
		mnhnChp = new TextField<String>();
885
		mnhnChp.setTabIndex(103);
110 jpm 886
		//mnhnChp.setEmptyText("MNHN");
887
		mnhnChp.setLabelSeparator("");
888
		mnhnChp.setToolTip("Acronyme MNHN : herbier de moins de 5000 échantillons");
889
		mnhnChp.hide();
890
		droite.add(mnhnChp);
891
 
892
		ligne.add(gauche, new ColumnData(0.5));
893
		ligne.add(droite, new ColumnData(0.5));
894
		fieldSetIdentite.add(ligne);
895
 
896
		// Création du sous-formulaire : Type de Structure
897
		LayoutContainer ligneTs = new LayoutContainer();
898
		ligneTs.setLayout(new ColumnLayout());
899
 
900
		LayoutContainer gaucheTs = new LayoutContainer();
901
		gaucheTs.setLayout(creerFormLayout(200, LabelAlign.LEFT, 0));
902
 
903
		LayoutContainer droiteTs = new LayoutContainer();
904
		droiteTs.setLayout(creerFormLayout(0, null, 0));
905
 
906
		ListStore<InterneValeur> typesStructure = new ListStore<InterneValeur>();
907
		typesStructure.add(InterneValeurListe.getTypeStructure());
908
 
133 jpm 909
		comboTypeStructure = new ComboBox<InterneValeur>();
910
		comboTypeStructure.setTabIndex(104);
110 jpm 911
		comboTypeStructure.setEmptyText("Sélectioner un type de structure...");
912
		comboTypeStructure.setFieldLabel("Statut des structures");
913
		comboTypeStructure.setDisplayField("nom");
914
		comboTypeStructure.setStore(typesStructure);
915
		comboTypeStructure.setEditable(false);
916
		comboTypeStructure.setTypeAhead(true);
917
		comboTypeStructure.setTriggerAction(TriggerAction.ALL);
918
		comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
919
			@Override
920
			public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
921
				String typeAbr = se.getSelectedItem().getAbr();
922
				if (typeAbr.equals("stpu")) {
923
					comboLstpr.hide();
924
					comboLstpu.show();
925
				} else if (typeAbr.equals("stpr")) {
926
					comboLstpu.hide();
927
					comboLstpr.show();
928
				} else if (typeAbr.equals("")) {
929
					comboLstpr.hide();
930
					comboLstpu.hide();
931
					comboTypeStructure.clearSelections();
932
				}
933
			}
934
        });
935
		gaucheTs.add(comboTypeStructure);
936
 
119 jpm 937
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
110 jpm 938
		magazinLstpu = new ListStore<Valeur>();
939
		magazinLstpu.add(new ArrayList<Valeur>());
133 jpm 940
		comboLstpu = new ComboBox<Valeur>();
941
		comboLstpu.setTabIndex(105);
110 jpm 942
		//comboLstpu.setFieldLabel("Statut des structures publiques");
943
		comboLstpu.setLabelSeparator("");
944
		comboLstpu.setDisplayField("nom");
945
		comboLstpu.setEditable(false);
946
		comboLstpu.setTriggerAction(TriggerAction.ALL);
947
		comboLstpu.setStore(magazinLstpu);
948
		comboLstpu.hide();
949
		droiteTs.add(comboLstpu);
950
 
119 jpm 951
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
110 jpm 952
		magazinLstpr = new ListStore<Valeur>();
953
		magazinLstpr.add(new ArrayList<Valeur>());
133 jpm 954
		comboLstpr = new ComboBox<Valeur>();
955
		comboLstpr.setTabIndex(106);
110 jpm 956
		//comboLstpr.setFieldLabel("Statut des structures privées");
957
		comboLstpr.setLabelSeparator("");
958
		comboLstpr.setDisplayField("nom");
959
		comboLstpr.setEditable(false);
960
		comboLstpr.setTriggerAction(TriggerAction.ALL);
961
		comboLstpr.setStore(magazinLstpr);
962
		comboLstpr.hide();
963
		droiteTs.add(comboLstpr);
964
 
965
		ligneTs.add(gaucheTs, new ColumnData(0.5));
966
		ligneTs.add(droiteTs, new ColumnData(0.5));
967
		fieldSetIdentite.add(ligneTs);
968
 
119 jpm 969
		dateFondationChp = new DateField();
133 jpm 970
		dateFondationChp.setTabIndex(107);
110 jpm 971
		dateFondationChp.setFieldLabel("Date de fondation");
972
		dateFondationChp.getPropertyEditor().getFormat();
973
		dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
974
		dateFondationChp.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
975
		fieldSetIdentite.add(dateFondationChp);
976
 
977
		identificationOnglet.add(fieldSetIdentite);
978
 
979
		//+-----------------------------------------------------------------------------------------------------------+
980
		// Fieldset ADRESSE
981
		LayoutContainer principalFdAdresse = new LayoutContainer();
982
		principalFdAdresse.setLayout(new ColumnLayout());
983
 
984
		LayoutContainer gaucheFdAdresse = new LayoutContainer();
985
		gaucheFdAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
986
 
987
		LayoutContainer droiteFdAdresse = new LayoutContainer();
988
		droiteFdAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
989
 
990
		FieldSet fieldSetAdresse = new FieldSet();
991
		fieldSetAdresse.setHeading("Adresse");
992
		fieldSetAdresse.setCollapsible(true);
993
 
994
		fieldSetAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 4));
995
 
164 jp_milcent 996
		adrChp = new TextArea();
133 jpm 997
		adrChp.setTabIndex(108);
110 jpm 998
		adrChp.setFieldLabel("Adresse");
999
		fieldSetAdresse.add(adrChp, new FormData(550, 0));
1000
 
133 jpm 1001
		cpChp = new TextField<String>();
1002
		cpChp.setTabIndex(109);
110 jpm 1003
		cpChp.setFieldLabel("Code postal");
1004
		gaucheFdAdresse.add(cpChp);
1005
 
133 jpm 1006
		villeChp = new TextField<String>();
1007
		villeChp.setTabIndex(110);
110 jpm 1008
		villeChp.setFieldLabel("Ville");
1009
		droiteFdAdresse.add(villeChp);
1010
 
133 jpm 1011
		regionChp = new TextField<String>();
1012
		regionChp.setTabIndex(111);
110 jpm 1013
		regionChp.setFieldLabel("Région");
1014
		gaucheFdAdresse.add(regionChp);
1015
 
164 jp_milcent 1016
		//paysChp = new TextField<String>();
1017
		//paysChp.setTabIndex(112);
1018
		//paysChp.setFieldLabel("Pays");
1019
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("pays"));
1020
		magazinPays = new ListStore<Valeur>();
1021
		magazinPays.add(new ArrayList<Valeur>());
1022
		comboPays = new ComboBox<Valeur>();
1023
		comboPays.setTabIndex(112);
1024
		comboPays.setFieldLabel("Pays");
172 jp_milcent 1025
		comboPays.setEmptyText("Sélectioner un pays...");
164 jp_milcent 1026
		comboPays.setEditable(true);
1027
		comboPays.setLabelSeparator("");
1028
		comboPays.setDisplayField("nom");
172 jp_milcent 1029
		comboPays.setTemplate(getTemplatePays());
1030
		comboPays.setTypeAhead(true);
164 jp_milcent 1031
		comboPays.setTriggerAction(TriggerAction.ALL);
1032
		comboPays.setStore(magazinPays);
1033
		droiteFdAdresse.add(comboPays);
110 jpm 1034
 
1035
		principalFdAdresse.add(gaucheFdAdresse, new ColumnData(.5));
1036
		principalFdAdresse.add(droiteFdAdresse, new ColumnData(.5));
1037
		fieldSetAdresse.add(principalFdAdresse);
1038
		identificationOnglet.add(fieldSetAdresse);
1039
 
1040
		//+-----------------------------------------------------------------------------------------------------------+
1041
		// Fieldset TÉLÉPHONE et EMAIL
1042
		LayoutContainer principalFdTelMail = new LayoutContainer();
1043
		principalFdTelMail.setLayout(new ColumnLayout());
1044
 
1045
		LayoutContainer gaucheFdTelMail = new LayoutContainer();
1046
		gaucheFdTelMail.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1047
 
1048
		LayoutContainer droiteFdTelMail = new LayoutContainer();
1049
		droiteFdTelMail.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1050
 
1051
		FieldSet fieldSetTelMail = new FieldSet();
1052
		fieldSetTelMail.setHeading("Communication");
1053
		fieldSetTelMail.setCollapsible(true);
1054
 
1055
		fieldSetTelMail.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
1056
 
133 jpm 1057
		telChp = new TextField<String>();
1058
		telChp.setTabIndex(113);
110 jpm 1059
		telChp.setFieldLabel("Téléphone");
1060
		gaucheFdTelMail.add(telChp);
1061
 
133 jpm 1062
		faxChp = new TextField<String>();
1063
		faxChp.setTabIndex(114);
110 jpm 1064
		faxChp.setFieldLabel("Fax");
1065
		droiteFdTelMail.add(faxChp);
1066
 
133 jpm 1067
		emailChp = new TextField<String>();
1068
		emailChp.setTabIndex(115);
110 jpm 1069
		emailChp.setFieldLabel("Courriel");
1070
		emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org");
1071
		gaucheFdTelMail.add(emailChp);
1072
 
133 jpm 1073
		urlChp = new TextField<String>();
1074
		urlChp.setTabIndex(116);
110 jpm 1075
		urlChp.setFieldLabel("Site web");
1076
		droiteFdTelMail.add(urlChp);
1077
 
1078
		principalFdTelMail.add(gaucheFdTelMail, new ColumnData(.5));
1079
		principalFdTelMail.add(droiteFdTelMail, new ColumnData(.5));
1080
		fieldSetTelMail.add(principalFdTelMail);
1081
		identificationOnglet.add(fieldSetTelMail);
1082
 
1083
		return identificationOnglet;
1084
	}
1085
 
172 jp_milcent 1086
	private native String getTemplatePays() /*-{
1087
		return  [
1088
		'<tpl for=".">',
1089
		'<div class="x-combo-list-item">{nom} ({abreviation})</div>',
1090
		'</tpl>'
1091
		].join("");
1092
		}-*/;
1093
 
108 jpm 1094
	/** Méthode simplifiant la création de FormLayout.
110 jpm 1095
	 * Chacun des paramètres peut prendre la valeur null pour utiliser la valeur par défaut.
108 jpm 1096
	 *
110 jpm 1097
	 * @param labelWidth largeur des labels.
108 jpm 1098
	 * @param labelAlign alignement des labels
1099
	 * @param padding padding du layout
1100
	 * @return
1101
	 */
1102
	private FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign, Integer padding) {
1103
		FormLayout formLayout = new FormLayout();
110 jpm 1104
		if (labelWidth != null) {
1105
			formLayout.setLabelWidth(labelWidth);
1106
		}
1107
		if (labelAlign != null) {
1108
			formLayout.setLabelAlign(labelAlign);
1109
		}
108 jpm 1110
		if (padding != null) {
1111
			formLayout.setPadding(padding);
1112
		}
1113
		return formLayout;
1114
	}
1115
 
109 jpm 1116
	/** Méthode simplifiant la création de bouton radio oui/non
1117
	 *
1118
	 * @param listeNom nom de la liste de valeur
1119
	 * @return
1120
	 */
115 jpm 1121
	private RadioGroup creerChoixUniqueRadioGroupe(String groupeNom, String listeNom) {
1122
		groupeNom += "_grp";
1123
		// NOTE : il semblerait qu'il faille aussi utiliser setName() pour éviter tout problème...
1124
		RadioGroup radioGroup = new RadioGroup(groupeNom);
1125
		radioGroup.setName(groupeNom);
119 jpm 1126
 
188 jp_milcent 1127
		if (listeNom.equals("ouiNon")) {
1128
		//	modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
1129
		//} else {
115 jpm 1130
			ValeurListe ouiNonListe = new ValeurListe();
188 jp_milcent 1131
			ouiNonListe.ajouter(new Valeur("1", "Oui", "NULL", "NULL"));
1132
			ouiNonListe.ajouter(new Valeur("0", "Non", "NULL", "NULL"));
115 jpm 1133
			creerChoixUniqueBoutonRadio(radioGroup, ouiNonListe);
1134
		}
109 jpm 1135
 
115 jpm 1136
		return radioGroup;
109 jpm 1137
	}
1138
 
115 jpm 1139
	private void creerChoixUniqueBoutonRadio(RadioGroup radioGroupe, ValeurListe listeValeurs) {
1140
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
1141
			Valeur val = listeValeurs.get(it.next());
1142
 
1143
			Radio radioBtn = new Radio();
119 jpm 1144
			radioBtn.setName(radioGroupe.getName().replace("_grp", ""));
188 jp_milcent 1145
			radioBtn.setId(val.getId()+"_"+radioBtn.getName());
115 jpm 1146
			radioBtn.setBoxLabel(val.getNom());
188 jp_milcent 1147
			radioBtn.setValueAttribute(val.getId());
119 jpm 1148
			radioBtn.addListener(Events.Change, new Listener<ComponentEvent>() {
115 jpm 1149
 
119 jpm 1150
				public void handleEvent(ComponentEvent be) {
133 jpm 1151
					//Window.alert(((Radio) be.component).getName());
1152
					afficherChampSupplementaire(((Radio) be.component));
115 jpm 1153
				}
1154
 
1155
			});
119 jpm 1156
 
115 jpm 1157
			if (! val.getDescription().equals("NULL")) {
1158
				radioBtn.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
1159
			}
188 jp_milcent 1160
			radioGroupe.add(radioBtn);
115 jpm 1161
		}
1162
	}
1163
 
1164
	private void afficherChampSupplementaire(Radio radioBtn) {
119 jpm 1165
		//GWT.log("Nom btn : "+radioBtn.getName()+" - Nom group : "+radioBtn.getGroup().getName(), null);
115 jpm 1166
		// Valeur du bouton radio déclenchant l'affichage des composants cachés
1167
		String valeurPourAfficher = "oui";
111 jpm 1168
 
115 jpm 1169
		// Construction de la liste des composants à afficher/cacher
1170
		String radioGroupeNom = radioBtn.getGroup().getName();
1171
		ArrayList<Object> composants = new ArrayList<Object>();
1172
		if (radioGroupeNom.equals("action_mark_grp")) {
1173
			composants.add(actionTrukCp);
1174
		} else if (radioGroupeNom.equals("future_action_mark_grp")) {
1175
			composants.add(futureActionChp);
1176
		} else if (radioGroupeNom.equals("sans_motif_acces_mark_grp")) {
1177
			composants.add(sansMotifAccesChp);
1178
		} else if (radioGroupeNom.equals("avec_motif_acces_mark_grp")) {
1179
			composants.add(avecMotifAccesChp);
1180
		} else if (radioGroupeNom.equals("recherche_mark_grp")) {
1181
			composants.add(provenanceRechercheTrukCp);
119 jpm 1182
			composants.add(typeRechercheTrukCp);
115 jpm 1183
		} else if (radioGroupeNom.equals("formation_mark_grp")) {
1184
			composants.add(formationChp);
1185
		} else if (radioGroupeNom.equals("collection_commune_mark_grp")) {
1186
			composants.add(collectionAutreTrukCp);
1187
		} else if (radioGroupeNom.equals("restauration_mark_grp")) {
1188
			composants.add(opRestauTrukCp);
1189
		} else if (radioGroupeNom.equals("traitement_mark_grp")) {
1190
			composants.add(traitementTrukCp);
1191
		} else if (radioGroupeNom.equals("echantillon_acquisition_mark_grp")) {
1192
			composants.add(traitementAcquisitionMarkRGrpChp);
1193
		} else if (radioGroupeNom.equals("traitement_acquisition_mark_grp")) {
1194
			composants.add(traitementAcquisitionMarkLabel);
1195
			composants.add(poisonTraitementTrukCp);
1196
			composants.add(insecteTraitementTrukCp);
1197
		} else if (radioGroupeNom.equals("materiel_conservation_ce_grp")) {
1198
			composants.add(autreMaterielTrukCp);
1199
			valeurPourAfficher = "non";
1200
		}
111 jpm 1201
 
115 jpm 1202
		// Nous affichons/cachons les composant de la liste
1203
		final int tailleMax = composants.size();
1204
		//GWT.log("Id : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax, null);
119 jpm 1205
		//Window.alert("Radio grp nom : "+radioGroupeNom+" - Id btn : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax);
111 jpm 1206
		for (int i = 0; i < tailleMax; i++) {
1207
			// En fonction du type de bouton cliquer, on affiche ou cache les champs
115 jpm 1208
			String type = radioBtn.getBoxLabel().toLowerCase();
119 jpm 1209
			//GWT.log(type, null);
115 jpm 1210
			if (radioBtn.getValue() == true) {
1211
				if (type.equals(valeurPourAfficher)) {
1212
					((Component) composants.get(i)).show();
1213
				} else {
1214
					((Component) composants.get(i)).hide();
1215
				}
111 jpm 1216
			}
1217
			// Si on a à faire à un ContentPanel, on l'actualise pour déclencher l'affichage
115 jpm 1218
			if (composants.get(i) instanceof ContentPanel) {
1219
				((ContentPanel) composants.get(i)).layout();
111 jpm 1220
			}
1221
		}
1222
 
1223
	}
1224
 
109 jpm 1225
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
1226
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
1227
	 * Ajoute ou pas un champ "Autre".
1228
	 *
1229
	 * @param listeNom nom de la liste de valeur
1230
	 * @return
1231
	 */
1232
	private ContentPanel creerChoixMultipleCp(String listeNom) {
119 jpm 1233
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
109 jpm 1234
		ContentPanel cp = new ContentPanel();
1235
		cp.setLayout(creerFormLayout(650, LabelAlign.TOP, 0));
1236
		cp.setHeaderVisible(false);
1237
		return cp;
1238
	}
1239
 
1240
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
1241
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
1242
	 * Ajoute ou pas un champ "Autre".
1243
	 *
1244
	 * @param cp panneau conteant le groupe de case à cocher
1245
	 * @param cacGroup le groupe de case à cocher
1246
	 * @param listeValeurs la liste de valeurs à transformer en case à cocher
1247
	 * @param boolAutreChp booléen indiquant si oui ou non le champ autre doit apparaître
1248
	 * @return
1249
	 */
188 jp_milcent 1250
	private void creerChoixMultipleCac(ContentPanel cp, CheckBoxGroup cacGroupe, ValeurListe listeValeurs, Field<String> autreChp) {
110 jpm 1251
		cacGroupe.setAutoWidth(true);
188 jp_milcent 1252
		cacGroupe.setData("liste_id", listeValeurs.getId());
109 jpm 1253
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
111 jpm 1254
			Valeur val = listeValeurs.get(it.next());
1255
			String nom =  val.get("nom");
109 jpm 1256
			CheckBox cac = new CheckBox();
115 jpm 1257
			cac.setId("val-"+val.getId());
188 jp_milcent 1258
			cac.setData("id", val.getId());
111 jpm 1259
			cac.setBoxLabel(nom);
1260
			if (! val.getDescription().equals("NULL")) {
1261
				cac.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
109 jpm 1262
			}
1263
			cacGroupe.add(cac);
1264
		}
1265
		cp.add(cacGroupe);
1266
 
188 jp_milcent 1267
		if (autreChp != null) {
109 jpm 1268
			ContentPanel autreCp = new ContentPanel();
1269
			autreCp.setLayout(creerFormLayout(75, LabelAlign.TOP, 0));
1270
			autreCp.setHeaderVisible(false);
188 jp_milcent 1271
			autreChp.setId("autre-"+listeValeurs.getId());
119 jpm 1272
			autreChp.setFieldLabel("Autre");
1273
			autreChp.setLabelStyle("font-weight:normal;");
1274
			autreCp.add(autreChp);
109 jpm 1275
			cp.add(autreCp);
1276
		}
1277
 
1278
		cp.layout();
1279
	}
1280
 
69 jpm 1281
	public void rafraichir(Object nouvelleDonnees) {
153 jpm 1282
		if (nouvelleDonnees instanceof Information) {
1283
			Information info = (Information) nouvelleDonnees;
156 jp_milcent 1284
			if (info.getMessages() != null) {
1285
				GWT.log(info.getMessages().toString(), null);
1286
			}
172 jp_milcent 1287
			if (info.getType().equals("modif_structure")) {
1288
				Info.display("Modification d'une institution", info.toString());
1289
			} else if (info.getType().equals("ajout_structure")) {
153 jpm 1290
				Info.display("Ajout d'une Institution", info.toString());
156 jp_milcent 1291
			} else if (info.getType().equals("selection_structure")) {
172 jp_milcent 1292
				Info.display("Modification d'une institution", info.toString());
156 jp_milcent 1293
				mode = "MODIF";
172 jp_milcent 1294
				GWT.log(mode, null);
188 jp_milcent 1295
				String titre = i18nC.titreModifFormStructurePanneau();
1296
				if (info.getDonnee(0) != null) {
1297
					Structure str = (Structure) info.getDonnee(0);
1298
					titre += " - ID : "+str.getId();
1299
					peuplerStructure(str);
1300
				}
1301
				if (info.getDonnee(1) != null) {
1302
					StructureConservation strConservation = (StructureConservation) info.getDonnee(1);
1303
					peuplerStructureConservation(strConservation);
1304
				}
1305
				structureFormPanneau.setHeading(titre);
153 jpm 1306
			}
119 jpm 1307
		} else if (nouvelleDonnees instanceof ValeurListe) {
91 jpm 1308
			ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;
1309
 
1310
			List<Valeur> liste = new ArrayList<Valeur>();
1311
			for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
1312
				liste.add(listeValeurs.get(it.next()));
1313
			}
1314
			// Test pour savoir si la liste contient des éléments
1315
			if (liste.size() > 0) {
1316
				Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
1317
				if (listeValeurs.getId().equals(config.getListeId("stpr"))) {
1318
					magazinLstpr.removeAll();
1319
					magazinLstpr.add(liste);
1320
					comboLstpr.setStore(magazinLstpr);
1321
				}
1322
				if (listeValeurs.getId().equals(config.getListeId("stpu"))) {
1323
					magazinLstpu.removeAll();
1324
					magazinLstpu.add(liste);
1325
					comboLstpu.setStore(magazinLstpu);
1326
				}
103 jpm 1327
				if (listeValeurs.getId().equals(config.getListeId("statut"))) {
1328
					magazinLiStatut.removeAll();
1329
					magazinLiStatut.add(liste);
1330
					comboLiStatut.setStore(magazinLiStatut);
1331
				}
1332
				if (listeValeurs.getId().equals(config.getListeId("fonction"))) {
1333
					magazinLiFonction.removeAll();
1334
					magazinLiFonction.add(liste);
1335
					comboLiFonction.setStore(magazinLiFonction);
1336
				}
164 jp_milcent 1337
				if (listeValeurs.getId().equals(config.getListeId("pays"))) {
1338
					magazinPays.removeAll();
1339
					magazinPays.add(liste);
1340
					comboPays.setStore(magazinPays);
1341
				}
108 jpm 1342
				if (listeValeurs.getId().equals(config.getListeId("localStockage"))) {
188 jp_milcent 1343
					localStockageAutreChp = new TextField<String>();
1344
					creerChoixMultipleCac(localStockageTrukCp, localStockageTrukCacGrpChp, listeValeurs, localStockageAutreChp);
108 jpm 1345
				}
1346
				if (listeValeurs.getId().equals(config.getListeId("meubleStockage"))) {
188 jp_milcent 1347
					meubleStockageAutreChp = new TextField<String>();
1348
					creerChoixMultipleCac(meubleStockageTrukCp, meubleStockageTrukCacGrpChp, listeValeurs, meubleStockageAutreChp);
108 jpm 1349
				}
109 jpm 1350
				if (listeValeurs.getId().equals(config.getListeId("parametreStockage"))) {
188 jp_milcent 1351
					parametreStockageAutreChp = new TextField<String>();
1352
					creerChoixMultipleCac(parametreStockageTrukCp, parametreStockageTrukCacGrpChp, listeValeurs, parametreStockageAutreChp);
109 jpm 1353
				}
110 jpm 1354
				if (listeValeurs.getId().equals(config.getListeId("autreCollection"))) {
111 jpm 1355
					if (collectionAutreTrukCp.getItemByItemId("collectionAutreTrukCacGrpChp") == null) {
1356
						collectionAutreTrukCacGrpChp.setId("collectionAutreTrukCacGrpChp");
188 jp_milcent 1357
						collectionAutreAutreChp = new TextField<String>();
1358
						creerChoixMultipleCac(collectionAutreTrukCp, collectionAutreTrukCacGrpChp, listeValeurs, collectionAutreAutreChp);
111 jpm 1359
					}
1360
					if (autreCollectionTrukCp.getItemByItemId("autreCollectionTrukCacGrpChp") == null) {
119 jpm 1361
						autreCollectionTrukCacGrpChp.setId("autreCollectionTrukCacGrpChp");
188 jp_milcent 1362
						autreCollectionAutreChp = new TextField<String>();
1363
						creerChoixMultipleCac(autreCollectionTrukCp, autreCollectionTrukCacGrpChp, listeValeurs, autreCollectionAutreChp);
111 jpm 1364
					}
110 jpm 1365
				}
1366
				if (listeValeurs.getId().equals(config.getListeId("opRestau"))) {
188 jp_milcent 1367
					opRestauAutreChp = new TextField<String>();
1368
					creerChoixMultipleCac(opRestauTrukCp, opRestauTrukCacGrpChp, listeValeurs, opRestauAutreChp);
110 jpm 1369
				}
1370
				if (listeValeurs.getId().equals(config.getListeId("onep"))) {
115 jpm 1371
					creerChoixUniqueBoutonRadio(materielConservationCeRGrpChp, listeValeurs);
188 jp_milcent 1372
					materielConservationCp.add(materielConservationCeRGrpChp);
1373
					materielConservationCp.layout();
110 jpm 1374
				}
1375
				if (listeValeurs.getId().equals(config.getListeId("autreMateriel"))) {
188 jp_milcent 1376
					autreMaterielAutreChp = new TextField<String>();
1377
					creerChoixMultipleCac(autreMaterielTrukCp, autreMaterielTrukCacGrpChp, listeValeurs, autreMaterielAutreChp);
110 jpm 1378
				}
1379
				if (listeValeurs.getId().equals(config.getListeId("poisonTraitement"))) {
188 jp_milcent 1380
					poisonTraitementAutreChp = new TextField<String>();
1381
					creerChoixMultipleCac(poisonTraitementTrukCp, poisonTraitementTrukCacGrpChp, listeValeurs, poisonTraitementAutreChp);
110 jpm 1382
				}
1383
				if (listeValeurs.getId().equals(config.getListeId("insecteTraitement"))) {
115 jpm 1384
					if (traitementTrukCp.getItemByItemId("traitementTrukCacGrpChp") == null) {
1385
						traitementTrukCacGrpChp.setId("traitementTrukCacGrpChp");
188 jp_milcent 1386
						traitementAutreChp = new TextField<String>();
1387
						creerChoixMultipleCac(traitementTrukCp, traitementTrukCacGrpChp, listeValeurs, traitementAutreChp);
110 jpm 1388
					}
115 jpm 1389
					if (insecteTraitementTrukCp.getItemByItemId("insecteTraitementTrukCacGrpChp") == null) {
1390
						insecteTraitementTrukCacGrpChp.setId("insecteTraitementTrukCacGrpChp");
188 jp_milcent 1391
						insecteTraitementAutreChp = new TextField<String>();
1392
						creerChoixMultipleCac(insecteTraitementTrukCp, insecteTraitementTrukCacGrpChp, listeValeurs, insecteTraitementAutreChp);
110 jpm 1393
					}
1394
				}
111 jpm 1395
				if (listeValeurs.getId().equals(config.getListeId("actionValorisation"))) {
188 jp_milcent 1396
					actionAutreChp = new TextField<String>();
1397
					creerChoixMultipleCac(actionTrukCp, actionTrukCacGrpChp, listeValeurs, actionAutreChp);
111 jpm 1398
				}
1399
				if (listeValeurs.getId().equals(config.getListeId("continentEtFr"))) {
188 jp_milcent 1400
					provenanceRechercheAutreChp = new TextField<String>();
1401
					creerChoixMultipleCac(provenanceRechercheTrukCp, provenanceRechercheTrukCacGrpChp, listeValeurs, provenanceRechercheAutreChp);
111 jpm 1402
				}
1403
				if (listeValeurs.getId().equals(config.getListeId("typeRecherche"))) {
188 jp_milcent 1404
					typeRecherche = new TextField<String>();
1405
					creerChoixMultipleCac(typeRechercheTrukCp, typeRechercheTrukCacGrpChp, listeValeurs, typeRecherche);
111 jpm 1406
				}
110 jpm 1407
				//GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
91 jpm 1408
			} else {
1409
				GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);
1410
			}
1411
		}
69 jpm 1412
	}
100 jpm 1413
 
115 jpm 1414
}