Subversion Repositories eFlore/Applications.coel

Rev

Rev 877 | Rev 887 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 877 Rev 884
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.Iterator;
4
import java.util.Iterator;
5
import java.util.List;
5
import java.util.List;
6
 
6
 
7
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.images.Images;
8
import org.tela_botanica.client.images.Images;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.modeles.Information;
10
import org.tela_botanica.client.modeles.Information;
11
import org.tela_botanica.client.modeles.MenuApplicationId;
11
import org.tela_botanica.client.modeles.MenuApplicationId;
12
import org.tela_botanica.client.modeles.Personne;
12
import org.tela_botanica.client.modeles.Personne;
13
import org.tela_botanica.client.modeles.PersonneListe;
13
import org.tela_botanica.client.modeles.PersonneListe;
14
import org.tela_botanica.client.modeles.Publication;
14
import org.tela_botanica.client.modeles.Publication;
15
import org.tela_botanica.client.modeles.PublicationAPersonne;
15
import org.tela_botanica.client.modeles.PublicationAPersonne;
16
import org.tela_botanica.client.modeles.PublicationAPersonneListe;
16
import org.tela_botanica.client.modeles.PublicationAPersonneListe;
17
import org.tela_botanica.client.modeles.Structure;
17
import org.tela_botanica.client.modeles.Structure;
18
import org.tela_botanica.client.modeles.StructureListe;
18
import org.tela_botanica.client.modeles.StructureListe;
19
import org.tela_botanica.client.util.Pattern;
19
import org.tela_botanica.client.util.Pattern;
20
import org.tela_botanica.client.util.UtilArray;
20
import org.tela_botanica.client.util.UtilArray;
-
 
21
import org.tela_botanica.client.util.UtilString;
21
 
22
 
22
import com.extjs.gxt.ui.client.event.ButtonEvent;
23
import com.extjs.gxt.ui.client.event.ButtonEvent;
23
import com.extjs.gxt.ui.client.event.SelectionListener;
24
import com.extjs.gxt.ui.client.event.SelectionListener;
24
import com.extjs.gxt.ui.client.store.ListStore;
25
import com.extjs.gxt.ui.client.store.ListStore;
25
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
26
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
26
import com.extjs.gxt.ui.client.widget.LayoutContainer;
27
import com.extjs.gxt.ui.client.widget.LayoutContainer;
27
import com.extjs.gxt.ui.client.widget.MessageBox;
28
import com.extjs.gxt.ui.client.widget.MessageBox;
28
import com.extjs.gxt.ui.client.widget.button.Button;
29
import com.extjs.gxt.ui.client.widget.button.Button;
29
import com.extjs.gxt.ui.client.widget.form.ComboBox;
30
import com.extjs.gxt.ui.client.widget.form.ComboBox;
30
import com.extjs.gxt.ui.client.widget.form.FieldSet;
31
import com.extjs.gxt.ui.client.widget.form.FieldSet;
31
import com.extjs.gxt.ui.client.widget.form.TextField;
32
import com.extjs.gxt.ui.client.widget.form.TextField;
32
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
33
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
33
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
34
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
34
import com.extjs.gxt.ui.client.widget.layout.FormData;
35
import com.extjs.gxt.ui.client.widget.layout.FormData;
35
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
36
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
36
import com.google.gwt.core.client.GWT;
37
import com.google.gwt.core.client.GWT;
37
 
38
 
38
 
39
 
39
public class PublicationForm extends Formulaire implements Rafraichissable {
40
public class PublicationForm extends Formulaire implements Rafraichissable {
40
	
41
	
41
	private Publication publication;
42
	private Publication publication;
42
	private PublicationAPersonneListe publicationAPersonneListe = null;
43
	private PublicationAPersonneListe publicationAPersonneListe = null;
43
	private boolean publicationAPersonneListeChargementOk = false;
44
	private boolean publicationAPersonneListeChargementOk = false;
44
	
45
	
45
	private FieldSet auteursFieldset = null;
46
	private FieldSet auteursFieldset = null;
46
	private ArrayList<ComboBox<Personne>> auteurComboboxListe = null;
47
	private ArrayList<ComboBox<Personne>> auteurComboboxListe = null;
47
	private LayoutContainer conteneurChamps;
48
	private LayoutContainer conteneurChamps;
48
	private ListStore<Personne> auteursStorePartage = null;
49
	private ListStore<Personne> auteursStorePartage = null;
49
	private boolean auteurStorePartageChargementOk = false;
50
	private boolean auteurStorePartageChargementOk = false;
50
	
51
	
51
	private FieldSet generalitesFieldset = null;
52
	private FieldSet generalitesFieldset = null;
52
	private TextField<String> titreChp = null;
53
	private TextField<String> titreChp = null;
53
	private TextField<String> collectionChp = null;
54
	private TextField<String> collectionChp = null;
54
	private TextField<String> uriChp = null;
55
	private TextField<String> uriChp = null;
55
	
56
	
56
	private FieldSet editionFieldset = null;
57
	private FieldSet editionFieldset = null;
57
	private ComboBox<Structure> editeurCombobox = null;
58
	private ComboBox<Structure> editeurCombobox = null;
58
	private TextField<String> datePublicationChp = null;
59
	private TextField<String> datePublicationChp = null;
59
	private TextField<String> tomeChp = null;
60
	private TextField<String> tomeChp = null;
60
	private TextField<String> fasciculeChp = null;
61
	private TextField<String> fasciculeChp = null;
61
	private TextField<String> pagesChp = null;
62
	private TextField<String> pagesChp = null;
62
	
63
	
63
	private String idStructureEdition = ""; 
64
	private String idStructureEdition = ""; 
64
	private String idAuteurs = "";
65
	private String idAuteurs = "";
65
 
66
 
66
	private boolean formulaireValideOk = false;
67
	private boolean formulaireValideOk = false;
67
	private boolean publicationValideOk = false;
68
	private boolean publicationValideOk = false;
68
	private boolean auteursValideOk = false;
69
	private boolean auteursValideOk = false;
69
 
70
 
70
	public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
71
	public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
71
		initialiserPublicationForm(mediateurCourrant, publicationId);
72
		initialiserPublicationForm(mediateurCourrant, publicationId);
72
	}
73
	}
