Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
69 jpm 1
package org.tela_botanica.client.vues;
2
 
91 jpm 3
import java.util.ArrayList;
4
import java.util.Iterator;
69 jpm 5
import java.util.List;
6
 
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
 
1392
 
103 jpm 1393
		cp.add(grillePersonnel);
231 jp_milcent 1394
		personnelOnglet.add(cp);
1395
 
1396
		return personnelOnglet;
1397
	}
102 jpm 1398
 
110 jpm 1399
	private TabItem creerOngletIdentification() {
1400
		//+-----------------------------------------------------------------------------------------------------------+
1401
		// Onlget formulaire IDENTIFICATION
192 jp_milcent 1402
		identificationOnglet = new TabItem();
1403
		identificationOnglet.setId("identification");
1404
		identificationOnglet.setText("Identification");
110 jpm 1405
		identificationOnglet.setLayout(new FormLayout());
211 jp_milcent 1406
		identificationOnglet.setData("acces", false);
1407
		identificationOnglet.addListener(Events.Select, new Listener<ComponentEvent>() {
1408
			public void handleEvent(ComponentEvent be) {
1409
				peuplerStructureIdentification();
1410
			}
1411
		});
1412
 
110 jpm 1413
		//+-----------------------------------------------------------------------------------------------------------+
172 jp_milcent 1414
		// Champs cachés
1415
		idStructureChp = new HiddenField<String>();
1416
 
1417
		//+-----------------------------------------------------------------------------------------------------------+
110 jpm 1418
		// Fieldset IDENTITÉ
1419
		FieldSet fieldSetIdentite = new FieldSet();
1420
		fieldSetIdentite.setHeading("Identité");
1421
		fieldSetIdentite.setCollapsible(true);
1422
		fieldSetIdentite.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
1423
 
119 jpm 1424
		nomStructureChp = new TextField<String>();
133 jpm 1425
		nomStructureChp.setTabIndex(100);
110 jpm 1426
		nomStructureChp.setFieldLabel("Nom de la structure");
1427
		nomStructureChp.setAllowBlank(false);
1428
		nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire.");
1429
		fieldSetIdentite.add(nomStructureChp, new FormData(450, 0));
1430
 
1431
		// Création du sous-formulaire : Acronyme
1432
		LayoutContainer ligne = new LayoutContainer();
1433
		ligne.setLayout(new ColumnLayout());
1434
		LayoutContainer gauche = new LayoutContainer();
1435
		gauche.setLayout(creerFormLayout(200, LabelAlign.LEFT, 0));
1436
		LayoutContainer droite = new LayoutContainer();
1437
		droite.setLayout(creerFormLayout(0, null, 0));
1438
 
1439
		ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>();
1440
		acronymes.add(InterneValeurListe.getTypeAcronyme());
1441
 
133 jpm 1442
		comboAcronyme = new ComboBox<InterneValeur>();
1443
		comboAcronyme.setTabIndex(101);
110 jpm 1444
		comboAcronyme.setEmptyText("Sélectioner un type d'acronyme...");
1445
		comboAcronyme.setFieldLabel("Acronymes");
1446
		comboAcronyme.setDisplayField("nom");
1447
		comboAcronyme.setStore(acronymes);
1448
		comboAcronyme.setEditable(false);
1449
		comboAcronyme.setTypeAhead(true);
1450
		comboAcronyme.setTriggerAction(TriggerAction.ALL);
1451
		comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
1452
			@Override
1453
			public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
1454
				String acronymeAbr = se.getSelectedItem().getAbr();
1455
				if (acronymeAbr.equals("IH")) {
1456
					mnhnChp.hide();
1457
					ihChp.show();
1458
				} else if (acronymeAbr.equals("MNHN")) {
1459
					ihChp.hide();
1460
					mnhnChp.show();
1461
				} else if (acronymeAbr.equals("")) {
1462
					ihChp.hide();
1463
					mnhnChp.hide();
1464
					comboAcronyme.clearSelections();
1465
				}
1466
			}
1467
        });
1468
		gauche.add(comboAcronyme);
1469
 
1470
		ihChp = new TextField<String>();
1471
		//ihChp.setEmptyText("Index Herbariorum");
133 jpm 1472
		ihChp.setTabIndex(102);
110 jpm 1473
		ihChp.setLabelSeparator("");
1474
		ihChp.setToolTip("Index Herbariorum : herbier de plus de 5000 échantillons");
1475
		ihChp.hide();
1476
		droite.add(ihChp);
1477
 
133 jpm 1478
		mnhnChp = new TextField<String>();
1479
		mnhnChp.setTabIndex(103);
110 jpm 1480
		//mnhnChp.setEmptyText("MNHN");
1481
		mnhnChp.setLabelSeparator("");
1482
		mnhnChp.setToolTip("Acronyme MNHN : herbier de moins de 5000 échantillons");
1483
		mnhnChp.hide();
1484
		droite.add(mnhnChp);
1485
 
1486
		ligne.add(gauche, new ColumnData(0.5));
