Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1182 Rev 1218
1
package org.tela_botanica.client.vues.publication;
1
package org.tela_botanica.client.vues.publication;
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.ComposantClass;
7
import org.tela_botanica.client.ComposantClass;
8
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.Mediateur;
-
 
9
import org.tela_botanica.client.composants.InfoLogger;
9
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.modeles.MenuApplicationId;
13
import org.tela_botanica.client.modeles.MenuApplicationId;
13
import org.tela_botanica.client.modeles.personne.Personne;
14
import org.tela_botanica.client.modeles.personne.Personne;
14
import org.tela_botanica.client.modeles.personne.PersonneListe;
15
import org.tela_botanica.client.modeles.personne.PersonneListe;
15
import org.tela_botanica.client.modeles.projet.Projet;
16
import org.tela_botanica.client.modeles.projet.Projet;
16
import org.tela_botanica.client.modeles.projet.ProjetListe;
17
import org.tela_botanica.client.modeles.projet.ProjetListe;
17
import org.tela_botanica.client.modeles.publication.Publication;
18
import org.tela_botanica.client.modeles.publication.Publication;
18
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
19
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
19
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
20
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
20
import org.tela_botanica.client.modeles.structure.Structure;
21
import org.tela_botanica.client.modeles.structure.Structure;
21
import org.tela_botanica.client.modeles.structure.StructureListe;
22
import org.tela_botanica.client.modeles.structure.StructureListe;
22
import org.tela_botanica.client.util.Debug;
23
import org.tela_botanica.client.util.Debug;
23
import org.tela_botanica.client.util.Pattern;
24
import org.tela_botanica.client.util.Pattern;
24
import org.tela_botanica.client.util.UtilArray;
25
import org.tela_botanica.client.util.UtilArray;
25
import org.tela_botanica.client.util.UtilString;
26
import org.tela_botanica.client.util.UtilString;
26
import org.tela_botanica.client.vues.Formulaire;
27
import org.tela_botanica.client.vues.Formulaire;
27
 
28
 
28
import com.extjs.gxt.ui.client.event.ButtonEvent;
29
import com.extjs.gxt.ui.client.event.ButtonEvent;
29
import com.extjs.gxt.ui.client.event.Events;
30
import com.extjs.gxt.ui.client.event.Events;
30
import com.extjs.gxt.ui.client.event.SelectionListener;
31
import com.extjs.gxt.ui.client.event.SelectionListener;
31
import com.extjs.gxt.ui.client.store.ListStore;
32
import com.extjs.gxt.ui.client.store.ListStore;
32
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
33
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
33
import com.extjs.gxt.ui.client.widget.Info;
34
import com.extjs.gxt.ui.client.widget.Info;
34
import com.extjs.gxt.ui.client.widget.LayoutContainer;
35
import com.extjs.gxt.ui.client.widget.LayoutContainer;
35
import com.extjs.gxt.ui.client.widget.MessageBox;
36
import com.extjs.gxt.ui.client.widget.MessageBox;
36
import com.extjs.gxt.ui.client.widget.button.Button;
37
import com.extjs.gxt.ui.client.widget.button.Button;
37
import com.extjs.gxt.ui.client.widget.form.ComboBox;
38
import com.extjs.gxt.ui.client.widget.form.ComboBox;
38
import com.extjs.gxt.ui.client.widget.form.Field;
39
import com.extjs.gxt.ui.client.widget.form.Field;
39
import com.extjs.gxt.ui.client.widget.form.FieldSet;
40
import com.extjs.gxt.ui.client.widget.form.FieldSet;
40
import com.extjs.gxt.ui.client.widget.form.TextField;
41
import com.extjs.gxt.ui.client.widget.form.TextField;
41
import com.extjs.gxt.ui.client.widget.form.Validator;
42
import com.extjs.gxt.ui.client.widget.form.Validator;
42
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
43
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
43
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
44
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
44
import com.extjs.gxt.ui.client.widget.layout.FormData;
45
import com.extjs.gxt.ui.client.widget.layout.FormData;
45
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
46
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
46
import com.google.gwt.core.client.GWT;
47
import com.google.gwt.core.client.GWT;
47
 
48
 
48
 
49
 
49
public class PublicationForm extends Formulaire implements Rafraichissable {
50
public class PublicationForm extends Formulaire implements Rafraichissable {
50
	
51
	
51
	private Publication publication;
52
	private Publication publication;
52
	private PersonneListe auteursInitialListe = null;
53
	private PersonneListe auteursInitialListe = null;
53
	private static boolean publicationAPersonneListeChargementOk = false;
54
	private static boolean publicationAPersonneListeChargementOk = false;
54
	private PublicationAPersonneListe auteursAjoutes = null;
55
	private PublicationAPersonneListe auteursAjoutes = null;
55
	private PublicationAPersonneListe auteursSupprimes = null;
56
	private PublicationAPersonneListe auteursSupprimes = null;
56
	
57
	
57
	private FieldSet auteursFieldset = null;
58
	private FieldSet auteursFieldset = null;
58
	private ComboBox<Projet> projetsCombo = null;
59
	private ComboBox<Projet> projetsCombo = null;
59
	private ArrayList<ComboBox<Personne>> auteurComboboxListe = null;
60
	private ArrayList<ComboBox<Personne>> auteurComboboxListe = null;
60
	private LayoutContainer conteneurChamps;
61
	private LayoutContainer conteneurChamps;
61
	private ListStore<Personne> auteursStorePartage = null;
62
	private ListStore<Personne> auteursStorePartage = null;
62
	private static boolean auteurStorePartageChargementOk = false;
63
	private static boolean auteurStorePartageChargementOk = false;
63
	
64
	
64
	private FieldSet generalitesFieldset = null;
65
	private FieldSet generalitesFieldset = null;
65
	private TextField<String> titreChp = null;
66
	private TextField<String> titreChp = null;
66
	private TextField<String> collectionChp = null;
67
	private TextField<String> collectionChp = null;
67
	private TextField<String> uriChp = null;
68
	private TextField<String> uriChp = null;
68
	
69
	
69
	private FieldSet editionFieldset = null;
70
	private FieldSet editionFieldset = null;
70
	private ComboBox<Structure> editeurCombobox = null;
71
	private ComboBox<Structure> editeurCombobox = null;
71
	private static boolean editeursOk = false;
72
	private static boolean editeursOk = false;
72
	private TextField<String> datePublicationChp = null;
73
	private TextField<String> datePublicationChp = null;
73
	private TextField<String> tomeChp = null;
74
	private TextField<String> tomeChp = null;
74
	private TextField<String> fasciculeChp = null;
75
	private TextField<String> fasciculeChp = null;
75
	private TextField<String> pagesChp = null;
76
	private TextField<String> pagesChp = null;
76
	
77
	
77
	boolean auteursAffiches = false;
78
	boolean auteursAffiches = false;
78
	private static boolean formulaireValideOk = false;
79
	private static boolean formulaireValideOk = false;
79
	private static boolean publicationValideOk = false;
80
	private static boolean publicationValideOk = false;
80
	private static boolean auteursValideOk = false;
81
	private static boolean auteursValideOk = false;
81
	private static boolean publicationOk = false;
82
	private static boolean publicationOk = false;
82
	private static boolean attenteAjoutAuteursOk = true;
83
	private static boolean attenteAjoutAuteursOk = true;
83
	private static boolean attenteSuppressionAuteursOk = true;
84
	private static boolean attenteSuppressionAuteursOk = true;
84
 
85
 
85
	public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
86
	public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
86
		initialiserPublicationForm(mediateurCourrant, publicationId);
87
		initialiserPublicationForm(mediateurCourrant, publicationId);
87
	}
88
	}
88
 
89
 
89
	public PublicationForm(Mediateur mediateurCourrant, String publicationId, Rafraichissable vueARafraichirApresValidation) {
90
	public PublicationForm(Mediateur mediateurCourrant, String publicationId, Rafraichissable vueARafraichirApresValidation) {
90
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
91
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
91
		initialiserPublicationForm(mediateurCourrant, publicationId);
92
		initialiserPublicationForm(mediateurCourrant, publicationId);
92
	}
93
	}
93
	
94
	
