Subversion Repositories eFlore/Applications.coel

Rev

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