73
 
74
 
74
	public PublicationForm(Mediateur mediateurCourrant, String publicationId, Rafraichissable vueARafraichirApresValidation) {
75
	public PublicationForm(Mediateur mediateurCourrant, String publicationId, Rafraichissable vueARafraichirApresValidation) {
75
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
76
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
76
		initialiserPublicationForm(mediateurCourrant, publicationId);
77
		initialiserPublicationForm(mediateurCourrant, publicationId);
77
	}
78
	}
78
	
79
	
79
	private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) {
80
	private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) {
80
		publication = new Publication();
81
		publication = new Publication();
81
		publication.setId(publicationId);
82
		publication.setId(publicationId);
82
		
83
		
83
		String modeDeCreation = (publication.getId().isEmpty() ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
84
		String modeDeCreation = (UtilString.isEmpty(publication.getId()) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
84
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
85
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
85
		
86
		
86
		panneauFormulaire.setLayout(new FlowLayout());
87
		panneauFormulaire.setLayout(new FlowLayout());
87
		String titre = genererTitreFormulaire();
88
		String titre = genererTitreFormulaire();
88
		panneauFormulaire.setHeading(titre);
89
		panneauFormulaire.setHeading(titre);
89
 
90
 
90
		creerZoneAuteurs();
91
		creerZoneAuteurs();
91
		panneauFormulaire.add(auteursFieldset);
92
		panneauFormulaire.add(auteursFieldset);
92
		
93
		
93
		creerZoneGeneralites();
94
		creerZoneGeneralites();
94
		panneauFormulaire.add(generalitesFieldset);
95
		panneauFormulaire.add(generalitesFieldset);
95
		
96
		
96
		creerZoneEdition();
97
		creerZoneEdition();
97
		panneauFormulaire.add(editionFieldset);
98
		panneauFormulaire.add(editionFieldset);
98
		
99
		
99
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
100
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
100
			mediateurCourrant.selectionnerPublication(this, publicationId);
101
			mediateurCourrant.selectionnerPublication(this, publicationId);
101
			mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR);
102
			mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR);
102
		}
103
		}
103
	}
104
	}
104
	
105
	
105
	private String genererTitreFormulaire() {
106
	private String genererTitreFormulaire() {
106
		String titre = "Ajout d'une publication";
107
		String titre = "Ajout d'une publication";
107
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
108
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
108
			 titre = "Modification d'une publication - "+i18nC.id()+": "+publication.getId();
109
			 titre = "Modification d'une publication - "+i18nC.id()+": "+publication.getId();
109
		}
110
		}
110
		return titre;
111
		return titre;
111
	}
112
	}
112
	
113
	
113
	private void creerZoneAuteurs() {
114
	private void creerZoneAuteurs() {
114
		FormLayout layout = new FormLayout();
115
		FormLayout layout = new FormLayout();
115
		layout.setLabelWidth(200);
116
		layout.setLabelWidth(200);
116
		
117
		
117
		// Fieldset Auteur
118
		// Fieldset Auteur
118
		auteursFieldset = new FieldSet();
119
		auteursFieldset = new FieldSet();
119
		auteursFieldset.setHeading("Auteur(s)");
120
		auteursFieldset.setHeading("Auteur(s)");
120
		auteursFieldset.setCollapsible(true);
121
		auteursFieldset.setCollapsible(true);
121
		auteursFieldset.setLayout(layout);
122
		auteursFieldset.setLayout(layout);
122
		
123
		
123
		auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0);
124
		auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0);
124
		auteursStorePartage = new ListStore<Personne>();
125
		auteursStorePartage = new ListStore<Personne>();
125
		mediateur.clicObtenirListeAuteurs(this);
126
		mediateur.clicObtenirListeAuteurs(this);
126
		
127
		
127
		creerChampsAuteur();
128
		creerChampsAuteur();
128
	}
129
	}
129
	
130
	
130
	private void creerChampsAuteur() {
131
	private void creerChampsAuteur() {
131
		auteursFieldset.removeAll();
132
		auteursFieldset.removeAll();
132
		
133
		
133
		conteneurChamps = new LayoutContainer(); 
134
		conteneurChamps = new LayoutContainer(); 
134
				
135
				
135
		Button ajouterAuteurBouton = new Button("Ajouter un auteur");
136
		Button ajouterAuteurBouton = new Button("Ajouter un auteur");
136
		ajouterAuteurBouton.setIcon(Images.ICONES.ajouter());
137
		ajouterAuteurBouton.setIcon(Images.ICONES.ajouter());
137
		ajouterAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
138
		ajouterAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
138
			@Override
139
			@Override
139
			public void componentSelected(ButtonEvent be) {
140
			public void componentSelected(ButtonEvent be) {
140
				creerChampAuteurEtBoutonSupprimer(null);
141
				creerChampAuteurEtBoutonSupprimer(null);
141
			}
142
			}
142
		});
143
		});
143
		
144
		
144
		auteursFieldset.add(conteneurChamps);
145
		auteursFieldset.add(conteneurChamps);
145
		auteursFieldset.add(ajouterAuteurBouton);
146
		auteursFieldset.add(ajouterAuteurBouton);
146
		auteursFieldset.layout(true);
147
		auteursFieldset.layout(true);
147
		
148
		