1487
		ligne.add(droite, new ColumnData(0.5));
1488
		fieldSetIdentite.add(ligne);
1489
 
1490
		// Création du sous-formulaire : Type de Structure
1491
		LayoutContainer ligneTs = new LayoutContainer();
1492
		ligneTs.setLayout(new ColumnLayout());
1493
 
1494
		LayoutContainer gaucheTs = new LayoutContainer();
1495
		gaucheTs.setLayout(creerFormLayout(200, LabelAlign.LEFT, 0));
1496
 
1497
		LayoutContainer droiteTs = new LayoutContainer();
1498
		droiteTs.setLayout(creerFormLayout(0, null, 0));
1499
 
1500
		ListStore<InterneValeur> typesStructure = new ListStore<InterneValeur>();
1501
		typesStructure.add(InterneValeurListe.getTypeStructure());
1502
 
133 jpm 1503
		comboTypeStructure = new ComboBox<InterneValeur>();
1504
		comboTypeStructure.setTabIndex(104);
110 jpm 1505
		comboTypeStructure.setEmptyText("Sélectioner un type de structure...");
1506
		comboTypeStructure.setFieldLabel("Statut des structures");
1507
		comboTypeStructure.setDisplayField("nom");
1508
		comboTypeStructure.setStore(typesStructure);
1509
		comboTypeStructure.setEditable(false);
1510
		comboTypeStructure.setTypeAhead(true);
1511
		comboTypeStructure.setTriggerAction(TriggerAction.ALL);
1512
		comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
1513
			@Override
1514
			public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
1515
				String typeAbr = se.getSelectedItem().getAbr();
1516
				if (typeAbr.equals("stpu")) {
1517
					comboLstpr.hide();
1518
					comboLstpu.show();
1519
				} else if (typeAbr.equals("stpr")) {
1520
					comboLstpu.hide();
1521
					comboLstpr.show();
1522
				} else if (typeAbr.equals("")) {
1523
					comboLstpr.hide();
1524
					comboLstpu.hide();
1525
					comboTypeStructure.clearSelections();
1526
				}
1527
			}
1528
        });
1529
		gaucheTs.add(comboTypeStructure);
1530
 
119 jpm 1531
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
110 jpm 1532
		magazinLstpu = new ListStore<Valeur>();
1533
		magazinLstpu.add(new ArrayList<Valeur>());
133 jpm 1534
		comboLstpu = new ComboBox<Valeur>();
1535
		comboLstpu.setTabIndex(105);
110 jpm 1536
		//comboLstpu.setFieldLabel("Statut des structures publiques");
1537
		comboLstpu.setLabelSeparator("");
1538
		comboLstpu.setDisplayField("nom");
1539
		comboLstpu.setEditable(false);
1540
		comboLstpu.setTriggerAction(TriggerAction.ALL);
1541
		comboLstpu.setStore(magazinLstpu);
1542
		comboLstpu.hide();
1543
		droiteTs.add(comboLstpu);
1544
 
119 jpm 1545
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
110 jpm 1546
		magazinLstpr = new ListStore<Valeur>();
1547
		magazinLstpr.add(new ArrayList<Valeur>());
133 jpm 1548
		comboLstpr = new ComboBox<Valeur>();
1549
		comboLstpr.setTabIndex(106);
110 jpm 1550
		//comboLstpr.setFieldLabel("Statut des structures privées");
1551
		comboLstpr.setLabelSeparator("");
1552
		comboLstpr.setDisplayField("nom");
1553
		comboLstpr.setEditable(false);
1554
		comboLstpr.setTriggerAction(TriggerAction.ALL);
1555
		comboLstpr.setStore(magazinLstpr);
1556
		comboLstpr.hide();
1557
		droiteTs.add(comboLstpr);
1558
 
1559
		ligneTs.add(gaucheTs, new ColumnData(0.5));
1560
		ligneTs.add(droiteTs, new ColumnData(0.5));
1561
		fieldSetIdentite.add(ligneTs);
1562
 
119 jpm 1563
		dateFondationChp = new DateField();
133 jpm 1564
		dateFondationChp.setTabIndex(107);
110 jpm 1565
		dateFondationChp.setFieldLabel("Date de fondation");
1566
		dateFondationChp.getPropertyEditor().getFormat();
1567
		dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
1568
		dateFondationChp.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
1569
		fieldSetIdentite.add(dateFondationChp);
1570
 
231 jp_milcent 1571
		nbreTotalPersonneStructureChp = new NumberField();
1572
		nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personne travaillant dans l'institution");
1573
		nbreTotalPersonneStructureChp.setFormat(NumberFormat.getFormat("#"));
1574
		nbreTotalPersonneStructureChp.setToolTip("Ce champ doit contenir un nombre");
1575
		fieldSetIdentite.add(nbreTotalPersonneStructureChp);
1576
 
1577
 
110 jpm 1578
		identificationOnglet.add(fieldSetIdentite);
1579
 
1580
		//+-----------------------------------------------------------------------------------------------------------+