94
	private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) {
95
	private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) {
95
		auteursInitialListe = new PersonneListe();
96
		auteursInitialListe = new PersonneListe();
96
		initialiserValidation();
97
		initialiserValidation();
97
		initialiserAffichageAuteurs();
98
		initialiserAffichageAuteurs();
98
		
99
		
99
		publication = new Publication();
100
		publication = new Publication();
100
		publication.setId(publicationId);
101
		publication.setId(publicationId);
101
		
102
		
102
		String modeDeCreation = (UtilString.isEmpty(publication.getId()) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
103
		String modeDeCreation = (UtilString.isEmpty(publication.getId()) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
103
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
104
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
104
		
105
		
105
		panneauFormulaire.setLayout(new FlowLayout());
106
		panneauFormulaire.setLayout(new FlowLayout());
106
		genererTitreFormulaire();
107
		genererTitreFormulaire();
107
		
108
		
108
		creerZoneAuteurs();
109
		creerZoneAuteurs();
109
		panneauFormulaire.add(auteursFieldset);
110
		panneauFormulaire.add(auteursFieldset);
110
		
111
		
111
		creerZoneGeneralites();
112
		creerZoneGeneralites();
112
		panneauFormulaire.add(generalitesFieldset);
113
		panneauFormulaire.add(generalitesFieldset);
113
		
114
		
114
		creerZoneEdition();
115
		creerZoneEdition();
115
		panneauFormulaire.add(editionFieldset);
116
		panneauFormulaire.add(editionFieldset);
116
		
117
		
117
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
118
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
118
			mediateurCourrant.selectionnerPublication(this, publicationId);
119
			mediateurCourrant.selectionnerPublication(this, publicationId);
119
			mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR);
120
			mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR);
120
		}
121
		}
121
	}
122
	}
122
	
123
	
123
	private void genererTitreFormulaire() {
124
	private void genererTitreFormulaire() {
124
		String titre = i18nC.publicationTitreFormAjout();
125
		String titre = i18nC.publicationTitreFormAjout();
125
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
126
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
126
			 titre = i18nC.publicationTitreFormModif();
127
			 titre = i18nC.publicationTitreFormModif();
127
			 if (publication != null) {
128
			 if (publication != null) {
128
				 titre += " - "+i18nC.id()+": "+publication.getId();
129
				 titre += " - "+i18nC.id()+": "+publication.getId()+" - "+publication.getObjetDeLaPublication();
129
			 }
130
			 }
130
		}
131
		}
131
		panneauFormulaire.setHeading(titre);
132
		panneauFormulaire.setHeading(titre);
132
	}
133
	}
-
 
134
 
133
	
135
	
134
	private void creerZoneAuteurs() {
136
	private void creerZoneAuteurs() {
135
		FormLayout layout = new FormLayout();
137
		FormLayout layout = new FormLayout();
136
		layout.setLabelWidth(200);
138
		layout.setLabelWidth(200);
137
		
139
		
138
		// Fieldset Auteur
140
		// Fieldset Auteur
139
		auteursFieldset = new FieldSet();
141
		auteursFieldset = new FieldSet();
140
		auteursFieldset.setHeading(i18nC.publicationAuteursTitre());
142
		auteursFieldset.setHeading(i18nC.publicationAuteursTitre());
141
		auteursFieldset.setCollapsible(true);
143
		auteursFieldset.setCollapsible(true);
142
		auteursFieldset.setLayout(layout);
144
		auteursFieldset.setLayout(layout);
143
		
145
		
144
		Debug.log("Dans creerZoneAuteurs");
146
		Debug.log("Dans creerZoneAuteurs");
145
		auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0);
147
		auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0);
146
		auteursStorePartage = new ListStore<Personne>();
148
		auteursStorePartage = new ListStore<Personne>();
147
		mediateur.clicObtenirListeAuteurs(this);
149
		mediateur.clicObtenirListeAuteurs(this);
148
		
150
		
149
		creerChampsAuteur();
151
		creerChampsAuteur();
150
	}
152
	}
151
	
153
	
152
	private void creerChampsAuteur() {
154
	private void creerChampsAuteur() {
153
		auteursFieldset.removeAll();
155
		auteursFieldset.removeAll();
154
		conteneurChamps = new LayoutContainer(); 
156
		conteneurChamps = new LayoutContainer(); 
155
				
157
				
156
		Button ajouterAuteurBouton = new Button(i18nC.publicationAuteurBoutonAjouter());
158
		Button ajouterAuteurBouton = new Button(i18nC.publicationAuteurBoutonAjouter());
157
		ajouterAuteurBouton.setIcon(Images.ICONES.ajouter());
159
		ajouterAuteurBouton.setIcon(Images.ICONES.ajouter());
158
		ajouterAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
160
		ajouterAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
159
			@Override
161
			@Override
160
			public void componentSelected(ButtonEvent be) {
162
			public void componentSelected(ButtonEvent be) {
161
				creerChampAuteurEtBoutonSupprimer(null);
163
				creerChampAuteurEtBoutonSupprimer(null);
162
			}
164
			}
163
		});
165
		});
164
		
166
		
165
		auteursFieldset.add(conteneurChamps);
167
		auteursFieldset.add(conteneurChamps);
166
		auteursFieldset.add(ajouterAuteurBouton);
168
		auteursFieldset.add(ajouterAuteurBouton);
167
		auteursFieldset.layout();
169
		auteursFieldset.layout();
168
	}
170
	}
169
	
171
	
170
	public void creerChampAuteurEtBoutonSupprimer(Personne auteur) {
172
	public void creerChampAuteurEtBoutonSupprimer(Personne auteur) {
171
		final HorizontalPanel panneauHorizontal = new HorizontalPanel();
173
		final HorizontalPanel panneauHorizontal = new HorizontalPanel();
172
 
174
 
173
		LayoutContainer panneauChampTxt = new LayoutContainer();
175
		LayoutContainer panneauChampTxt = new LayoutContainer();
174
		panneauChampTxt.setLayout(new FormLayout());
176
		panneauChampTxt.setLayout(new FormLayout());
175
 
177
 
176
		final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis();
178
		final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis();
177
		if (auteur != null) {
179
		if (auteur != null) {
178
			auteursSaisisComboBox.setValue(auteur);
180
			auteursSaisisComboBox.setValue(auteur);
179
			auteursSaisisComboBox.validate();
181
			auteursSaisisComboBox.validate();
180
		}
182
		}
181
		auteurComboboxListe.add(auteursSaisisComboBox);
183
		auteurComboboxListe.add(auteursSaisisComboBox);
182
		auteursSaisisComboBox.setFieldLabel(i18nC.publicationAuteurSingulier()+" "+auteurComboboxListe.size());
184
		auteursSaisisComboBox.setFieldLabel(i18nC.publicationAuteurSingulier()+" "+auteurComboboxListe.size());
183
		panneauChampTxt.add(auteursSaisisComboBox, new FormData(300, 0));
185
		panneauChampTxt.add(auteursSaisisComboBox, new FormData(300, 0));
184
		panneauHorizontal.add(panneauChampTxt);
186
		panneauHorizontal.add(panneauChampTxt);
185
		
187
		
186
		Button supprimerAuteurBouton = new Button();
188
		Button supprimerAuteurBouton = new Button();
187
		supprimerAuteurBouton.setIcon(Images.ICONES.supprimer());
189
		supprimerAuteurBouton.setIcon(Images.ICONES.supprimer());
188
		supprimerAuteurBouton.setToolTip(i18nC.supprimer());
190
		supprimerAuteurBouton.setToolTip(i18nC.supprimer());
189
		supprimerAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
191
		supprimerAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
190
			@Override
192
			@Override
191
			public void componentSelected(ButtonEvent be) {
193
			public void componentSelected(ButtonEvent be) {
192
				auteurComboboxListe.remove(auteursSaisisComboBox);
194
				auteurComboboxListe.remove(auteursSaisisComboBox);
193
				conteneurChamps.remove(panneauHorizontal);
195
				conteneurChamps.remove(panneauHorizontal);
194
				
196
				
195
				int numeroAuteurs = 1;
197
				int numeroAuteurs = 1;
196
				for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
198
				for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
197
					it.next().setFieldLabel(i18nC.publicationAuteurSingulier()+" "+numeroAuteurs);
199
					it.next().setFieldLabel(i18nC.publicationAuteurSingulier()+" "+numeroAuteurs);
198
					numeroAuteurs++;
200
					numeroAuteurs++;
199
				}
201
				}
200
 
202
 
201
				auteursFieldset.layout();
203
				auteursFieldset.layout();
202
			}
204
			}
203
		});
205
		});
204
		panneauHorizontal.add(supprimerAuteurBouton);
206
		panneauHorizontal.add(supprimerAuteurBouton);
205
 
207
 
206
		conteneurChamps.add(panneauHorizontal);
208
		conteneurChamps.add(panneauHorizontal);
207
		auteursFieldset.layout();
209
		auteursFieldset.layout();
208
	}
210
	}
209
	
211
	
210
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
212
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
211
		ListStore<Personne> auteursStore = new ListStore<Personne>();
213
		ListStore<Personne> auteursStore = new ListStore<Personne>();
212
		auteursStore.add(auteursStorePartage.getModels());
214
		auteursStore.add(auteursStorePartage.getModels());
213
		
215
		