148
		if (mode.equals(Formulaire.MODE_AJOUTER)) {
149
		if (mode.equals(Formulaire.MODE_AJOUTER)) {
149
			creerChampAuteurEtBoutonSupprimer(null);
150
			creerChampAuteurEtBoutonSupprimer(null);
150
		}
151
		}
151
	}
152
	}
152
	
153
	
153
	public void creerChampAuteurEtBoutonSupprimer(Personne auteur) {
154
	public void creerChampAuteurEtBoutonSupprimer(Personne auteur) {
154
		final HorizontalPanel panneauHorizontal = new HorizontalPanel();
155
		final HorizontalPanel panneauHorizontal = new HorizontalPanel();
155
		panneauHorizontal.setLayout(new FormLayout());
156
		panneauHorizontal.setLayout(new FormLayout());
156
		
157
		
157
		final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis();
158
		final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis();
158
		if (auteur != null) {
159
		if (auteur != null) {
159
			GWT.log(auteur.getId(), null);
160
			GWT.log(auteur.getId(), null);
160
			auteursSaisisComboBox.setValue(auteursStorePartage.findModel("id_personne", auteur.getId()));
161
			auteursSaisisComboBox.setValue(auteursStorePartage.findModel("id_personne", auteur.getId()));
161
		}
162
		}
162
		auteurComboboxListe.add(auteursSaisisComboBox);
163
		auteurComboboxListe.add(auteursSaisisComboBox);
163
		auteursSaisisComboBox.setFieldLabel("Auteur "+auteurComboboxListe.size());
164
		auteursSaisisComboBox.setFieldLabel("Auteur "+auteurComboboxListe.size());
164
		
165
		
165
		LayoutContainer panneauChampTxtEtBouton = new LayoutContainer();
166
		LayoutContainer panneauChampTxtEtBouton = new LayoutContainer();
166
		panneauChampTxtEtBouton.setLayout(new FormLayout());
167
		panneauChampTxtEtBouton.setLayout(new FormLayout());
167
		panneauChampTxtEtBouton.add(auteursSaisisComboBox, new FormData(300, 0));
168
		panneauChampTxtEtBouton.add(auteursSaisisComboBox, new FormData(300, 0));
168
		panneauHorizontal.add(panneauChampTxtEtBouton);
169
		panneauHorizontal.add(panneauChampTxtEtBouton);
169
		
170
		
170
		Button supprimerAuteurBouton = new Button();
171
		Button supprimerAuteurBouton = new Button();
171
		supprimerAuteurBouton.setIcon(Images.ICONES.supprimer());
172
		supprimerAuteurBouton.setIcon(Images.ICONES.supprimer());
172
		supprimerAuteurBouton.setToolTip(i18nC.supprimer());
173
		supprimerAuteurBouton.setToolTip(i18nC.supprimer());
173
		supprimerAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
174
		supprimerAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
174
			@Override
175
			@Override
175
			public void componentSelected(ButtonEvent be) {
176
			public void componentSelected(ButtonEvent be) {
176
				auteurComboboxListe.remove(auteursSaisisComboBox);
177
				auteurComboboxListe.remove(auteursSaisisComboBox);
177
				conteneurChamps.remove(panneauHorizontal);
178
				conteneurChamps.remove(panneauHorizontal);
178
				
179
				
179
				int numeroAuteurs = 1;
180
				int numeroAuteurs = 1;
180
				for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
181
				for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
181
					it.next().setFieldLabel("Auteur "+numeroAuteurs);
182
					it.next().setFieldLabel("Auteur "+numeroAuteurs);
182
					numeroAuteurs++;
183
					numeroAuteurs++;
183
				}
184
				}
184
 
185
 
185
				auteursFieldset.layout(true);
186
				auteursFieldset.layout(true);
186
			}
187
			}
187
		});
188
		});
188
		panneauHorizontal.add(supprimerAuteurBouton);
189
		panneauHorizontal.add(supprimerAuteurBouton);
189
		
190
		
190
		conteneurChamps.add(panneauHorizontal);
191
		conteneurChamps.add(panneauHorizontal);
191
		auteursFieldset.layout(true);
192
		auteursFieldset.layout(true);
192
	}
193
	}
193
	
194
	
194
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
195
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
195
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
196
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
196
		comboBox.setEmptyText(i18nC.chercherPersonneSaisi());
197
		comboBox.setEmptyText(i18nC.chercherPersonneSaisi());
197
		comboBox.setEditable(true);
198
		comboBox.setEditable(true);
198
		comboBox.setForceSelection(true);
199
		comboBox.setForceSelection(true);
199
		comboBox.setDisplayField("fmt_nom_complet");
200
		comboBox.setDisplayField("fmt_nom_complet");
200
		comboBox.setTriggerAction(TriggerAction.ALL);
201
		comboBox.setTriggerAction(TriggerAction.ALL);
201
		comboBox.setStore(auteursStorePartage);
202
		comboBox.setStore(auteursStorePartage);
202
 
203
 
203
		return comboBox;
204
		return comboBox;
204
	}
205
	}
205
	
206
	