1581
		// Fieldset ADRESSE
1582
		LayoutContainer principalFdAdresse = new LayoutContainer();
1583
		principalFdAdresse.setLayout(new ColumnLayout());
1584
 
1585
		LayoutContainer gaucheFdAdresse = new LayoutContainer();
1586
		gaucheFdAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1587
 
1588
		LayoutContainer droiteFdAdresse = new LayoutContainer();
1589
		droiteFdAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1590
 
1591
		FieldSet fieldSetAdresse = new FieldSet();
1592
		fieldSetAdresse.setHeading("Adresse");
1593
		fieldSetAdresse.setCollapsible(true);
1594
 
1595
		fieldSetAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 4));
1596
 
164 jp_milcent 1597
		adrChp = new TextArea();
133 jpm 1598
		adrChp.setTabIndex(108);
110 jpm 1599
		adrChp.setFieldLabel("Adresse");
1600
		fieldSetAdresse.add(adrChp, new FormData(550, 0));
1601
 
133 jpm 1602
		cpChp = new TextField<String>();
1603
		cpChp.setTabIndex(109);
110 jpm 1604
		cpChp.setFieldLabel("Code postal");
1605
		gaucheFdAdresse.add(cpChp);
1606
 
133 jpm 1607
		villeChp = new TextField<String>();
1608
		villeChp.setTabIndex(110);
110 jpm 1609
		villeChp.setFieldLabel("Ville");
1610
		droiteFdAdresse.add(villeChp);
1611
 
133 jpm 1612
		regionChp = new TextField<String>();
1613
		regionChp.setTabIndex(111);
110 jpm 1614
		regionChp.setFieldLabel("Région");
1615
		gaucheFdAdresse.add(regionChp);
1616
 
164 jp_milcent 1617
		//paysChp = new TextField<String>();
1618
		//paysChp.setTabIndex(112);
1619
		//paysChp.setFieldLabel("Pays");
1620
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("pays"));
1621
		magazinPays = new ListStore<Valeur>();
1622
		magazinPays.add(new ArrayList<Valeur>());
1623
		comboPays = new ComboBox<Valeur>();
1624
		comboPays.setTabIndex(112);
1625
		comboPays.setFieldLabel("Pays");
172 jp_milcent 1626
		comboPays.setEmptyText("Sélectioner un pays...");
164 jp_milcent 1627
		comboPays.setEditable(true);
1628
		comboPays.setLabelSeparator("");
1629
		comboPays.setDisplayField("nom");
172 jp_milcent 1630
		comboPays.setTemplate(getTemplatePays());
1631
		comboPays.setTypeAhead(true);
164 jp_milcent 1632
		comboPays.setTriggerAction(TriggerAction.ALL);
1633
		comboPays.setStore(magazinPays);
1634
		droiteFdAdresse.add(comboPays);
110 jpm 1635
 
1636
		principalFdAdresse.add(gaucheFdAdresse, new ColumnData(.5));
1637
		principalFdAdresse.add(droiteFdAdresse, new ColumnData(.5));
1638
		fieldSetAdresse.add(principalFdAdresse);
1639
		identificationOnglet.add(fieldSetAdresse);
1640
 
1641
		//+-----------------------------------------------------------------------------------------------------------+
1642
		// Fieldset TÉLÉPHONE et EMAIL
1643
		LayoutContainer principalFdTelMail = new LayoutContainer();
1644
		principalFdTelMail.setLayout(new ColumnLayout());
1645
 
1646
		LayoutContainer gaucheFdTelMail = new LayoutContainer();
1647
		gaucheFdTelMail.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1648
 
1649
		LayoutContainer droiteFdTelMail = new LayoutContainer();
1650
		droiteFdTelMail.setLayout(creerFormLayout(100, LabelAlign.LEFT, 0));
1651
 
1652
		FieldSet fieldSetTelMail = new FieldSet();
1653
		fieldSetTelMail.setHeading("Communication");
1654
		fieldSetTelMail.setCollapsible(true);
1655
 
1656
		fieldSetTelMail.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
1657
 
133 jpm 1658
		telChp = new TextField<String>();
1659
		telChp.setTabIndex(113);
110 jpm 1660
		telChp.setFieldLabel("Téléphone");
1661
		gaucheFdTelMail.add(telChp);
1662
 
133 jpm 1663
		faxChp = new TextField<String>();
1664
		faxChp.setTabIndex(114);
110 jpm 1665
		faxChp.setFieldLabel("Fax");
1666
		droiteFdTelMail.add(faxChp);
1667
 
133 jpm 1668
		emailChp = new TextField<String>();
1669
		emailChp.setTabIndex(115);
110 jpm 1670
		emailChp.setFieldLabel("Courriel");
1671
		emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org");
1672
		gaucheFdTelMail.add(emailChp);
1673
 
133 jpm 1674
		urlChp = new TextField<String>();
1675
		urlChp.setTabIndex(116);
110 jpm 1676
		urlChp.setFieldLabel("Site web");
1677
		droiteFdTelMail.add(urlChp);