214
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
216
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
215
		comboBox.setEmptyText(i18nC.chercherPersonneSaisi());
217
		comboBox.setEmptyText(i18nC.chercherPersonneSaisi());
216
		comboBox.setEditable(true);
218
		comboBox.setEditable(true);
217
		comboBox.setAllowBlank(false);
219
		comboBox.setAllowBlank(false);
218
		comboBox.setForceSelection(true);
220
		comboBox.setForceSelection(true);
219
		comboBox.setDisplayField("fmt_nom_complet");
221
		comboBox.setDisplayField("fmt_nom_complet");
220
		comboBox.setTriggerAction(TriggerAction.ALL);
222
		comboBox.setTriggerAction(TriggerAction.ALL);
221
		comboBox.setStore(auteursStore);
223
		comboBox.setStore(auteursStore);
222
		comboBox.setMessageTarget("tooltip");
224
		comboBox.setMessageTarget("tooltip");
223
		comboBox.addStyleName(ComposantClass.OBLIGATOIRE);
225
		comboBox.addStyleName(ComposantClass.OBLIGATOIRE);
224
		comboBox.addListener(Events.Valid, creerEcouteurChampObligatoire());
226
		comboBox.addListener(Events.Valid, creerEcouteurChampObligatoire());
225
 
227
 
226
		return comboBox;
228
		return comboBox;
227
	}
229
	}
228
	
230
	
229
	private void creerZoneGeneralites() {
231
	private void creerZoneGeneralites() {
230
		FormLayout layout = new FormLayout();
232
		FormLayout layout = new FormLayout();
231
		layout.setLabelWidth(200);
233
		layout.setLabelWidth(200);
232
		
234
		
233
		// Fieldset Infos Générales
235
		// Fieldset Infos Générales
234
		generalitesFieldset = new FieldSet();
236
		generalitesFieldset = new FieldSet();
235
		generalitesFieldset.setHeading("Informations générales");
237
		generalitesFieldset.setHeading("Informations générales");
236
		generalitesFieldset.setCollapsible(true);
238
		generalitesFieldset.setCollapsible(true);
237
		generalitesFieldset.setLayout(layout);
239
		generalitesFieldset.setLayout(layout);
238
		
240
		
239
		projetsCombo = new ComboBox<Projet>();
241
		projetsCombo = new ComboBox<Projet>();
240
		projetsCombo.setTabIndex(tabIndex++);
242
		projetsCombo.setTabIndex(tabIndex++);
241
		projetsCombo.setFieldLabel(i18nC.projetChamp());
243
		projetsCombo.setFieldLabel(i18nC.projetChamp());
242
		projetsCombo.setDisplayField("nom");
244
		projetsCombo.setDisplayField("nom");
243
		projetsCombo.setForceSelection(true);
245
		projetsCombo.setForceSelection(true);
244
		projetsCombo.setValidator(new Validator() {
246
		projetsCombo.setValidator(new Validator() {
245
			@Override
247
			@Override
246
			public String validate(Field<?> field, String value) {
248
			public String validate(Field<?> field, String value) {
247
				String retour = null;
249
				String retour = null;
248
				if (field.getRawValue().equals("")) {
250
				if (field.getRawValue().equals("")) {
249
					field.setValue(null);
251
					field.setValue(null);
250
				} else if (projetsCombo.getStore().findModel("nom", field.getRawValue()) == null) {
252
				} else if (projetsCombo.getStore().findModel("nom", field.getRawValue()) == null) {
251
					String contenuBrut = field.getRawValue();
253
					String contenuBrut = field.getRawValue();
252
					field.setValue(null);
254
					field.setValue(null);
253
					field.setRawValue(contenuBrut);
255
					field.setRawValue(contenuBrut);
254
					retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
256
					retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
255
				}
257
				}
256
				return retour;
258
				return retour;
257
			}
259
			}
258
		});
260
		});
259
		projetsCombo.setTriggerAction(TriggerAction.ALL);
261
		projetsCombo.setTriggerAction(TriggerAction.ALL);
260
		projetsCombo.setStore(new ListStore<Projet>());
262
		projetsCombo.setStore(new ListStore<Projet>());
261
		projetsCombo.addStyleName(ComposantClass.OBLIGATOIRE);
263
		projetsCombo.addStyleName(ComposantClass.OBLIGATOIRE);
262
		projetsCombo.addListener(Events.Valid, Formulaire.creerEcouteurChampObligatoire());
264
		projetsCombo.addListener(Events.Valid, Formulaire.creerEcouteurChampObligatoire());
263
		generalitesFieldset.add(projetsCombo, new FormData(450, 0));
265
		generalitesFieldset.add(projetsCombo, new FormData(450, 0));
264
		mediateur.selectionnerProjet(this, null);
266
		mediateur.selectionnerProjet(this, null);
265
		
267
		
266
		titreChp = new TextField<String>();
268
		titreChp = new TextField<String>();
267
		titreChp.setName("cpu");
269
		titreChp.setName("cpu");
268
		titreChp.setFieldLabel("Titre de l'article ou de l'ouvrage");
270
		titreChp.setFieldLabel("Titre de l'article ou de l'ouvrage");
269
		titreChp.addStyleName(ComposantClass.OBLIGATOIRE);
271
		titreChp.addStyleName(ComposantClass.OBLIGATOIRE);
270
		titreChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
272
		titreChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
271
		generalitesFieldset.add(titreChp, new FormData(450, 0));
273
		generalitesFieldset.add(titreChp, new FormData(450, 0));
272
		
274
		
273
		collectionChp = new TextField<String>();
275
		collectionChp = new TextField<String>();
274
		collectionChp.setFieldLabel("Intitulé de la revue ou de la collection");
276
		collectionChp.setFieldLabel("Intitulé de la revue ou de la collection");
275
		generalitesFieldset.add(collectionChp, new FormData(450, 0));
277
		generalitesFieldset.add(collectionChp, new FormData(450, 0));
276
		
278
		
277
		uriChp = new TextField<String>();
279
		uriChp = new TextField<String>();
278
		uriChp.setFieldLabel("URL de la publication");
280
		uriChp.setFieldLabel("URL de la publication");
279
		generalitesFieldset.add(uriChp, new FormData(450, 0));
281
		generalitesFieldset.add(uriChp, new FormData(450, 0));
280
	}
282
	}
281
	
283
	
282
	private void creerZoneEdition() {
284
	private void creerZoneEdition() {
283
		FormLayout layout = new FormLayout();
285
		FormLayout layout = new FormLayout();
284
		layout.setLabelWidth(200);
286
		layout.setLabelWidth(200);
285
 
287
 
286
		// Fieldset Edition
288
		// Fieldset Edition
287
		editionFieldset = new FieldSet();
289
		editionFieldset = new FieldSet();
288
		editionFieldset.setHeading("Édition");
290
		editionFieldset.setHeading("Édition");
289
		editionFieldset.setCollapsible(true);
291
		editionFieldset.setCollapsible(true);
290
		editionFieldset.setLayout(layout);
292
		editionFieldset.setLayout(layout);
291
		
293
		
292
		ListStore<Structure> editeurStore = new ListStore<Structure>();
294
		ListStore<Structure> editeurStore = new ListStore<Structure>();
293
		editeurCombobox = new ComboBox<Structure>();  
295
		editeurCombobox = new ComboBox<Structure>();  
294
		editeurCombobox.setEmptyText("Sélectionner un éditeur...");
296
		editeurCombobox.setEmptyText("Sélectionner un éditeur...");
295
		editeurCombobox.setFieldLabel("Éditeur de la publication");
297
		editeurCombobox.setFieldLabel("Éditeur de la publication");
296
		editeurCombobox.setDisplayField("nom");
298
		editeurCombobox.setDisplayField("nom");
297
		editeurCombobox.setStore(editeurStore);
299
		editeurCombobox.setStore(editeurStore);
298
		editeurCombobox.setEditable(true);
300
		editeurCombobox.setEditable(true);
299
		editeurCombobox.setTriggerAction(TriggerAction.ALL);
301
		editeurCombobox.setTriggerAction(TriggerAction.ALL);
300
		editionFieldset.add(editeurCombobox, new FormData(450, 0));
302
		editionFieldset.add(editeurCombobox, new FormData(450, 0));
301
		mediateur.clicObtenirListeEditeurs(this);
303
		mediateur.clicObtenirListeEditeurs(this);
302
		
304
		
303
		datePublicationChp = new TextField<String>();
305
		datePublicationChp = new TextField<String>();
304
		datePublicationChp.setMaxLength(4);
306
		datePublicationChp.setMaxLength(4);
305
		datePublicationChp.setMinLength(4);
307
		datePublicationChp.setMinLength(4);
306
		datePublicationChp.setFieldLabel("Année de publication");
308
		datePublicationChp.setFieldLabel("Année de publication");
307
		datePublicationChp.addStyleName(ComposantClass.OBLIGATOIRE);
309
		datePublicationChp.addStyleName(ComposantClass.OBLIGATOIRE);
308
		datePublicationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
310
		datePublicationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
309
		editionFieldset.add(datePublicationChp, new FormData(40, 0));
311
		editionFieldset.add(datePublicationChp, new FormData(40, 0));
310
		
312
		
311
		tomeChp = new TextField<String>();
313
		tomeChp = new TextField<String>();
312
		tomeChp.setFieldLabel("Série de la revue ou tome");
314
		tomeChp.setFieldLabel("Série de la revue ou tome");
313
		editionFieldset.add(tomeChp, new FormData(75, 0));
315
		editionFieldset.add(tomeChp, new FormData(75, 0));
314
		
316
		
315
		fasciculeChp = new TextField<String>();
317
		fasciculeChp = new TextField<String>();
316
		fasciculeChp.setFieldLabel("Fascicule de la revue");
318
		fasciculeChp.setFieldLabel("Fascicule de la revue");
317
		editionFieldset.add(fasciculeChp, new FormData(75, 0));
319
		editionFieldset.add(fasciculeChp, new FormData(75, 0));
318
		
320
		
319
		pagesChp = new TextField<String>();
321
		pagesChp = new TextField<String>();
320
		pagesChp.setFieldLabel("Pages");
322
		pagesChp.setFieldLabel("Pages");
321
		pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'interrogation '?' dans le cas d'une donnée inconnue)");
323
		pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'interrogation '?' dans le cas d'une donnée inconnue)");