206
	private void creerZoneGeneralites() {
207
	private void creerZoneGeneralites() {
207
		FormLayout layout = new FormLayout();
208
		FormLayout layout = new FormLayout();
208
		layout.setLabelWidth(200);
209
		layout.setLabelWidth(200);
209
		
210
		
210
		// Fieldset Infos Générales
211
		// Fieldset Infos Générales
211
		generalitesFieldset = new FieldSet();
212
		generalitesFieldset = new FieldSet();
212
		generalitesFieldset.setHeading("Informations générales");
213
		generalitesFieldset.setHeading("Informations générales");
213
		generalitesFieldset.setCollapsible(true);
214
		generalitesFieldset.setCollapsible(true);
214
		generalitesFieldset.setLayout(layout);
215
		generalitesFieldset.setLayout(layout);
215
		
216
		
216
		titreChp = new TextField<String>();
217
		titreChp = new TextField<String>();
217
		titreChp.setName("cpu");
218
		titreChp.setName("cpu");
218
		titreChp.setFieldLabel("Titre de l'article ou de l'ouvrage");
219
		titreChp.setFieldLabel("Titre de l'article ou de l'ouvrage");
219
		generalitesFieldset.add(titreChp, new FormData(450, 0));
220
		generalitesFieldset.add(titreChp, new FormData(450, 0));
220
		
221
		
221
		collectionChp = new TextField<String>();
222
		collectionChp = new TextField<String>();
222
		collectionChp.setFieldLabel("Intitulé de la revue ou de la collection");
223
		collectionChp.setFieldLabel("Intitulé de la revue ou de la collection");
223
		generalitesFieldset.add(collectionChp, new FormData(450, 0));
224
		generalitesFieldset.add(collectionChp, new FormData(450, 0));
224
		
225
		
225
		uriChp = new TextField<String>();
226
		uriChp = new TextField<String>();
226
		uriChp.setFieldLabel("URL de la publication");
227
		uriChp.setFieldLabel("URL de la publication");
227
		generalitesFieldset.add(uriChp, new FormData(450, 0));
228
		generalitesFieldset.add(uriChp, new FormData(450, 0));
228
	}
229
	}
229
	
230
	
230
	private void creerZoneEdition() {
231
	private void creerZoneEdition() {
231
		FormLayout layout = new FormLayout();
232
		FormLayout layout = new FormLayout();
232
		layout.setLabelWidth(200);
233
		layout.setLabelWidth(200);
233
 
234
 
234
		// Fieldset Edition
235
		// Fieldset Edition
235
		editionFieldset = new FieldSet();
236
		editionFieldset = new FieldSet();
236
		editionFieldset.setHeading("Édition");
237
		editionFieldset.setHeading("Édition");
237
		editionFieldset.setCollapsible(true);
238
		editionFieldset.setCollapsible(true);
238
		editionFieldset.setLayout(layout);
239
		editionFieldset.setLayout(layout);
239
		
240
		
240
		ListStore<Structure> editeurStore = new ListStore<Structure>();
241
		ListStore<Structure> editeurStore = new ListStore<Structure>();
241
		editeurCombobox = new ComboBox<Structure>();  
242
		editeurCombobox = new ComboBox<Structure>();  
242
		editeurCombobox.setEmptyText("Sélectionner un éditeur...");
243
		editeurCombobox.setEmptyText("Sélectionner un éditeur...");
243
		editeurCombobox.setFieldLabel("Éditeur de la publication");
244
		editeurCombobox.setFieldLabel("Éditeur de la publication");
244
		editeurCombobox.setDisplayField("nom");
245
		editeurCombobox.setDisplayField("nom");
245
		editeurCombobox.setStore(editeurStore);
246
		editeurCombobox.setStore(editeurStore);
246
		editeurCombobox.setEditable(true);
247
		editeurCombobox.setEditable(true);
247
		editeurCombobox.setTriggerAction(TriggerAction.ALL);
248
		editeurCombobox.setTriggerAction(TriggerAction.ALL);
248
		editionFieldset.add(editeurCombobox, new FormData(450, 0));
249
		editionFieldset.add(editeurCombobox, new FormData(450, 0));
249
		mediateur.clicObtenirListeEditeurs(this);
250
		mediateur.clicObtenirListeEditeurs(this);
250
		
251
		
251
		datePublicationChp = new TextField<String>();
252
		datePublicationChp = new TextField<String>();
252
		datePublicationChp.setMaxLength(4);
253
		datePublicationChp.setMaxLength(4);
253
		datePublicationChp.setMinLength(4);
254
		datePublicationChp.setMinLength(4);
254
		datePublicationChp.setFieldLabel("Année de publication");
255
		datePublicationChp.setFieldLabel("Année de publication");
255
		editionFieldset.add(datePublicationChp, new FormData(40, 0));
256
		editionFieldset.add(datePublicationChp, new FormData(40, 0));
256
		
257
		
257
		tomeChp = new TextField<String>();
258
		tomeChp = new TextField<String>();
258
		tomeChp.setFieldLabel("Série de la revue ou tome");
259
		tomeChp.setFieldLabel("Série de la revue ou tome");
259
		editionFieldset.add(tomeChp, new FormData(75, 0));
260
		editionFieldset.add(tomeChp, new FormData(75, 0));
260
		
261
		
261
		fasciculeChp = new TextField<String>();
262
		fasciculeChp = new TextField<String>();
262
		fasciculeChp.setFieldLabel("Fascicule de la revue");
263
		fasciculeChp.setFieldLabel("Fascicule de la revue");
263
		editionFieldset.add(fasciculeChp, new FormData(75, 0));
264
		editionFieldset.add(fasciculeChp, new FormData(75, 0));
264
		
265
		
265
		pagesChp = new TextField<String>();
266
		pagesChp = new TextField<String>();
266
		pagesChp.setFieldLabel("Pages");
267
		pagesChp.setFieldLabel("Pages");
267
		pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'intérogation '?' dans le cas d'une donnée inconnue)");
268
		pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'intérogation '?' dans le cas d'une donnée inconnue)");
268
		editionFieldset.add(pagesChp, new FormData(100, 0));
269
		editionFieldset.add(pagesChp, new FormData(100, 0));
269
	}
270
	}
270
 
271
 