1678
 
1679
		principalFdTelMail.add(gaucheFdTelMail, new ColumnData(.5));
1680
		principalFdTelMail.add(droiteFdTelMail, new ColumnData(.5));
1681
		fieldSetTelMail.add(principalFdTelMail);
1682
		identificationOnglet.add(fieldSetTelMail);
1683
 
1684
		return identificationOnglet;
1685
	}
1686
 
172 jp_milcent 1687
	private native String getTemplatePays() /*-{
1688
		return  [
1689
		'<tpl for=".">',
1690
		'<div class="x-combo-list-item">{nom} ({abreviation})</div>',
1691
		'</tpl>'
1692
		].join("");
1693
		}-*/;
1694
 
192 jp_milcent 1695
	private void peuplerCasesACocher(String donnees, CheckBoxGroup groupeCac, TextField<String> champAutre) {
1696
		String[] valeurs = donnees.split(";;");
1697
		for (int i = 0; i < valeurs.length; i++) {
1698
			if (valeurs[i].startsWith("AUTRE##")) {
1699
				champAutre.setValue(valeurs[i].replaceFirst("^AUTRE##", ""));
1700
			} else {
1701
				List<CheckBox> cases = groupeCac.getAll();
1702
				for (int j = 0; j < cases.size(); j++) {
1703
					if (cases.get(j).getId().equals("val-"+valeurs[i])) {
1704
						cases.get(j).setValue(true);
1705
					}
1706
				}
1707
			}
1708
		}
1709
	}
1710
 
1711
	private void peuplerBoutonsRadio(String valeur, RadioGroup groupeBr) {
1712
		List<Radio> boutons = groupeBr.getAll();
1713
		String id = valeur+"_"+groupeBr.getName().replace("_grp", "");
1714
		for (int i = 0; i < boutons.size(); i++) {
1715
			if (boutons.get(i).getId().equals(id)) {
1716
				boutons.get(i).setValue(true);
1717
			}
1718
		}
1719
	}
1720
 
1721
	private String creerChaineDenormalisee(List<CheckBox> liste) {
1722
		String identifiants = "";
1723
		int taille = liste.size();
1724
		for (int i = 0; i < taille; i++) {
1725
			CheckBox cac = liste.get(i);
1726
			if (cac.isEnabled()) {
1727
				identifiants = identifiants.concat(";;"+cac.getData("id"));
1728
			}
1729
		}
1730
		return identifiants.replaceFirst("^;;", "");
1731
	}
1732
 
108 jpm 1733
	/** Méthode simplifiant la création de FormLayout.
110 jpm 1734
	 * Chacun des paramètres peut prendre la valeur null pour utiliser la valeur par défaut.
108 jpm 1735
	 *
110 jpm 1736
	 * @param labelWidth largeur des labels.
108 jpm 1737
	 * @param labelAlign alignement des labels
1738
	 * @param padding padding du layout
1739
	 * @return
1740
	 */
1741
	private FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign, Integer padding) {
1742
		FormLayout formLayout = new FormLayout();
110 jpm 1743
		if (labelWidth != null) {
1744
			formLayout.setLabelWidth(labelWidth);
1745
		}
1746
		if (labelAlign != null) {
1747
			formLayout.setLabelAlign(labelAlign);
1748
		}
108 jpm 1749
		if (padding != null) {
1750
			formLayout.setPadding(padding);
1751
		}
1752
		return formLayout;
1753
	}
1754
 
109 jpm 1755
	/** Méthode simplifiant la création de bouton radio oui/non
1756
	 *
1757
	 * @param listeNom nom de la liste de valeur
1758
	 * @return
1759
	 */
115 jpm 1760
	private RadioGroup creerChoixUniqueRadioGroupe(String groupeNom, String listeNom) {
1761
		groupeNom += "_grp";
1762
		// NOTE : il semblerait qu'il faille aussi utiliser setName() pour éviter tout problème...
1763
		RadioGroup radioGroup = new RadioGroup(groupeNom);
1764
		radioGroup.setName(groupeNom);
119 jpm 1765
 
188 jp_milcent 1766
		if (listeNom.equals("ouiNon")) {
115 jpm 1767
			ValeurListe ouiNonListe = new ValeurListe();
188 jp_milcent 1768
			ouiNonListe.ajouter(new Valeur("1", "Oui", "NULL", "NULL"));
1769
			ouiNonListe.ajouter(new Valeur("0", "Non", "NULL", "NULL"));
115 jpm 1770
			creerChoixUniqueBoutonRadio(radioGroup, ouiNonListe);
1771
		}
109 jpm 1772
 
115 jpm 1773
		return radioGroup;
109 jpm 1774
	}
1775
 