322
		editionFieldset.add(pagesChp, new FormData(100, 0));
324
		editionFieldset.add(pagesChp, new FormData(100, 0));
323
	}
325
	}
324
 
326
 
325
	public void rafraichir(Object nouvellesDonnees) {
327
	public void rafraichir(Object nouvellesDonnees) {
326
		if (nouvellesDonnees instanceof Publication) {
328
		if (nouvellesDonnees instanceof Publication) {
327
			// Si on a reçu les details d'une publication
329
			// Si on a reçu les details d'une publication
328
			rafraichirPublication((Publication) nouvellesDonnees);
330
			rafraichirPublication((Publication) nouvellesDonnees);
329
		} else if (nouvellesDonnees instanceof StructureListe) {
331
		} else if (nouvellesDonnees instanceof StructureListe) {
330
			// Si on a reçu une liste des editeurs
332
			// Si on a reçu une liste des editeurs
331
			rafraichirListeEditeurs((StructureListe) nouvellesDonnees);
333
			rafraichirListeEditeurs((StructureListe) nouvellesDonnees);
332
		} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
334
		} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
333
			rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
335
			rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
334
		} else if (nouvellesDonnees instanceof Information) {
336
		} else if (nouvellesDonnees instanceof Information) {
335
			rafraichirInformation((Information) nouvellesDonnees);	
337
			rafraichirInformation((Information) nouvellesDonnees);	
336
		} else if (nouvellesDonnees instanceof ProjetListe) {
338
		} else if (nouvellesDonnees instanceof ProjetListe) {
337
			ProjetListe projets = (ProjetListe) nouvellesDonnees;
339
			ProjetListe projets = (ProjetListe) nouvellesDonnees;
338
			Formulaire.rafraichirComboBox(projets, projetsCombo);
340
			Formulaire.rafraichirComboBox(projets, projetsCombo);
339
			setValeurComboProjets();
341
			setValeurComboProjets();
340
		} else {
342
		} else {
341
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
343
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
342
		}
344
		}
343
		
345
		
344
		synchronisation();
346
		synchronisation();
345
	}
347
	}
346
	
348
	
347
	private void synchronisation() {
349
	private void synchronisation() {
348
		// Respecter l'ordre et faire attention à la réinitialisation des jetons
350
		// Respecter l'ordre et faire attention à la réinitialisation des jetons
349
		// 1. gestion des auteurs (Modif ou Ajout)
351
		// 1. gestion des auteurs (Modif ou Ajout)
350
		// 2. peupler le formulaire (Modif)
352
		// 2. peupler le formulaire (Modif)
351
		// 3. initialisation de la gestion des auteurs ajoutés/supprimés (Modif)
353
		// 3. initialisation de la gestion des auteurs ajoutés/supprimés (Modif)
352
		// 4. valider le formulaire (Modif ou Ajout)
354
		// 4. valider le formulaire (Modif ou Ajout)
353
		
355
		
354
		if (etrePretAAfficherAuteurs()) {
356
		if (etrePretAAfficherAuteurs()) {
355
			afficherAuteurs();
357
			afficherAuteurs();
356
			initialiserAffichageAuteurs();
358
			initialiserAffichageAuteurs();
357
		}
359
		}
358
		
360
		
359
		if (etrePretAPeupler()) {
361
		if (etrePretAPeupler()) {
360
			Debug.log("Entrain de peupler");
362
			Debug.log("Entrain de peupler");
361
			peuplerFormulaire();
363
			peuplerFormulaire();
362
			genererTitreFormulaire();
364
			genererTitreFormulaire();
363
			initialiserPeupler();
365
			initialiserPeupler();
364
		}
366
		}
365
		
367
		
366
		if (avoirAuteursMiseAJourCorrectement()) {
368
		if (avoirAuteursMiseAJourCorrectement()) {
367
			Debug.log("Mise à jour liste auteur");
369
			Debug.log("Mise à jour liste auteur");
368
			miseAJourAuteursInitialListe();
370
			miseAJourAuteursInitialListe();
369
			initialiserAuteurs();
371
			initialiserAuteurs();
370
			auteursValideOk = true;
372
			auteursValideOk = true;
371
		}
373
		}
372
		
374
		
373
		if (etreValide()) {
375
		if (etreValide()) {
374
			initialiserValidation();
376
			initialiserValidation();
375
			repandreRafraichissement();
377
			repandreRafraichissement();
376
			controlerFermetureApresRafraichissement();
378
			controlerFermeture();
377
		}
379
		}
378
	}
380
	}
379
	
381
	
380
	private void miseAJourAuteursInitialListe() {
382
	private void miseAJourAuteursInitialListe() {
381
		Iterator<String> clesAjoutees = auteursAjoutes.keySet().iterator();
383
		Iterator<String> clesAjoutees = auteursAjoutes.keySet().iterator();
382
		while (clesAjoutees.hasNext()) {
384
		while (clesAjoutees.hasNext()) {
383
			Personne auteurAjoute = auteursAjoutes.get(clesAjoutees.next()).getPersonne();
385
			Personne auteurAjoute = auteursAjoutes.get(clesAjoutees.next()).getPersonne();
384
			auteursInitialListe.put(auteurAjoute.getId(), auteurAjoute);
386
			auteursInitialListe.put(auteurAjoute.getId(), auteurAjoute);
385
		}
387
		}
386
		
388
		
387
		Iterator<String> clesSupprimees = auteursSupprimes.keySet().iterator();
389
		Iterator<String> clesSupprimees = auteursSupprimes.keySet().iterator();
388
		while (clesSupprimees.hasNext()) {
390
		while (clesSupprimees.hasNext()) {
389
			Personne auteurSupprime = auteursSupprimes.get(clesSupprimees.next()).getPersonne();
391
			Personne auteurSupprime = auteursSupprimes.get(clesSupprimees.next()).getPersonne();
390
			auteursInitialListe.remove(auteurSupprime.getId());
392
			auteursInitialListe.remove(auteurSupprime.getId());
391
		}
393
		}
392
	}
394
	}
393
	
395
	
394
	private void rafraichirPublication(Publication publi) {
396
	private void rafraichirPublication(Publication publi) {
395
		publicationOk = true;
397
		publicationOk = true;
396
		publication = publi;
398
		publication = publi;
397
	}
399
	}
398
	
400
	
399
	private void rafraichirListeEditeurs(StructureListe editeurs) {
401
	private void rafraichirListeEditeurs(StructureListe editeurs) {
400
		editeursOk = true;
402
		editeursOk = true;
401
		editeurCombobox.getStore().removeAll();
403
		editeurCombobox.getStore().removeAll();
402
		editeurCombobox.getStore().add((List<Structure>) editeurs.toList());
404
		editeurCombobox.getStore().add((List<Structure>) editeurs.toList());
403
	}
405
	}
404
	
406
	
405
	private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
407
	private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
406
		Iterator<String> it = auteurs.keySet().iterator();
408
		Iterator<String> it = auteurs.keySet().iterator();