271
	public void rafraichir(Object nouvellesDonnees) {
272
	public void rafraichir(Object nouvellesDonnees) {
272
		if (nouvellesDonnees instanceof Publication) {
273
		if (nouvellesDonnees instanceof Publication) {
273
			// Si on a reçu les details d'une publication
274
			// Si on a reçu les details d'une publication
274
			rafraichirPublication((Publication) nouvellesDonnees);
275
			rafraichirPublication((Publication) nouvellesDonnees);
275
		} else if (nouvellesDonnees instanceof StructureListe) {
276
		} else if (nouvellesDonnees instanceof StructureListe) {
276
			// Si on a reçu une liste des editeurs
277
			// Si on a reçu une liste des editeurs
277
			rafraichirListeEditeurs((StructureListe) nouvellesDonnees);
278
			rafraichirListeEditeurs((StructureListe) nouvellesDonnees);
278
		} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
279
		} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
279
			rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
280
			rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
280
		} else if (nouvellesDonnees instanceof Information) {
281
		} else if (nouvellesDonnees instanceof Information) {
281
			rafraichirInformation((Information) nouvellesDonnees);	
282
			rafraichirInformation((Information) nouvellesDonnees);	
282
		} else {
283
		} else {
283
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
284
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
284
		}
285
		}
285
		
286
		
286
		if (etrePretAAfficherAuteurs()) {
287
		if (etrePretAAfficherAuteurs()) {
287
			afficherAuteurs();
288
			afficherAuteurs();
288
		}
289
		}
289
		
290
		
290
		if (etreValide()) {
291
		if (etreValide()) {
291
			initialiserValidation();
292
			initialiserValidation();
292
			repandreRafraichissement();
293
			repandreRafraichissement();
293
			controlerFermetureApresRafraichissement();
294
			controlerFermetureApresRafraichissement();
294
		}
295
		}
295
	}
296
	}
296
 
297
 
297
	private void rafraichirPublication(Publication publi) {
298
	private void rafraichirPublication(Publication publi) {
298
		publication = publi;
299
		publication = publi;
299
		peuplerFormulaire();
300
		peuplerFormulaire();
300
	}
301
	}
301
	
302
	
302
	private void rafraichirListeEditeurs(StructureListe editeurs) {
303
	private void rafraichirListeEditeurs(StructureListe editeurs) {
303
		editeurCombobox.getStore().removeAll();
304
		editeurCombobox.getStore().removeAll();
304
		editeurCombobox.getStore().add((List<Structure>) editeurs.toList());
305
		editeurCombobox.getStore().add((List<Structure>) editeurs.toList());
305
		
306
		
306
		if (mode.equals(Formulaire.MODE_MODIFIER)) {	
307
		if (mode.equals(Formulaire.MODE_MODIFIER)) {	
307
			editeurCombobox.setValue((Structure) editeurs.get(idStructureEdition));
308
			editeurCombobox.setValue((Structure) editeurs.get(idStructureEdition));
308
		}
309
		}
309
		editeurCombobox.expand();
310
		editeurCombobox.expand();
310
	}
311
	}
311
	
312
	
312
	private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
313
	private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
313
		publicationAPersonneListe = auteurs;
314
		publicationAPersonneListe = auteurs;
314
		publicationAPersonneListeChargementOk = true;
315
		publicationAPersonneListeChargementOk = true;
315
	}
316
	}
316
	
317
	
317
	private void rafraichirInformation(Information info) {
318
	private void rafraichirInformation(Information info) {
318
		if (info.getType().equals("liste_personne")) {
319
		if (info.getType().equals("liste_personne")) {
319
			PersonneListe listePersonneAuteur = (PersonneListe) info.getDonnee(0);
320
			PersonneListe listePersonneAuteur = (PersonneListe) info.getDonnee(0);
320
			
321
			
321
			List<Personne> liste = listePersonneAuteur.toList();
322
			List<Personne> liste = listePersonneAuteur.toList();
322
			auteursStorePartage.removeAll();
323
			auteursStorePartage.removeAll();
323
			auteursStorePartage.add(liste);
324
			auteursStorePartage.add(liste);
324
			
325
			
325
			auteurStorePartageChargementOk = true;
326
			auteurStorePartageChargementOk = true;
326
		} else if (info.getType().equals("publication_valide")) {
327
		} else if (info.getType().equals("publication_valide")) {
327
			publicationValideOk = true;
328
			publicationValideOk = true;
328
			publication.setId((String) info.getDonnee(0));
329
			publication.setId((String) info.getDonnee(0));
329
			
330
			
330
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
331
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
331
				mediateur.ajouterPublicationAPersonne(this, publication.getId(), idAuteurs, PublicationAPersonne.ROLE_AUTEUR);
332
				mediateur.ajouterPublicationAPersonne(this, publication.getId(), idAuteurs, PublicationAPersonne.ROLE_AUTEUR);
332
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
333
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
333
				mediateur.modifierPublicationAPersonne(this, publication.getId(), idAuteurs, PublicationAPersonne.ROLE_AUTEUR);
334
				mediateur.modifierPublicationAPersonne(this, publication.getId(), idAuteurs, PublicationAPersonne.ROLE_AUTEUR);
334
			}
335
			}
335
		} else if (info.getType().equals("auteur_valide")) {
336
		} else if (info.getType().equals("auteur_valide")) {
336
			auteursValideOk = true;
337
			auteursValideOk = true;
337
		}
338
		}
338
	}
339
	}
339
	
340
	
340
	private void afficherAuteurs() {
341
	private void afficherAuteurs() {
341
		Iterator<String> itap = publicationAPersonneListe.keySet().iterator();
342
		Iterator<String> itap = publicationAPersonneListe.keySet().iterator();
342
		while (itap.hasNext()) {
343
		while (itap.hasNext()) {
343
			creerChampAuteurEtBoutonSupprimer(publicationAPersonneListe.get(itap.next()).getPersonne());
344
			creerChampAuteurEtBoutonSupprimer(publicationAPersonneListe.get(itap.next()).getPersonne());
344
		}
345
		}
345
		initialiserAffichageAuteurs();
346
		initialiserAffichageAuteurs();
346
	}
347
	}
