Subversion Repositories eFlore/Applications.coel

Rev

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