407
		while (it.hasNext()) {
409
		while (it.hasNext()) {
408
			Personne auteur = auteurs.get(it.next()).getPersonne();
410
			Personne auteur = auteurs.get(it.next()).getPersonne();
409
			auteursInitialListe.put(auteur.getId(), auteur);
411
			auteursInitialListe.put(auteur.getId(), auteur);
410
		}
412
		}
411
		Debug.log("Réception liste des auteurs : "+auteurs.size());
413
		Debug.log("Réception liste des auteurs : "+auteurs.size());
412
		publicationAPersonneListeChargementOk = true;
414
		publicationAPersonneListeChargementOk = true;
413
	}
415
	}
414
	
416
	
415
	private void rafraichirInformation(Information info) {
417
	private void rafraichirInformation(Information info) {
-
 
418
Debug.log("<8-8> BEGIN PublicationForm.rafraichirInformation()");		
-
 
419
		
416
		String type = info.getType();
420
		String type = info.getType();
417
		if (type.equals("ajout_publication") || type.equals("modif_publication")) {
421
		if (type.equals("ajout_publication") || type.equals("modif_publication")) {
418
			publicationValideOk = true;
422
			publicationValideOk = true;
419
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
423
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
420
				if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
424
				if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
421
					String publicationId = (String) info.getDonnee(0);
425
					String publicationId = (String) info.getDonnee(0);
422
					if (publicationId.matches("[0-9]+")) {
426
					if (publicationId.matches("[0-9]+")) {
423
						publication.setId(publicationId);
427
						publication.setId(publicationId);
424
					}
428
					}
425
				}
429
				}
426
				attenteAjoutAuteursOk = true;
430
				attenteAjoutAuteursOk = true;
-
 
431
				
-
 
432
Debug.log("<8-8> PublicationForm.rafraichirInformation() - Appel à mediateur.ajouterPublicationAPersonne()");				
427
				mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR);
433
				mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR);
428
			}
434
			}
429
		}
435
		}
430
		
436
		
431
		if (info.getType().equals("liste_personne")) {
437
		if (info.getType().equals("liste_personne")) {
432
			PersonneListe listePersonneAuteur = (PersonneListe) info.getDonnee(0);
438
			PersonneListe listePersonneAuteur = (PersonneListe) info.getDonnee(0);
433
			
439
			
434
			List<Personne> liste = listePersonneAuteur.toList();
440
			List<Personne> liste = listePersonneAuteur.toList();
435
			auteursStorePartage.removeAll();
441
			auteursStorePartage.removeAll();
436
			auteursStorePartage.add(liste);
442
			auteursStorePartage.add(liste);
437
			Debug.log("Reception nouvelle liste auteurs");
443
			Debug.log("Reception nouvelle liste auteurs");
438
			auteurStorePartageChargementOk = true;
444
			auteurStorePartageChargementOk = true;
439
		} else if (info.getType().equals("ajout_publication_a_personne")) {
445
		} else if (info.getType().equals("ajout_publication_a_personne")) {
440
			attenteAjoutAuteursOk = false;
446
			attenteAjoutAuteursOk = false;
441
			Debug.log("attenteAjoutAuteursOk");
447
			Debug.log("attenteAjoutAuteursOk");
442
		} else if (info.getType().equals("suppression_publication_a_personne")) {
448
		} else if (info.getType().equals("suppression_publication_a_personne")) {
443
			attenteSuppressionAuteursOk = false;
449
			attenteSuppressionAuteursOk = false;
444
			Debug.log("attenteSuppressionAuteursOk");
450
			Debug.log("attenteSuppressionAuteursOk");
445
		} else if (info.getType().equals("modif_publication")) {
451
		} else if (info.getType().equals("modif_publication")) {
446
			Info.display("Modification d'une publication", info.toString());
452
			InfoLogger.display("Modification d'une publication", info.toString());
447
		} else if (info.getType().equals("ajout_publication")) {
453
		} else if (info.getType().equals("ajout_publication")) {
448
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String && ((String) info.getDonnee(0)).matches("[0-9]+")) {
454
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String && ((String) info.getDonnee(0)).matches("[0-9]+")) {
449
				String publicationId = (String) info.getDonnee(0);
455
				String publicationId = (String) info.getDonnee(0);
450
				Info.display("Ajout d'une publication", "La publication '"+publicationId+"' a bien été ajoutée");
456
				InfoLogger.display("Ajout d'une publication", "La publication '"+publicationId+"' a bien été ajoutée");
451
			} else {
457
			} else {
452
				Info.display("Ajout d'une publication", info.toString());
458
				InfoLogger.display("Ajout d'une publication", info.toString());
453
			}
459
			}
454
		}
460
		}
-
 
461
		
-
 
462
Debug.log("<8-8> END PublicationForm.rafraichirInformation()");		
455
	}
463
	}
456
	
464
	
457
	private boolean avoirAuteursMiseAJourCorrectement() {
465
	private boolean avoirAuteursMiseAJourCorrectement() {
458
		boolean ok = false;
466
		boolean ok = false;
459
		if (attenteAjoutAuteursOk == false && attenteSuppressionAuteursOk == false) {
467
		if (attenteAjoutAuteursOk == false && attenteSuppressionAuteursOk == false) {
460
			ok = true;
468
			ok = true;
461
		}
469
		}
462
		return ok;
470
		return ok;
463
	}
471
	}
464
	
472
	
465
	private void afficherAuteurs() {
473
	private void afficherAuteurs() {
466
		if (mode.equals(Formulaire.MODE_AJOUTER)) {
474
		if (mode.equals(Formulaire.MODE_AJOUTER)) {
467
			creerChampAuteurEtBoutonSupprimer(null);
475
			creerChampAuteurEtBoutonSupprimer(null);
468
		} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
476
		} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
469
			Iterator<String> itap = auteursInitialListe.keySet().iterator();
477
			Iterator<String> itap = auteursInitialListe.keySet().iterator();
470
			while (itap.hasNext()) {
478
			while (itap.hasNext()) {
471
				creerChampAuteurEtBoutonSupprimer(auteursInitialListe.get(itap.next()));
479
				creerChampAuteurEtBoutonSupprimer(auteursInitialListe.get(itap.next()));
472
			}
480
			}
473
		}
481
		}
474
		auteursAffiches = true;
482
		auteursAffiches = true;
475
	}
483
	}
476
 
484
 
477
	private void initialiserAffichageAuteurs() {
485
	private void initialiserAffichageAuteurs() {
478
		auteurStorePartageChargementOk = false;
486
		auteurStorePartageChargementOk = false;
479
		publicationAPersonneListeChargementOk = false;
487
		publicationAPersonneListeChargementOk = false;
480
	}
488
	}
481
	
489
	
482
	private void initialiserPeupler() {
490
	private void initialiserPeupler() {
483
		publicationOk = false;
491
		publicationOk = false;
484
		editeursOk = false;
492
		editeursOk = false;
485
		auteursAffiches = false;
493
		auteursAffiches = false;
486
	}
494
	}
487
 
495
 
488
	private boolean etrePretAAfficherAuteurs() {
496
	private boolean etrePretAAfficherAuteurs() {
489
		boolean ok = false;
497
		boolean ok = false;
490
		if (auteurStorePartageChargementOk 
498
		if (auteurStorePartageChargementOk 
491
				&& ((mode.equals(Formulaire.MODE_MODIFIER) && publicationOk && publicationAPersonneListeChargementOk) 
499
				&& ((mode.equals(Formulaire.MODE_MODIFIER) && publicationOk && publicationAPersonneListeChargementOk) 
492
						|| (mode.equals(Formulaire.MODE_AJOUTER)))) {
500
						|| (mode.equals(Formulaire.MODE_AJOUTER)))) {
493
			ok = true;
501
			ok = true;
494
		}
502
		}
495
		return ok;
503
		return ok;
496
	}
504
	}
497
	
505
	
498
	private boolean etrePretAPeupler() {
506
	private boolean etrePretAPeupler() {
499
		boolean ok = false;
507
		boolean ok = false;
500
		Debug.log("Mode :"+mode.equals(Formulaire.MODE_MODIFIER)+" - PublicationOk :"+publicationOk+" - AuteursAffiches :"+auteursAffiches);
508
		Debug.log("Mode :"+mode.equals(Formulaire.MODE_MODIFIER)+" - PublicationOk :"+publicationOk+" - AuteursAffiches :"+auteursAffiches);
501
		if (mode.equals(Formulaire.MODE_MODIFIER) && publicationOk && auteursAffiches && editeursOk) {
509
		if (mode.equals(Formulaire.MODE_MODIFIER) && publicationOk && auteursAffiches && editeursOk) {
502
			ok = true;
510
			ok = true;
503
		}
511
		}
504
		return ok;
512
		return ok;
505
	}
513
	}
506
	
514
	