347
 
348
 
348
	private void initialiserAffichageAuteurs() {
349
	private void initialiserAffichageAuteurs() {
349
		auteurStorePartageChargementOk = false;
350
		auteurStorePartageChargementOk = false;
350
		publicationAPersonneListeChargementOk = false;
351
		publicationAPersonneListeChargementOk = false;
351
	}
352
	}
352
 
353
 
353
	private boolean etrePretAAfficherAuteurs() {
354
	private boolean etrePretAAfficherAuteurs() {
354
		boolean ok = false;
355
		boolean ok = false;
355
		if (auteurStorePartageChargementOk && publicationAPersonneListeChargementOk) {
356
		if (auteurStorePartageChargementOk && publicationAPersonneListeChargementOk) {
356
			ok = true;
357
			ok = true;
357
		}
358
		}
358
		return ok;
359
		return ok;
359
	}
360
	}
360
 
361
 
361
	private Boolean etreValide() {
362
	private Boolean etreValide() {
362
		Boolean valide = false;
363
		Boolean valide = false;
363
		GWT.log("formulaire"+formulaireValideOk+" - Publication :"+publicationValideOk+" - Auteurs :"+auteursValideOk, null);
364
		GWT.log("formulaire"+formulaireValideOk+" - Publication :"+publicationValideOk+" - Auteurs :"+auteursValideOk, null);
364
		if (formulaireValideOk && publicationValideOk && auteursValideOk) {
365
		if (formulaireValideOk && publicationValideOk && auteursValideOk) {
365
			valide = true;
366
			valide = true;
366
		}
367
		}
367
		return valide;
368
		return valide;
368
	}
369
	}
369
	
370
	
370
	private void initialiserValidation() {
371
	private void initialiserValidation() {
371
		formulaireValideOk = false;
372
		formulaireValideOk = false;
372
		publicationValideOk = false;
373
		publicationValideOk = false;
373
		auteursValideOk = false;
374
		auteursValideOk = false;
374
	}
375
	}
375
	
376
	
376
	private void repandreRafraichissement() {
377
	private void repandreRafraichissement() {
377
		if (vueExterneARafraichirApresValidation != null) {
378
		if (vueExterneARafraichirApresValidation != null) {
378
			String type = "publication_modifiee";
379
			String type = "publication_modifiee";
379
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
380
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
380
				type = "publication_ajoutee";
381
				type = "publication_ajoutee";
381
			}
382
			}
382
			Information info = new Information(type);
383
			Information info = new Information(type);
383
			info.setDonnee(0, publication);
384
			info.setDonnee(0, publication);
384
			vueExterneARafraichirApresValidation.rafraichir(info);
385
			vueExterneARafraichirApresValidation.rafraichir(info);
385
		}
386
		}
386
	}
387
	}
387
	
388
	
388
	public boolean soumettreFormulaire() {
389
	public boolean soumettreFormulaire() {
389
		formulaireValideOk = verifierFormulaire();
390
		formulaireValideOk = verifierFormulaire();
390
		GWT.log("Form?"+formulaireValideOk, null);
391
		GWT.log("Form?"+formulaireValideOk, null);
391
		if (formulaireValideOk) {
392
		if (formulaireValideOk) {
392
			Publication publicationCollectee = collecterPublication();
393
			Publication publicationCollectee = collecterPublication();
393
			if (publicationCollectee != null) {
394
			if (publicationCollectee != null) {
394
				GWT.log("Info collectée ? ok", null);
395
				GWT.log("Info collectée ? ok", null);
395
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
396
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
396
					mediateur.ajouterPublication(this, publicationCollectee);
397
					mediateur.ajouterPublication(this, publicationCollectee);
397
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
398
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
398
					mediateur.modifierPublication(this, publicationCollectee);
399
					mediateur.modifierPublication(this, publicationCollectee);
399
				}
400
				}
400
			}
401
			}
401
		}
402
		}
402
		return formulaireValideOk;
403
		return formulaireValideOk;
403
	}
404
	}
404
	
405
	
405
	protected boolean verifierFormulaire() {
406
	protected boolean verifierFormulaire() {
406
		boolean valide = true;
407
		boolean valide = true;
407
		ArrayList<String> messages = new ArrayList<String>();
408
		ArrayList<String> messages = new ArrayList<String>();
408
		
409
		
409
		boolean auteurErreur = true;
410
		boolean auteurErreur = true;
410
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
411
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
411
			if (auteurComboboxListe.get(i).getValue() != null) {
412
			if (auteurComboboxListe.get(i).getValue() != null) {
412
				auteurErreur = false;
413
				auteurErreur = false;
413
				break;
414
				break;
414
			}
415
			}
415
		}
416
		}
416
		if (auteurErreur) {
417
		if (auteurErreur) {
417
			messages.add("Veuillez saisir au moins un auteur !");
418
			messages.add("Veuillez saisir au moins un auteur !");
418
		}
419
		}
419
		
420
		
420
		String titre = titreChp.getValue();
421
		String titre = titreChp.getValue();
421
		if (titre == null || titre.equals("")) {
422
		if (titre == null || titre.equals("")) {
422
			messages.add("Veuillez saisir le titre de la publication !");
423
			messages.add("Veuillez saisir le titre de la publication !");
423
		}
424
		}
424
		
425
		
425
		String uri = uriChp.getValue();
426
		String uri = uriChp.getValue();
426
		if (uri != null && ! uri.isEmpty() && ! uri.matches(Pattern.url)) {
427
		if (uri != null && ! uri.isEmpty() && ! uri.matches(Pattern.url)) {
427
			messages.add("L'URL saisie n'est pas valide !");
428
			messages.add("L'URL saisie n'est pas valide !");
428
		}
429
		}