115 jpm 1776
	private void creerChoixUniqueBoutonRadio(RadioGroup radioGroupe, ValeurListe listeValeurs) {
1777
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
1778
			Valeur val = listeValeurs.get(it.next());
1779
 
1780
			Radio radioBtn = new Radio();
119 jpm 1781
			radioBtn.setName(radioGroupe.getName().replace("_grp", ""));
188 jp_milcent 1782
			radioBtn.setId(val.getId()+"_"+radioBtn.getName());
115 jpm 1783
			radioBtn.setBoxLabel(val.getNom());
188 jp_milcent 1784
			radioBtn.setValueAttribute(val.getId());
119 jpm 1785
			radioBtn.addListener(Events.Change, new Listener<ComponentEvent>() {
115 jpm 1786
 
119 jpm 1787
				public void handleEvent(ComponentEvent be) {
133 jpm 1788
					//Window.alert(((Radio) be.component).getName());
1789
					afficherChampSupplementaire(((Radio) be.component));
115 jpm 1790
				}
1791
 
1792
			});
119 jpm 1793
 
115 jpm 1794
			if (! val.getDescription().equals("NULL")) {
1795
				radioBtn.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
1796
			}
188 jp_milcent 1797
			radioGroupe.add(radioBtn);
115 jpm 1798
		}
1799
	}
1800
 
1801
	private void afficherChampSupplementaire(Radio radioBtn) {
119 jpm 1802
		//GWT.log("Nom btn : "+radioBtn.getName()+" - Nom group : "+radioBtn.getGroup().getName(), null);
115 jpm 1803
		// Valeur du bouton radio déclenchant l'affichage des composants cachés
1804
		String valeurPourAfficher = "oui";
111 jpm 1805
 
115 jpm 1806
		// Construction de la liste des composants à afficher/cacher
1807
		String radioGroupeNom = radioBtn.getGroup().getName();
1808
		ArrayList<Object> composants = new ArrayList<Object>();
1809
		if (radioGroupeNom.equals("action_mark_grp")) {
1810
			composants.add(actionTrukCp);
1811
		} else if (radioGroupeNom.equals("future_action_mark_grp")) {
1812
			composants.add(futureActionChp);
1813
		} else if (radioGroupeNom.equals("sans_motif_acces_mark_grp")) {
1814
			composants.add(sansMotifAccesChp);
1815
		} else if (radioGroupeNom.equals("avec_motif_acces_mark_grp")) {
1816
			composants.add(avecMotifAccesChp);
1817
		} else if (radioGroupeNom.equals("recherche_mark_grp")) {
1818
			composants.add(provenanceRechercheTrukCp);
119 jpm 1819
			composants.add(typeRechercheTrukCp);
115 jpm 1820
		} else if (radioGroupeNom.equals("formation_mark_grp")) {
1821
			composants.add(formationChp);
1822
		} else if (radioGroupeNom.equals("collection_commune_mark_grp")) {
1823
			composants.add(collectionAutreTrukCp);
1824
		} else if (radioGroupeNom.equals("restauration_mark_grp")) {
1825
			composants.add(opRestauTrukCp);
1826
		} else if (radioGroupeNom.equals("traitement_mark_grp")) {
1827
			composants.add(traitementTrukCp);
1828
		} else if (radioGroupeNom.equals("echantillon_acquisition_mark_grp")) {
1829
			composants.add(traitementAcquisitionMarkRGrpChp);
1830
		} else if (radioGroupeNom.equals("traitement_acquisition_mark_grp")) {
1831
			composants.add(traitementAcquisitionMarkLabel);
1832
			composants.add(poisonTraitementTrukCp);
1833
			composants.add(insecteTraitementTrukCp);
1834
		} else if (radioGroupeNom.equals("materiel_conservation_ce_grp")) {
1835
			composants.add(autreMaterielTrukCp);
1836
			valeurPourAfficher = "non";
1837
		}
111 jpm 1838
 
115 jpm 1839
		// Nous affichons/cachons les composant de la liste
211 jp_milcent 1840
		final int nbreComposants = composants.size();
115 jpm 1841
		//GWT.log("Id : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax, null);
119 jpm 1842
		//Window.alert("Radio grp nom : "+radioGroupeNom+" - Id btn : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax);
211 jp_milcent 1843
		for (int i = 0; i < nbreComposants; i++) {
111 jpm 1844
			// En fonction du type de bouton cliquer, on affiche ou cache les champs
115 jpm 1845
			String type = radioBtn.getBoxLabel().toLowerCase();
119 jpm 1846
			//GWT.log(type, null);
115 jpm 1847
			if (radioBtn.getValue() == true) {
1848
				if (type.equals(valeurPourAfficher)) {
1849
					((Component) composants.get(i)).show();
1850
				} else {
1851
					((Component) composants.get(i)).hide();
1852
				}
111 jpm 1853
			}
1854
			// Si on a à faire à un ContentPanel, on l'actualise pour déclencher l'affichage
115 jpm 1855
			if (composants.get(i) instanceof ContentPanel) {
1856
				((ContentPanel) composants.get(i)).layout();
111 jpm 1857
			}
1858
		}
1859
 
1860
	}
1861
 
109 jpm 1862
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
1863
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
1864
	 * Ajoute ou pas un champ "Autre".
1865
	 *