507
	private Boolean etreValide() {
515
	private Boolean etreValide() {
508
		Boolean valide = false;
516
		Boolean valide = false;
509
		//Debug.log("formulaire"+formulaireValideOk+" - Publication :"+publicationValideOk+" - Auteurs :"+auteursValideOk, null);
517
		//Debug.log("formulaire"+formulaireValideOk+" - Publication :"+publicationValideOk+" - Auteurs :"+auteursValideOk, null);
510
		if (formulaireValideOk && publicationValideOk && auteursValideOk) {
518
		if (formulaireValideOk && publicationValideOk && auteursValideOk) {
511
			valide = true;
519
			valide = true;
512
		}
520
		}
513
		return valide;
521
		return valide;
514
	}
522
	}
515
	
523
	
516
	private void initialiserValidation() {
524
	private void initialiserValidation() {
517
		formulaireValideOk = false;
525
		formulaireValideOk = false;
518
		publicationValideOk = false;
526
		publicationValideOk = false;
519
		initialiserAuteurs();
527
		initialiserAuteurs();
520
		auteursValideOk = false;
528
		auteursValideOk = false;
521
	}
529
	}
522
	
530
	
523
	private void initialiserAuteurs() {
531
	private void initialiserAuteurs() {
524
		attenteAjoutAuteursOk = true;
532
		attenteAjoutAuteursOk = true;
525
		auteursAjoutes = new PublicationAPersonneListe();
533
		auteursAjoutes = new PublicationAPersonneListe();
526
		attenteSuppressionAuteursOk = true;
534
		attenteSuppressionAuteursOk = true;
527
		auteursSupprimes = new PublicationAPersonneListe();
535
		auteursSupprimes = new PublicationAPersonneListe();
528
	}
536
	}
529
	
537
	
530
	private void repandreRafraichissement() {
538
	private void repandreRafraichissement() {
531
		if (vueExterneARafraichirApresValidation != null) {
539
		if (vueExterneARafraichirApresValidation != null) {
532
			String type = "publication_modifiee";
540
			String type = "publication_modifiee";
533
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
541
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
534
				type = "publication_ajoutee";
542
				type = "publication_ajoutee";
535
			}
543
			}
536
			Information info = new Information(type);
544
			Information info = new Information(type);
537
			info.setDonnee(0, publication);
545
			info.setDonnee(0, publication);
538
			vueExterneARafraichirApresValidation.rafraichir(info);
546
			vueExterneARafraichirApresValidation.rafraichir(info);
539
		}
547
		}
540
	}
548
	}
541
	
549
	
542
	public boolean soumettreFormulaire() {
550
	public boolean soumettreFormulaire() {
543
		formulaireValideOk = verifierFormulaire();
551
		formulaireValideOk = verifierFormulaire();
544
		if (formulaireValideOk) {
552
		if (formulaireValideOk) {
545
			soumettrePublication();
553
			soumettrePublication();
546
			soumettreAuteurs();
554
			soumettreAuteurs();
547
		}
555
		}
548
		return formulaireValideOk;
556
		return formulaireValideOk;
549
	}
557
	}
550
	
558
	
551
	private void soumettrePublication() {
559
	private void soumettrePublication() {
552
		Publication publicationCollectee = collecterPublication();
560
		Publication publicationCollectee = collecterPublication();
553
		if (publicationCollectee != null) {
561
		if (publicationCollectee != null) {
554
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
562
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
555
				mediateur.ajouterPublication(this, publicationCollectee);
563
				mediateur.ajouterPublication(this, publicationCollectee);
556
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
564
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
557
				mediateur.modifierPublication(this, publicationCollectee);
565
				mediateur.modifierPublication(this, publicationCollectee);
558
			}
566
			}
559
		}
567
		}
560
	}
568
	}
561
	
569
	
562
	private void soumettreAuteurs() {
570
	private void soumettreAuteurs() {
563
		attenteAjoutAuteursOk = false;
571
		attenteAjoutAuteursOk = false;
564
		attenteSuppressionAuteursOk = false;
572
		attenteSuppressionAuteursOk = false;
565
		
573
		
566
		PersonneListe personnesInitiales = auteursInitialListe;
574
		PersonneListe personnesInitiales = auteursInitialListe;
567
		
575
		
568
		PersonneListe personnesActuelles = new PersonneListe();
576
		PersonneListe personnesActuelles = new PersonneListe();
569
		if (auteurComboboxListe != null) {
577
		if (auteurComboboxListe != null) {
570
			Iterator<ComboBox<Personne>> itcp = auteurComboboxListe.iterator();
578
			Iterator<ComboBox<Personne>> itcp = auteurComboboxListe.iterator();
571
			while (itcp.hasNext()) {
579
			while (itcp.hasNext()) {
572
				ComboBox<Personne> combobox = itcp.next();
580
				ComboBox<Personne> combobox = itcp.next();
573
				Personne personne = combobox.getValue();
581
				Personne personne = combobox.getValue();
574
				if (personne != null) {
582
				if (personne != null) {
575
					personnesActuelles.put(personne.getId(), personne);
583
					personnesActuelles.put(personne.getId(), personne);
576
				} else {
584
				} else {
577
					Debug.log("Etre valide :"+combobox.isValid()+" - "+combobox.getRawValue());
585
					Debug.log("Etre valide :"+combobox.isValid()+" - "+combobox.getRawValue());
578
				}
586
				}
579
			}
587
			}
580
		}
588
		}
581
		
589
		
582
		// Auteurs ajoutés
590
		// Auteurs ajoutés
583
		Iterator<String> clesActuelles = personnesActuelles.keySet().iterator();
591
		Iterator<String> clesActuelles = personnesActuelles.keySet().iterator();
584
		while (clesActuelles.hasNext()) {
592
		while (clesActuelles.hasNext()) {
585
			String idActuel = clesActuelles.next();
593
			String idActuel = clesActuelles.next();
586
			if (personnesInitiales.size() == 0 || personnesInitiales.get(idActuel) == null) {
594
			if (personnesInitiales.size() == 0 || personnesInitiales.get(idActuel) == null) {
587
				Personne personne = personnesActuelles.get(idActuel);
595
				Personne personne = personnesActuelles.get(idActuel);
588
				PublicationAPersonne publicationAAuteur = new PublicationAPersonne();
596
				PublicationAPersonne publicationAAuteur = new PublicationAPersonne();
589
				if (mode.equals(Formulaire.MODE_MODIFIER)) {
597
				if (mode.equals(Formulaire.MODE_MODIFIER)) {
590
					publicationAAuteur.setIdPublication(publication.getId());
598
					publicationAAuteur.setIdPublication(publication.getId());
591
				}
599
				}
592
				publicationAAuteur.setPersonne(personne);
600
				publicationAAuteur.setPersonne(personne);
593
				publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR);
601
				publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR);
594
				auteursAjoutes.put(publicationAAuteur.getId(), publicationAAuteur);
602
				auteursAjoutes.put(publicationAAuteur.getId(), publicationAAuteur);
595
				attenteAjoutAuteursOk = true;
603
				attenteAjoutAuteursOk = true;
596
			}
604
			}
597
		}
605
		}
598
 
606
 
599
		// Auteurs supprimés
607
		// Auteurs supprimés
600
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
608
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
601
			Iterator<String> clesInitiales = personnesInitiales.keySet().iterator();
609
			Iterator<String> clesInitiales = personnesInitiales.keySet().iterator();
602
			while (clesInitiales.hasNext()) {
610
			while (clesInitiales.hasNext()) {
603
				String idInitial = clesInitiales.next();
611
				String idInitial = clesInitiales.next();
604
				if (personnesActuelles.size() == 0 || personnesActuelles.get(idInitial) == null) {
612
				if (personnesActuelles.size() == 0 || personnesActuelles.get(idInitial) == null) {
605
					Personne personne = personnesInitiales.get(idInitial);
613
					Personne personne = personnesInitiales.get(idInitial);
606
					PublicationAPersonne publicationAAuteur = new PublicationAPersonne();
614
					PublicationAPersonne publicationAAuteur = new PublicationAPersonne();
607
					publicationAAuteur.setIdPublication(publication.getId());
615
					publicationAAuteur.setIdPublication(publication.getId());
608
					publicationAAuteur.setPersonne(personne);
616
					publicationAAuteur.setPersonne(personne);
609
					publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR);
617
					publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR);
610
					auteursSupprimes.put(publicationAAuteur.getId(), publicationAAuteur);
618
					auteursSupprimes.put(publicationAAuteur.getId(), publicationAAuteur);
611
					attenteSuppressionAuteursOk = true;
619
					attenteSuppressionAuteursOk = true;
612
				}
620
				}
613
			}
621
			}
614
		}
622
		}
615
		
623
		
616
		// Execution de les mise à jour pour le mode MODIFICATION