429
		
430
		
430
		String datePublication = datePublicationChp.getRawValue();
431
		String datePublication = datePublicationChp.getRawValue();
431
		if (datePublication == null || datePublication.equals("")) {
432
		if (datePublication == null || datePublication.equals("")) {
432
			messages.add("Veuillez saisir une année de parution !");
433
			messages.add("Veuillez saisir une année de parution !");
433
		} else {
434
		} else {
434
			if (!etreDateValide(datePublication)) {
435
			if (!etreDateValide(datePublication)) {
435
				messages.add("Le format de l'année saisie est incorrect !");
436
				messages.add("Le format de l'année saisie est incorrect !");
436
			}
437
			}
437
		}
438
		}
438
		
439
		
439
		String pages = pagesChp.getValue();
440
		String pages = pagesChp.getValue();
440
		String valeurPage = "(?:[0-9]+|[IVXLCDM]+|\\?)";
441
		String valeurPage = "(?:[0-9]+|[IVXLCDM]+|\\?)";
441
		if (pages != null && ! pages.matches("^(?:"+valeurPage+"|"+valeurPage+"-"+valeurPage+")$")) {
442
		if (pages != null && ! pages.matches("^(?:"+valeurPage+"|"+valeurPage+"-"+valeurPage+")$")) {
442
			messages.add("Le format des pages est incorrect !");
443
			messages.add("Le format des pages est incorrect !");
443
		}
444
		}
444
		
445
		
445
		if (messages.size() != 0) {
446
		if (messages.size() != 0) {
446
			String[] tableauDeMessages = {};
447
			String[] tableauDeMessages = {};
447
			tableauDeMessages = messages.toArray(tableauDeMessages);
448
			tableauDeMessages = messages.toArray(tableauDeMessages);
448
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null);
449
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null);
449
			valide = false;
450
			valide = false;
450
		}
451
		}
451
		return valide;		
452
		return valide;		
452
	}
453
	}
453
	
454
	
454
	private void peuplerFormulaire() {
455
	private void peuplerFormulaire() {
455
		creerChampsAuteur();
456
		creerChampsAuteur();
456
		titreChp.setValue(publication.getTitre());
457
		titreChp.setValue(publication.getTitre());
457
		collectionChp.setValue(publication.getCollection());
458
		collectionChp.setValue(publication.getCollection());
458
		uriChp.setValue(publication.getURI());
459
		uriChp.setValue(publication.getURI());
459
		datePublicationChp.setRawValue(reduireDateParAnnee(publication.getDateParution()));
460
		datePublicationChp.setRawValue(reduireDateParAnnee(publication.getDateParution()));
460
		tomeChp.setValue(publication.getIndicationNvt());
461
		tomeChp.setValue(publication.getIndicationNvt());
461
		fasciculeChp.setValue(publication.getFascicule());
462
		fasciculeChp.setValue(publication.getFascicule());
462
		pagesChp.setValue(publication.getPages());
463
		pagesChp.setValue(publication.getPages());
463
		
464
		
464
		if (publication.getEditeur().matches("^[0-9]+$")) {
465
		if (publication.getEditeur().matches("^[0-9]+$")) {
465
			editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur()));
466
			editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur()));
466
			idStructureEdition = publication.getEditeur();
467
			idStructureEdition = publication.getEditeur();
467
		} else {
468
		} else {
468
			editeurCombobox.setRawValue(publication.getEditeur());
469
			editeurCombobox.setRawValue(publication.getEditeur());
469
		}
470
		}
470
	}
471
	}
471
	
472
	