1866
	 * @param listeNom nom de la liste de valeur
1867
	 * @return
1868
	 */
1869
	private ContentPanel creerChoixMultipleCp(String listeNom) {
119 jpm 1870
		modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
109 jpm 1871
		ContentPanel cp = new ContentPanel();
1872
		cp.setLayout(creerFormLayout(650, LabelAlign.TOP, 0));
1873
		cp.setHeaderVisible(false);
1874
		return cp;
1875
	}
1876
 
1877
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
1878
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
1879
	 * Ajoute ou pas un champ "Autre".
1880
	 *
1881
	 * @param cp panneau conteant le groupe de case à cocher
1882
	 * @param cacGroup le groupe de case à cocher
1883
	 * @param listeValeurs la liste de valeurs à transformer en case à cocher
1884
	 * @param boolAutreChp booléen indiquant si oui ou non le champ autre doit apparaître
1885
	 * @return
1886
	 */
188 jp_milcent 1887
	private void creerChoixMultipleCac(ContentPanel cp, CheckBoxGroup cacGroupe, ValeurListe listeValeurs, Field<String> autreChp) {
110 jpm 1888
		cacGroupe.setAutoWidth(true);
188 jp_milcent 1889
		cacGroupe.setData("liste_id", listeValeurs.getId());
109 jpm 1890
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
111 jpm 1891
			Valeur val = listeValeurs.get(it.next());
1892
			String nom =  val.get("nom");
109 jpm 1893
			CheckBox cac = new CheckBox();
115 jpm 1894
			cac.setId("val-"+val.getId());
188 jp_milcent 1895
			cac.setData("id", val.getId());
111 jpm 1896
			cac.setBoxLabel(nom);
1897
			if (! val.getDescription().equals("NULL")) {
1898
				cac.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
109 jpm 1899
			}
1900
			cacGroupe.add(cac);
1901
		}
1902
		cp.add(cacGroupe);
1903
 
188 jp_milcent 1904
		if (autreChp != null) {
109 jpm 1905
			ContentPanel autreCp = new ContentPanel();
1906
			autreCp.setLayout(creerFormLayout(75, LabelAlign.TOP, 0));
1907
			autreCp.setHeaderVisible(false);
188 jp_milcent 1908
			autreChp.setId("autre-"+listeValeurs.getId());
119 jpm 1909
			autreChp.setFieldLabel("Autre");
1910
			autreChp.setLabelStyle("font-weight:normal;");
1911
			autreCp.add(autreChp);
109 jpm 1912
			cp.add(autreCp);
1913
		}
1914
 
1915
		cp.layout();
1916
	}
1917
 