624
		// Execution de les mise à jour pour le mode MODIFICATION
617
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
625
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
618
			if (auteursAjoutes != null && auteursAjoutes.size() != 0) {
626
			if (auteursAjoutes != null && auteursAjoutes.size() != 0) {
619
				mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR);
627
				mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR);
620
			}
628
			}
621
			
629
			
622
			if (auteursSupprimes != null && auteursSupprimes.size() != 0) {
630
			if (auteursSupprimes != null && auteursSupprimes.size() != 0) {
623
				mediateur.supprimerPublicationAPersonne(this, auteursSupprimes);
631
				mediateur.supprimerPublicationAPersonne(this, auteursSupprimes);
624
			}
632
			}
625
		}
633
		}
626
		Debug.log("personnesInitiales:"+personnesInitiales.size()+" - personnesActuelles :"+personnesActuelles.size()+" - auteursSupprimes :"+auteursSupprimes.size()+" - auteursAjoutes :"+auteursAjoutes.size());
634
		Debug.log("personnesInitiales:"+personnesInitiales.size()+" - personnesActuelles :"+personnesActuelles.size()+" - auteursSupprimes :"+auteursSupprimes.size()+" - auteursAjoutes :"+auteursAjoutes.size());
627
	}
635
	}
628
	
636
	
629
	public boolean verifierFormulaire() {
637
	public boolean verifierFormulaire() {
630
		boolean valide = true;
638
		boolean valide = true;
631
		ArrayList<String> messages = new ArrayList<String>();
639
		ArrayList<String> messages = new ArrayList<String>();
632
		
640
		
633
		boolean auteurErreur = true;
641
		boolean auteurErreur = true;
634
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
642
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
635
			if (auteurComboboxListe.get(i).getValue() != null) {
643
			if (auteurComboboxListe.get(i).getValue() != null) {
636
				auteurErreur = false;
644
				auteurErreur = false;
637
				break;
645
				break;
638
			}
646
			}
639
		}
647
		}
640
		if (auteurErreur) {
648
		if (auteurErreur) {
641
			messages.add("Veuillez saisir au moins un auteur !");
649
			messages.add("Veuillez saisir au moins un auteur !");
642
		}
650
		}
643
		
651
		
644
		String titre = titreChp.getValue();
652
		String titre = titreChp.getValue();
645
		if (titre == null || titre.equals("")) {
653
		if (titre == null || titre.equals("")) {
646
			messages.add("Veuillez saisir le titre de la publication !");
654
			messages.add("Veuillez saisir le titre de la publication !");
647
		}
655
		}
648
		
656
		
649
		String uri = uriChp.getValue();
657
		String uri = uriChp.getValue();
650
		if (uri != null && ! uri.isEmpty() && ! uri.matches(Pattern.url)) {
658
		if (uri != null && ! uri.isEmpty() && ! uri.matches(Pattern.url)) {
651
			messages.add("L'URL saisie n'est pas valide !");
659
			messages.add("L'URL saisie n'est pas valide !");
652
		}
660
		}
653
		
661
		
654
		String datePublication = datePublicationChp.getRawValue();
662
		String datePublication = datePublicationChp.getRawValue();
655
		if (datePublication == null || datePublication.equals("")) {
663
		if (datePublication == null || datePublication.equals("")) {
656
			messages.add("Veuillez saisir une année de parution !");
664
			messages.add("Veuillez saisir une année de parution !");
657
		} else {
665
		} else {
658
			if (!etreDateValide(datePublication)) {
666
			if (!etreDateValide(datePublication)) {
659
				messages.add("Le format de l'année saisie est incorrect !");
667
				messages.add("Le format de l'année saisie est incorrect !");
660
			}
668
			}
661
		}
669
		}
662
		
670
		
663
		String pages = pagesChp.getValue();
671
		String pages = pagesChp.getValue();
664
		String valeurPage = "(?:[0-9]+|[IVXLCDM]+|\\?)";
672
		String valeurPage = "(?:[0-9]+|[IVXLCDM]+|\\?)";
665
		if (pages != null && ! pages.matches("^(?:"+valeurPage+"|"+valeurPage+"-"+valeurPage+")$")) {
673
		if (pages != null && ! pages.matches("^(?:"+valeurPage+"|"+valeurPage+"-"+valeurPage+")$")) {
666
			messages.add("Le format des pages est incorrect !");
674
			messages.add("Le format des pages est incorrect !");
667
		}
675
		}
668
		
676
		
669
		if (messages.size() != 0) {
677
		if (messages.size() != 0) {
670
			String[] tableauDeMessages = {};
678
			String[] tableauDeMessages = {};
671
			tableauDeMessages = messages.toArray(tableauDeMessages);
679
			tableauDeMessages = messages.toArray(tableauDeMessages);
672
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null);
680
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null);
673
			valide = false;
681
			valide = false;
674
		}
682
		}
675
		return valide;		
683
		return valide;		
676
	}
684
	}
677
	
685
	
678
	private void peuplerFormulaire() {
686
	private void peuplerFormulaire() {
679
		setValeurComboProjets();
687
		setValeurComboProjets();
680
		titreChp.setValue(publication.getTitre());
688
		titreChp.setValue(publication.getTitre());
681
		collectionChp.setValue(publication.getCollection());
689
		collectionChp.setValue(publication.getCollection());
682
		uriChp.setValue(publication.getURI());
690
		uriChp.setValue(publication.getURI());
683
		datePublicationChp.setValue(reduireDateParAnnee(publication.getDateParution()));
691
		datePublicationChp.setValue(reduireDateParAnnee(publication.getDateParution()));
684
		tomeChp.setValue(publication.getIndicationNvt());
692
		tomeChp.setValue(publication.getIndicationNvt());
685
		fasciculeChp.setValue(publication.getFascicule());
693
		fasciculeChp.setValue(publication.getFascicule());
686
		pagesChp.setValue(publication.getPages());
694
		pagesChp.setValue(publication.getPages());
687
		
695
		
688
		if (publication.getEditeur().matches("^[0-9]+$")) {
696
		if (publication.getEditeur().matches("^[0-9]+$")) {
689
			editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur()));
697
			editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur()));
690
		} else {
698
		} else {
691
			editeurCombobox.setRawValue(publication.getEditeur());
699
			editeurCombobox.setRawValue(publication.getEditeur());
692
		}
700
		}
693
	}
701
	}
694
	
702
	
695
	private Publication collecterPublication() {
703
	private Publication collecterPublication() {
696
		Publication publicationCollectee = (Publication) publication.cloner(new Publication());
704
		Publication publicationCollectee = (Publication) publication.cloner(new Publication());
697
		
705
		
698
		publicationCollectee.setIdProjet(getValeurComboProjets());
706
		publicationCollectee.setIdProjet(getValeurComboProjets());
699
		
707
		
700
		publicationCollectee.setAuteur(construireIntituleAuteur());
708
		publicationCollectee.setAuteur(construireIntituleAuteur());
701
		
709
		
702
		String titre = titreChp.getValue();
710
		String titre = titreChp.getValue();
703
		publicationCollectee.setTitre(titre);
711
		publicationCollectee.setTitre(titre);
704
		
712
		
705
		String collection = collectionChp.getValue();
713
		String collection = collectionChp.getValue();
706
		publicationCollectee.setCollection(collection);
714
		publicationCollectee.setCollection(collection);
707
		
715
		
708
		publicationCollectee.setNomComplet(construireNomComplet());
716
		publicationCollectee.setNomComplet(construireNomComplet());
709
		
717
		
710
		String uri = uriChp.getValue();
718
		String uri = uriChp.getValue();
711
		publicationCollectee.setUri(uri);
719
		publicationCollectee.setUri(uri);
712
		
720
		
713
		String editeur = "";
721
		String editeur = "";
714
		if (editeurCombobox.getValue() != null) {
722
		if (editeurCombobox.getValue() != null) {
715
			editeur = editeurCombobox.getValue().getId();
723
			editeur = editeurCombobox.getValue().getId();
716
			publicationCollectee.setStructureEditeur(editeurCombobox.getValue());
724
			publicationCollectee.setStructureEditeur(editeurCombobox.getValue());
717
		} else if (editeurCombobox.getRawValue() != "") {
725
		} else if (editeurCombobox.getRawValue() != "") {
718
			editeur = editeurCombobox.getRawValue();
726
			editeur = editeurCombobox.getRawValue();
719
		}
727
		}
720
		publicationCollectee.setEditeur(editeur);
728
		publicationCollectee.setEditeur(editeur);
721
		
729
		
722
		String anneePublication = datePublicationChp.getRawValue();
730
		String anneePublication = datePublicationChp.getRawValue();
723
		String datePublication = anneePublication+"-00-00";
731
		String datePublication = anneePublication+"-00-00";
724
		publicationCollectee.setDateParution(datePublication);
732
		publicationCollectee.setDateParution(datePublication);
725
		
733
		
726
		String tome = tomeChp.getValue();
734
		String tome = tomeChp.getValue();
727
		publicationCollectee.setIndicationNvt(tome);
735
		publicationCollectee.setIndicationNvt(tome);
728
		
736
		
729
		String fascicule = fasciculeChp.getValue();
737
		String fascicule = fasciculeChp.getValue();
730
		publicationCollectee.setFascicule(fascicule);
738
		publicationCollectee.setFascicule(fascicule);
731
		
739
		
732
		String pages = pagesChp.getValue();
740
		String pages = pagesChp.getValue();
733
		publicationCollectee.setPages(pages);
741
		publicationCollectee.setPages(pages);
734
		
742
		
735
		Publication publicationARetourner = null;
743
		Publication publicationARetourner = null;
736
		if (!publicationCollectee.comparer(publication)) {
744
		if (!publicationCollectee.comparer(publication)) {
737
			publicationARetourner = publication = publicationCollectee;
745
			publicationARetourner = publication = publicationCollectee;
738
		}
746
		}
739
		return publicationARetourner;
747
		return publicationARetourner;
740
	}
748
	}