472
	private Publication collecterPublication() {
473
	private Publication collecterPublication() {
473
		Publication publicationARetourner = null;
474
		Publication publicationARetourner = null;
474
		Publication publicationCollectee = (Publication) publication.cloner(new Publication());
475
		Publication publicationCollectee = (Publication) publication.cloner(new Publication());
475
		
476
		
476
		String auteurIntituleFormate = "";
477
		String auteurIntituleFormate = "";
477
		int auteursNombre = auteurComboboxListe.size();
478
		int auteursNombre = auteurComboboxListe.size();
478
		for (int i = 0; i < auteursNombre; i++) {
479
		for (int i = 0; i < auteursNombre; i++) {
479
			if (auteurComboboxListe.get(i).getValue() != null) {
480
			if (auteurComboboxListe.get(i).getValue() != null) {
480
				Personne auteur = auteurComboboxListe.get(i).getValue();
481
				Personne auteur = auteurComboboxListe.get(i).getValue();
481
				idAuteurs += auteur.getId();
482
				idAuteurs += auteur.getId();
482
				auteurIntituleFormate += auteur.getNom()+ " "+auteur.getPrenom();
483
				auteurIntituleFormate += auteur.getNom()+ " "+auteur.getPrenom();
483
				if (i != (auteursNombre - 1)) {
484
				if (i != (auteursNombre - 1)) {
484
					auteurIntituleFormate += ", ";
485
					auteurIntituleFormate += ", ";
485
					idAuteurs += ",";
486
					idAuteurs += ",";
486
				}
487
				}
487
			}
488
			}
488
		}
489
		}
489
		GWT.log("Auteurs formaté :"+auteurIntituleFormate, null);
490
		GWT.log("Auteurs formaté :"+auteurIntituleFormate, null);
490
		GWT.log("Auteurs ids :"+idAuteurs, null);
491
		GWT.log("Auteurs ids :"+idAuteurs, null);
491
		publicationCollectee.setAuteur(auteurIntituleFormate);
492
		publicationCollectee.setAuteur(auteurIntituleFormate);
492
		
493
		
493
		String titre = titreChp.getValue();
494
		String titre = titreChp.getValue();
494
		publicationCollectee.setTitre(titre);
495
		publicationCollectee.setTitre(titre);
495
		
496
		
496
		String collection = collectionChp.getValue();
497
		String collection = collectionChp.getValue();
497
		publicationCollectee.setCollection(collection);
498
		publicationCollectee.setCollection(collection);
498
		
499
		
499
		String nomComplet = titreChp.getValue()+" "+collectionChp.getValue();
500
		String nomComplet = titreChp.getValue()+" "+collectionChp.getValue();
500
		publicationCollectee.setNomComplet(nomComplet);
501
		publicationCollectee.setNomComplet(nomComplet);
501
		
502
		
502
		String uri = uriChp.getValue();
503
		String uri = uriChp.getValue();
503
		publicationCollectee.setUri(uri);
504
		publicationCollectee.setUri(uri);
504
		
505
		
505
		String editeur = "";
506
		String editeur = "";
506
		if (editeurCombobox.getValue() != null) {
507
		if (editeurCombobox.getValue() != null) {
507
			editeur = editeurCombobox.getValue().getId();
508
			editeur = editeurCombobox.getValue().getId();
508
			publicationCollectee.setStructureEditeur(editeurCombobox.getValue());
509
			publicationCollectee.setStructureEditeur(editeurCombobox.getValue());
509
		} else if (editeurCombobox.getRawValue() != "") {
510
		} else if (editeurCombobox.getRawValue() != "") {
510
			editeur = editeurCombobox.getRawValue();
511
			editeur = editeurCombobox.getRawValue();
511
		}
512
		}
512
		publicationCollectee.setEditeur(editeur);
513
		publicationCollectee.setEditeur(editeur);
513
		
514
		
514
		String anneePublication = datePublicationChp.getRawValue();
515
		String anneePublication = datePublicationChp.getRawValue();
515
		String datePublication = anneePublication+"-00-00";
516
		String datePublication = anneePublication+"-00-00";
516
		publicationCollectee.setDateParution(datePublication);
517
		publicationCollectee.setDateParution(datePublication);
517
		
518
		
518
		String tome = tomeChp.getValue();
519
		String tome = tomeChp.getValue();
519
		publicationCollectee.setIndicationNvt(tome);
520
		publicationCollectee.setIndicationNvt(tome);
520
		
521
		
521
		String fascicule = fasciculeChp.getValue();
522
		String fascicule = fasciculeChp.getValue();
522
		publicationCollectee.setFascicule(fascicule);
523
		publicationCollectee.setFascicule(fascicule);
523
		
524
		
524
		String pages = pagesChp.getValue();
525
		String pages = pagesChp.getValue();
525
		publicationCollectee.setPages(pages);
526
		publicationCollectee.setPages(pages);
526
		
527
		
527
		if (!publicationCollectee.comparer(publication)) {
528
		if (!publicationCollectee.comparer(publication)) {
528
			publicationARetourner = publication = publicationCollectee;
529
			publicationARetourner = publication = publicationCollectee;
529
		}
530
		}
530
		
531
		
531
		return publicationARetourner;
532
		return publicationARetourner;
532
	}
533
	}
533
	
534
	
534
	protected void reinitialiserFormulaire() {
535
	protected void reinitialiserFormulaire() {
535
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
536
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
536
			mediateur.afficherFormPublication(publication.getId());
537
			mediateur.afficherFormPublication(publication.getId());
537
		} else {
538
		} else {
538
			mediateur.afficherFormPublication(null);
539
			mediateur.afficherFormPublication(null);
539
		}
540
		}
540
	}
541
	}
541
	
542
	
542
	private boolean etreDateValide(String anneePublication) {
543
	private boolean etreDateValide(String anneePublication) {
543
		boolean valide = true;
544
		boolean valide = true;
544
		if (!anneePublication.matches("^[0-2][0-9]{3}$")) {
545
		if (!anneePublication.matches("^[0-2][0-9]{3}$")) {
545
			valide = false;
546
			valide = false;
546
		}
547
		}
547
		return valide;
548
		return valide;
548
	}
549
	}
549
	
550
	
550
	private String reduireDateParAnnee(String datePar) {
551
	private String reduireDateParAnnee(String datePar) {
551
		if (datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {
552
		if (datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {
552
			return datePar.split("-")[0];
553
			return datePar.split("-")[0];
553
		} else {
554
		} else {
554
			return "";
555
			return "";
555
		}
556
		}
556
	}
557
	}
557
	
558
	
558
	@Override
559
	@Override
559
	protected SelectionListener<ButtonEvent> creerEcouteurValidation() {
560
	protected SelectionListener<ButtonEvent> creerEcouteurValidation() {
560
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
561
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
561
			@Override
562
			@Override
562
			public void componentSelected(ButtonEvent ce) {
563
			public void componentSelected(ButtonEvent ce) {
563
				String code = ((Button) ce.getComponent()).getData("code");
564
				String code = ((Button) ce.getComponent()).getData("code");
564
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
565
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
565
					soumettreFormulaire();
566
					soumettreFormulaire();
566
					clicBoutonvalidation = true;
567
					clicBoutonvalidation = true;
567
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
568
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
568
					soumettreFormulaire();
569
					soumettreFormulaire();
569
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
570
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
570
					mediateur.clicMenu(menuIdCourant);
571
					mediateur.clicMenu(menuIdCourant);
571
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
572
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
572
					reinitialiserFormulaire();
573
					reinitialiserFormulaire();
573
				}
574
				}
574
			}
575
			}
575
		};
576
		};
576
		
577
		
577
		return ecouteur;
578
		return ecouteur;
578
	}
579
	}
579
	
580
	
580
}
581
}