69 jpm 1918
	public void rafraichir(Object nouvelleDonnees) {
211 jp_milcent 1919
		try {
1920
			if (nouvelleDonnees instanceof Information) {
1921
				Information info = (Information) nouvelleDonnees;
1922
				if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
1923
					GWT.log(info.getMessages().toString(), null);
188 jp_milcent 1924
				}
211 jp_milcent 1925
				if (info.getType().equals("modif_structure")) {
1926
					Info.display("Modification d'une institution", info.toString());
1927
				} else if (info.getType().equals("ajout_structure")) {
231 jp_milcent 1928
					if (info.toString().matches("^[0-9]+$")) {
1929
						Info.display("Ajout d'une Institution", "L'intitution a bien été ajoutée");
1930
						// Suite à la récupération de l'id de l'institution nouvellement ajoutée nous ajoutons le personnel
1931
						mediateur.ajouterStructureAPersonne(this, info.toString(), personnelAjoute);
1932
					} else {
1933
						Info.display("Ajout d'une Institution", info.toString());
1934
					}
1935
				} else if (info.getType().equals("modif_structure_a_personne")) {
1936
					Info.display("Modification du Personnel", info.toString());
1937
				} else if (info.getType().equals("suppression_structure_a_personne")) {
1938
					Info.display("Suppression du Personnel", info.toString());
1939
				} else if (info.getType().equals("ajout_structure_a_personne")) {
1940
					Info.display("Ajout du Personnel", info.toString());
211 jp_milcent 1941
				} else if (info.getType().equals("selection_structure")) {
1942
					Info.display("Modification d'une institution", info.toString());
1943
					mode = "MODIF";
1944
					GWT.log("Mode du formulaire : "+mode, null);
1945
					String titre = i18nC.titreModifFormStructurePanneau();
1946
					if (info.getDonnee(0) != null) {
1947
						identification = (Structure) info.getDonnee(0);
1948
						if (onglets.getSelectedItem().equals(identificationOnglet)) {
1949
							peuplerStructureIdentification();
1950
						}
1951
						// Composition du titre
1952
						titre += " - ID : "+identification.getId();
192 jp_milcent 1953
					}
211 jp_milcent 1954
					if (info.getDonnee(1) != null) {
1955
						conservation = (StructureConservation) info.getDonnee(1);
1956
						if (onglets.getSelectedItem().equals(conservationOnglet)) {
1957
							peuplerStructureConservation();
206 jp_milcent 1958
						}
1959
					}
211 jp_milcent 1960
					if (info.getDonnee(2) != null) {
1961
						valorisation = (StructureValorisation) info.getDonnee(2);
1962
						if (valorisation != null) {
1963
							if (onglets.getSelectedItem().equals(valorisationOnglet)) {
1964
								peuplerStructureValorisation();
1965
							}
1966
						}
111 jpm 1967
					}
211 jp_milcent 1968
					structureFormPanneau.setHeading(titre);
1969
				} else if (info.getType().equals("liste_structure_a_personne")) {
1970
					if (info.getDonnee(0) != null) {
213 jp_milcent 1971
						personnel = (StructureAPersonneListe) info.getDonnee(0);
243 jp_milcent 1972
 
1973
						// Création des objets contenant les manipulations de la grille
1974
						personnelModifie = new StructureAPersonneListe();
1975
						personnelAjoute = new StructureAPersonneListe();
1976
						personnelSupprime = new StructureAPersonneListe();
1977
 
211 jp_milcent 1978
						//GWT.log(personnel.toString(), null);
1979
						if (onglets.getSelectedItem().equals(personnelOnglet)) {
1980
							peuplerStructurePersonnel();
243 jp_milcent 1981
							Info.display("Chargement du Personnel", "ok");
211 jp_milcent 1982
						}
111 jpm 1983
					}
231 jp_milcent 1984
					if (info.getDonnee(1) != null) {
1985
						Info.display("Debug", info.getDonnee(1).toString());
1986
					}
243 jp_milcent 1987
				} else if (info.getType().equals("liste_personne")) {
1988
					if (info.getDonnee(0) != null) {
1989
						PersonneListe personnes = (PersonneListe) info.getDonnee(0);
1990
 
1991
						List<Personne> liste = new ArrayList<Personne>();
1992
						for (Iterator<String> it = personnes.keySet().iterator(); it.hasNext();) {
1993
							liste.add(personnes.get(it.next()));
1994
						}
1995
 
1996
						GWT.log("Nbre de personnes trouvées :"+personnes.size(), null);
1997
						personneExistanteMagazin.removeAll();
1998
						personneExistanteMagazin.add(liste);
1999
						personneExistanteCombo.setStore(personneExistanteMagazin);
2000
						personneExistanteCombo.expand();
2001
					}
110 jpm 2002
				}
211 jp_milcent 2003
			} else if (nouvelleDonnees instanceof ValeurListe) {
2004
				ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;
2005
 
2006
				List<Valeur> liste = new ArrayList<Valeur>();
2007
				for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
2008
					liste.add(listeValeurs.get(it.next()));
110 jpm 2009
				}
211 jp_milcent 2010
				// Test pour savoir si la liste contient des éléments
2011
				if (liste.size() > 0) {
2012
					Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
2013
					if (listeValeurs.getId().equals(config.getListeId("stpr"))) {
2014
						magazinLstpr.removeAll();
2015
						magazinLstpr.add(liste);
2016
						comboLstpr.setStore(magazinLstpr);
110 jpm 2017
					}
211 jp_milcent 2018
					if (listeValeurs.getId().equals(config.getListeId("stpu"))) {
2019
						magazinLstpu.removeAll();
2020
						magazinLstpu.add(liste);
2021
						comboLstpu.setStore(magazinLstpu);
110 jpm 2022
					}
211 jp_milcent 2023
					if (listeValeurs.getId().equals(config.getListeId("statut"))) {
2024
						magazinLiStatut.removeAll();
2025
						magazinLiStatut.add(liste);
2026
						comboLiStatut.setStore(magazinLiStatut);
2027
					}
2028
					if (listeValeurs.getId().equals(config.getListeId("fonction"))) {
2029
						magazinLiFonction.removeAll();
2030
						magazinLiFonction.add(liste);
2031
						comboLiFonction.setStore(magazinLiFonction);
2032
					}
2033
					if (listeValeurs.getId().equals(config.getListeId("pays"))) {
2034
						magazinPays.removeAll();
2035
						magazinPays.add(liste);
2036
						comboPays.setStore(magazinPays);
2037
					}
2038
					if (listeValeurs.getId().equals(config.getListeId("localStockage"))) {
2039
						localStockageAutreChp = new TextField<String>();
2040
						creerChoixMultipleCac(localStockageTrukCp, localStockageTrukCacGrpChp, listeValeurs, localStockageAutreChp);
2041
					}
2042
					if (listeValeurs.getId().equals(config.getListeId("meubleStockage"))) {
2043
						meubleStockageAutreChp = new TextField<String>();
2044
						creerChoixMultipleCac(meubleStockageTrukCp, meubleStockageTrukCacGrpChp, listeValeurs, meubleStockageAutreChp);
2045
					}
2046
					if (listeValeurs.getId().equals(config.getListeId("parametreStockage"))) {
2047
						parametreStockageAutreChp = new TextField<String>();
2048
						creerChoixMultipleCac(parametreStockageTrukCp, parametreStockageTrukCacGrpChp, listeValeurs, parametreStockageAutreChp);
2049
					}
2050
					if (listeValeurs.getId().equals(config.getListeId("autreCollection"))) {
2051
						if (collectionAutreTrukCp.getItemByItemId("collectionAutreTrukCacGrpChp") == null) {
2052
							collectionAutreTrukCacGrpChp.setId("collectionAutreTrukCacGrpChp");
2053
							collectionAutreAutreChp = new TextField<String>();
2054
							creerChoixMultipleCac(collectionAutreTrukCp, collectionAutreTrukCacGrpChp, listeValeurs, collectionAutreAutreChp);
2055
						}
2056
						if (autreCollectionTrukCp.getItemByItemId("autreCollectionTrukCacGrpChp") == null) {
2057
							autreCollectionTrukCacGrpChp.setId("autreCollectionTrukCacGrpChp");
2058
							autreCollectionAutreChp = new TextField<String>();
2059
							creerChoixMultipleCac(autreCollectionTrukCp, autreCollectionTrukCacGrpChp, listeValeurs, autreCollectionAutreChp);
2060
						}
2061
					}
2062
					if (listeValeurs.getId().equals(config.getListeId("opRestau"))) {
2063
						opRestauAutreChp = new TextField<String>();
2064
						creerChoixMultipleCac(opRestauTrukCp, opRestauTrukCacGrpChp, listeValeurs, opRestauAutreChp);
2065
					}
2066
					if (listeValeurs.getId().equals(config.getListeId("onep"))) {
2067
						creerChoixUniqueBoutonRadio(materielConservationCeRGrpChp, listeValeurs);
2068
						materielConservationCp.add(materielConservationCeRGrpChp);
2069
						materielConservationCp.layout();
2070
					}
2071
					if (listeValeurs.getId().equals(config.getListeId("autreMateriel"))) {
2072
						autreMaterielAutreChp = new TextField<String>();
2073
						creerChoixMultipleCac(autreMaterielTrukCp, autreMaterielTrukCacGrpChp, listeValeurs, autreMaterielAutreChp);
2074
					}
2075
					if (listeValeurs.getId().equals(config.getListeId("poisonTraitement"))) {
2076
						poisonTraitementAutreChp = new TextField<String>();
2077
						creerChoixMultipleCac(poisonTraitementTrukCp, poisonTraitementTrukCacGrpChp, listeValeurs, poisonTraitementAutreChp);
2078
					}
2079
					if (listeValeurs.getId().equals(config.getListeId("insecteTraitement"))) {
2080
						if (traitementTrukCp.getItemByItemId("traitementTrukCacGrpChp") == null) {
2081
							traitementTrukCacGrpChp.setId("traitementTrukCacGrpChp");
2082
							traitementAutreChp = new TextField<String>();
2083
							creerChoixMultipleCac(traitementTrukCp, traitementTrukCacGrpChp, listeValeurs, traitementAutreChp);
2084
						}
2085
						if (insecteTraitementTrukCp.getItemByItemId("insecteTraitementTrukCacGrpChp") == null) {
2086
							insecteTraitementTrukCacGrpChp.setId("insecteTraitementTrukCacGrpChp");
2087
							insecteTraitementAutreChp = new TextField<String>();
2088
							creerChoixMultipleCac(insecteTraitementTrukCp, insecteTraitementTrukCacGrpChp, listeValeurs, insecteTraitementAutreChp);
2089
						}
2090
					}
2091
					if (listeValeurs.getId().equals(config.getListeId("actionValorisation"))) {
2092
						actionAutreChp = new TextField<String>();
2093
						creerChoixMultipleCac(actionTrukCp, actionTrukCacGrpChp, listeValeurs, actionAutreChp);
2094
					}
2095
					if (listeValeurs.getId().equals(config.getListeId("continentEtFr"))) {
2096
						provenanceRechercheAutreChp = new TextField<String>();
2097
						creerChoixMultipleCac(provenanceRechercheTrukCp, provenanceRechercheTrukCacGrpChp, listeValeurs, provenanceRechercheAutreChp);
2098
					}
2099
					if (listeValeurs.getId().equals(config.getListeId("typeRecherche"))) {
2100
						typeRechercheAutreChp = new TextField<String>();
2101
						creerChoixMultipleCac(typeRechercheTrukCp, typeRechercheTrukCacGrpChp, listeValeurs, typeRechercheAutreChp);
2102
					}
2103
					//GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
2104
				} else {
2105
					GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);
110 jpm 2106
				}
91 jpm 2107
			}
211 jp_milcent 2108
		} catch (Exception e) {
2109
			GWT.log("rafraichir()", e);
91 jpm 2110
		}
69 jpm 2111
	}
243 jp_milcent 2112
 
2113
	private void rafraichirPersonnel() {
2114
		mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE);
2115
	}
2116
 
2117
	private void rafraichirPersonneExistante(String nom) {
245 jp_milcent 2118
		mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%");
243 jp_milcent 2119
	}
115 jpm 2120
}