741
	
749
	
742
	private String construireIntituleEditeur() {
750
	private String construireIntituleEditeur() {
743
		String editeur = "";
751
		String editeur = "";
744
		if (editeurCombobox.getValue() != null) {
752
		if (editeurCombobox.getValue() != null) {
745
			editeur = editeurCombobox.getValue().getNom();
753
			editeur = editeurCombobox.getValue().getNom();
746
		} else if (editeurCombobox.getRawValue() != "") {
754
		} else if (editeurCombobox.getRawValue() != "") {
747
			editeur = editeurCombobox.getRawValue();
755
			editeur = editeurCombobox.getRawValue();
748
		}
756
		}
749
		return editeur;
757
		return editeur;
750
	}
758
	}
751
	
759
	
752
	private String construireIntituleAuteur() {
760
	private String construireIntituleAuteur() {
753
		String inituleAuteur = "";
761
		String inituleAuteur = "";
754
		int auteursNombre = auteurComboboxListe.size();
762
		int auteursNombre = auteurComboboxListe.size();
755
		for (int i = 0; i < auteursNombre; i++) {
763
		for (int i = 0; i < auteursNombre; i++) {
756
			if (auteurComboboxListe.get(i).getValue() != null) {
764
			if (auteurComboboxListe.get(i).getValue() != null) {
757
				Personne auteur = auteurComboboxListe.get(i).getValue();
765
				Personne auteur = auteurComboboxListe.get(i).getValue();
758
				inituleAuteur += auteur.getNom().toUpperCase()+ " "+auteur.getPrenom();
766
				inituleAuteur += auteur.getNom().toUpperCase()+ " "+auteur.getPrenom();
759
				if (i != (auteursNombre - 1)) {
767
				if (i != (auteursNombre - 1)) {
760
					inituleAuteur += ", ";
768
					inituleAuteur += ", ";
761
				}
769
				}
762
			}
770
			}
763
		}
771
		}
764
		return inituleAuteur;
772
		return inituleAuteur;
765
	}
773
	}
766
	
774
	
767
	private String construireNomComplet() {
775
	private String construireNomComplet() {
768
		// Intitulé de la publication complet : fmt_auteur, date_parution(année). titre. Editeur (nom), collection, fascicule, indication_nvt. pages.
776
		// Intitulé de la publication complet : fmt_auteur, date_parution(année). titre. Editeur (nom), collection, fascicule, indication_nvt. pages.
769
		String nomComplet = "";
777
		String nomComplet = "";
770
		String auteurs = construireIntituleAuteur();
778
		String auteurs = construireIntituleAuteur();
771
		String annee = datePublicationChp.getRawValue();
779
		String annee = datePublicationChp.getRawValue();
772
		String titre = titreChp.getValue();
780
		String titre = titreChp.getValue();
773
		String editeur = construireIntituleEditeur();
781
		String editeur = construireIntituleEditeur();
774
		
782
		
775
		nomComplet += auteurs+", "+annee+". "+titre+".";
783
		nomComplet += auteurs+", "+annee+". "+titre+".";
776
		
784
		
777
		if (!UtilString.isEmpty(editeur)) {
785
		if (!UtilString.isEmpty(editeur)) {
778
			nomComplet += " Éditeur "+editeur+".";
786
			nomComplet += " Éditeur "+editeur+".";
779
		}
787
		}
780
		
788
		
781
		if (collectionChp.getValue() != null) {
789
		if (collectionChp.getValue() != null) {
782
			String revue = collectionChp.getValue();
790
			String revue = collectionChp.getValue();
783
			nomComplet += ", "+revue;
791
			nomComplet += ", "+revue;
784
		}
792
		}
785
		
793
		
786
		if (fasciculeChp.getValue() != null) {
794
		if (fasciculeChp.getValue() != null) {
787
			String fascicule = fasciculeChp.getValue();
795
			String fascicule = fasciculeChp.getValue();
788
			nomComplet += ", "+fascicule;
796
			nomComplet += ", "+fascicule;
789
		}
797
		}
790
		
798
		
791
		if (tomeChp.getValue() != null) {
799
		if (tomeChp.getValue() != null) {
792
			String tomaison = tomeChp.getValue();
800
			String tomaison = tomeChp.getValue();
793
			nomComplet += ", "+tomaison;
801
			nomComplet += ", "+tomaison;
794
		}
802
		}
795
		
803
		
796
		if (collectionChp.getValue() != null || fasciculeChp.getValue() != null || tomeChp.getValue() != null) {
804
		if (collectionChp.getValue() != null || fasciculeChp.getValue() != null || tomeChp.getValue() != null) {
797
			nomComplet += ".";	
805
			nomComplet += ".";	
798
		}
806
		}
799
		
807
		
800
		if (pagesChp.getValue() != null) {
808
		if (pagesChp.getValue() != null) {
801
			String pages = pagesChp.getValue();
809
			String pages = pagesChp.getValue();
802
			nomComplet += pages+".";
810
			nomComplet += pages+".";
803
		}
811
		}
804
		
812
		
805
		return nomComplet;
813
		return nomComplet;
806
	}
814
	}
807
	
815
	
808
	public void reinitialiserFormulaire() {
816
	public void reinitialiserFormulaire() {
809
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
817
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
810
			mediateur.afficherFormPublication(publication.getId());
818
			mediateur.afficherFormPublication(publication.getId());
811
		} else {
819
		} else {
812
			mediateur.afficherFormPublication(null);
820
			mediateur.afficherFormPublication(null);
813
		}
821
		}
814
	}
822
	}
815
	
823
	
816
	private boolean etreDateValide(String anneePublication) {
824
	private boolean etreDateValide(String anneePublication) {
817
		boolean valide = true;
825
		boolean valide = true;
818
		if (!anneePublication.matches("^[0-2][0-9]{3}$")) {
826
		if (!anneePublication.matches("^[0-2][0-9]{3}$")) {
819
			valide = false;
827
			valide = false;
820
		}
828
		}
821
		return valide;
829
		return valide;
822
	}
830
	}
823
	
831
	
824
	private String reduireDateParAnnee(String datePar) {
832
	private String reduireDateParAnnee(String datePar) {
825
		if (datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {
833
		if (datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {
826
			return datePar.split("-")[0];
834
			return datePar.split("-")[0];
827
		} else {
835
		} else {
828
			return "";
836
			return "";
829
		}
837
		}
830
	}
838
	}
831
	
839
	
832
	private String getValeurComboProjets() {
840
	private String getValeurComboProjets() {
833
		String valeur = "";
841
		String valeur = "";
834
		if (projetsCombo.getValue() != null) {
842
		if (projetsCombo.getValue() != null) {
835
			valeur = projetsCombo.getValue().getId();
843
			valeur = projetsCombo.getValue().getId();
836
		}
844
		}
837
		return valeur;
845
		return valeur;
838
	}
846
	}
839
	private void setValeurComboProjets() {
847
	private void setValeurComboProjets() {
840
		if (projetsCombo.getStore() != null ) {
848
		if (projetsCombo.getStore() != null ) {
841
			if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) {
849
			if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) {
842
				projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", publication.getIdProjet()));
850
				projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", publication.getIdProjet()));
843
			} else if (mode.equals(Formulaire.MODE_AJOUTER)) {
851
			} else if (mode.equals(Formulaire.MODE_AJOUTER)) {
844
				projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", mediateur.getProjetId()));
852
				projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", mediateur.getProjetId()));
845
			}
853
			}
846
		}
854
		}
847
	}
855
	}
848
}
856
}