Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 981 Rev 1080
1
package org.tela_botanica.client.vues.projet;
1
package org.tela_botanica.client.vues.projet;
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.Iterator;
4
import java.util.Iterator;
5
 
5
 
6
import org.tela_botanica.client.ComposantClass;
6
import org.tela_botanica.client.ComposantClass;
7
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.modeles.Information;
9
import org.tela_botanica.client.modeles.Information;
10
import org.tela_botanica.client.modeles.MenuApplicationId;
10
import org.tela_botanica.client.modeles.MenuApplicationId;
11
import org.tela_botanica.client.modeles.Valeur;
11
import org.tela_botanica.client.modeles.Valeur;
12
import org.tela_botanica.client.modeles.ValeurListe;
12
import org.tela_botanica.client.modeles.ValeurListe;
13
import org.tela_botanica.client.modeles.projet.Projet;
13
import org.tela_botanica.client.modeles.projet.Projet;
14
import org.tela_botanica.client.util.Debug;
14
import org.tela_botanica.client.util.Debug;
15
import org.tela_botanica.client.util.Pattern;
15
import org.tela_botanica.client.util.Pattern;
16
import org.tela_botanica.client.util.UtilArray;
16
import org.tela_botanica.client.util.UtilArray;
17
import org.tela_botanica.client.util.UtilString;
17
import org.tela_botanica.client.util.UtilString;
18
import org.tela_botanica.client.vues.Formulaire;
18
import org.tela_botanica.client.vues.Formulaire;
19
 
19
 
20
import com.extjs.gxt.ui.client.Style.SortDir;
20
import com.extjs.gxt.ui.client.Style.SortDir;
21
import com.extjs.gxt.ui.client.event.Events;
21
import com.extjs.gxt.ui.client.event.Events;
22
import com.extjs.gxt.ui.client.store.ListStore;
22
import com.extjs.gxt.ui.client.store.ListStore;
23
import com.extjs.gxt.ui.client.widget.Info;
23
import com.extjs.gxt.ui.client.widget.Info;
24
import com.extjs.gxt.ui.client.widget.MessageBox;
24
import com.extjs.gxt.ui.client.widget.MessageBox;
25
import com.extjs.gxt.ui.client.widget.form.CheckBox;
25
import com.extjs.gxt.ui.client.widget.form.CheckBox;
26
import com.extjs.gxt.ui.client.widget.form.ComboBox;
26
import com.extjs.gxt.ui.client.widget.form.ComboBox;
27
import com.extjs.gxt.ui.client.widget.form.FieldSet;
27
import com.extjs.gxt.ui.client.widget.form.FieldSet;
28
import com.extjs.gxt.ui.client.widget.form.TextArea;
28
import com.extjs.gxt.ui.client.widget.form.TextArea;
29
import com.extjs.gxt.ui.client.widget.form.TextField;
29
import com.extjs.gxt.ui.client.widget.form.TextField;
30
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
30
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
31
import com.extjs.gxt.ui.client.widget.layout.FormData;
31
import com.extjs.gxt.ui.client.widget.layout.FormData;
32
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
32
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
33
 
33
 
34
public class ProjetForm extends Formulaire implements Rafraichissable {
34
public class ProjetForm extends Formulaire implements Rafraichissable {
35
	
35
	
36
	private Projet projet;
36
	private Projet projet;
37
	
37
	
38
	private String listeValeurIndexationDureeId = "dureesIndexation";
38
	private String listeValeurIndexationDureeId = "dureesIndexation";
39
	private int listeValeurIndexationDureeInt = 1072;
39
	private int listeValeurIndexationDureeInt = 1072;
40
	private String listeValeurIndexationFrequenceId = "frequencesIndexation";
40
	private String listeValeurIndexationFrequenceId = "frequencesIndexation";
41
	private int listeValeurIndexationFrequenceInt = 1073;
41
	private int listeValeurIndexationFrequenceInt = 1073;
42
	private String listeLanguesId = "langues";
42
	private String listeLanguesId = "langues";
43
	private int listeLanguesInt = 1071;	
43
	private int listeLanguesInt = 1071;	
44
	
44
	
45
	private ListStore<Valeur> listeIndexationDuree = null;
45
	private ListStore<Valeur> listeIndexationDuree = null;
46
	private ListStore<Valeur> listeIndexationFrequence = null;
46
	private ListStore<Valeur> listeIndexationFrequence = null;
47
	private ListStore<Valeur> listeLangue = null;
47
	private ListStore<Valeur> listeLangue = null;
48
	
48
	
49
	private ValeurListe valeurListeIndexationDuree = null;
49
	private ValeurListe valeurListeIndexationDuree = null;
50
	private ValeurListe valeurListeIndexationFrequence = null;
50
	private ValeurListe valeurListeIndexationFrequence = null;
51
	private ValeurListe valeurListeLangue = null;
51
	private ValeurListe valeurListeLangue = null;
52
	
52
	
53
	private boolean listeIndexationDureeChargee = false;
53
	private boolean listeIndexationDureeChargee = false;
54
	private boolean listeIndexationFrequenceChargee = false;
54
	private boolean listeIndexationFrequenceChargee = false;
55
	private boolean listeLangueChargee = false;
55
	private boolean listeLangueChargee = false;
56
	
56
	
57
	
57
	
58
	private FieldSet generalitesFieldset = null;
58
	private FieldSet generalitesFieldset = null;
59
	private TextField<String> nomChp = null;
59
	private TextField<String> nomChp = null;
60
	private TextField<String> abreviationChp = null;
60
	private TextField<String> abreviationChp = null;
61
	private TextArea descriptionChp = null;
61
	private TextArea descriptionChp = null;
62
	private TextArea resumeChp = null;
62
	private TextArea resumeChp = null;
63
	private TextField<String> urlChp = null;
63
	private TextField<String> urlChp = null;
64
			
64
			
65
	private FieldSet complementFieldset = null;
65
	private FieldSet complementFieldset = null;
66
	private TextField<String> motsClesChp = null;
66
	private TextField<String> motsClesChp = null;
67
	private TextField<String> citationChp = null;
67
	private TextField<String> citationChp = null;
68
	private TextField<String> licenceChp = null;
68
	private TextField<String> licenceChp = null;
69
	private ComboBox<Valeur> langueChp = null;
69
	private ComboBox<Valeur> langueChp = null;
70
	private CheckBox markPublicChp = null;
70
	private CheckBox markPublicChp = null;
71
	
71
	
72
	private FieldSet indexationFieldset = null;
72
	private FieldSet indexationFieldset = null;
73
	private TextField<String> indexationHeureChp = null;
73
	private TextField<String> indexationHeureChp = null;
74
	private ComboBox<Valeur> indexationDureeChp = null;
74
	private ComboBox<Valeur> indexationDureeChp = null;
75
	private ComboBox<Valeur> indexationFrequenceChp = null;
75
	private ComboBox<Valeur> indexationFrequenceChp = null;
76
 
76
 
77
	private boolean formulaireValideOk = false;
77
	private boolean formulaireValideOk = false;
78
	private boolean projetValideOk = false;
78
	private boolean projetValideOk = false;
79
 
79
 
80
	private Rafraichissable vueExterneARafraichirApresValidation = null;
80
	private Rafraichissable vueExterneARafraichirApresValidation = null;
81
 
81
 
82
 
82
 
83
	public ProjetForm(Mediateur mediateurCourrant, String projetId) {
83
	public ProjetForm(Mediateur mediateurCourrant, String projetId) {
84
		initialiserProjetForm(mediateurCourrant, projetId);
84
		initialiserProjetForm(mediateurCourrant, projetId);
85
	}
85
	}
86
 
86
 
87
	public ProjetForm(Mediateur mediateurCourrant, String projetId, Rafraichissable vueARafraichirApresValidation) {
87
	public ProjetForm(Mediateur mediateurCourrant, String projetId, Rafraichissable vueARafraichirApresValidation) {
88
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
88
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
89
		initialiserProjetForm(mediateurCourrant, projetId);
89
		initialiserProjetForm(mediateurCourrant, projetId);
90
	}
90
	}
91
	
91
	
92
	private void initialiserProjetForm(Mediateur mediateurCourant, String projetId) {
92
	private void initialiserProjetForm(Mediateur mediateurCourant, String projetId) {
93
		projet = new Projet();
93
		projet = new Projet();
94
		projet.setId(projetId);
94
		projet.setId(projetId);
95
		
95
		
96
		String modeDeCreation = (projet.getId().isEmpty() ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
96
		String modeDeCreation = (projet.getId().isEmpty() ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
97
		initialiserFormulaire(mediateurCourant, modeDeCreation, MenuApplicationId.PROJET);
97
		initialiserFormulaire(mediateurCourant, modeDeCreation, MenuApplicationId.PROJET);
98
		
98
		
99
		panneauFormulaire.setLayout(new FlowLayout());
99
		panneauFormulaire.setLayout(new FlowLayout());
100
		actualiserTitreFormulaire();
100
		actualiserTitreFormulaire();
101
		
101
		
102
		creerZoneGeneralites();
102
		creerZoneGeneralites();
103
		panneauFormulaire.add(generalitesFieldset);
103
		panneauFormulaire.add(generalitesFieldset);
104
		
104
		
105
		creerZoneComplement();
105
		creerZoneComplement();
106
		panneauFormulaire.add(complementFieldset);
106
		panneauFormulaire.add(complementFieldset);
107
		
107
		
108
		creerZoneIndexation();
108
		creerZoneIndexation();
109
		panneauFormulaire.add(indexationFieldset);
109
		panneauFormulaire.add(indexationFieldset);
110
		
110
		
111
		creerTabIndex();
111
		creerTabIndex();
112
		
112
		
113
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
113
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
114
			mediateur.selectionnerProjet(this, projetId);
114
			mediateur.selectionnerProjet(this, projetId);
115
		}
115
		}
116
			
116
			
117
		mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId);
117
		mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId);
118
		mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId);
118
		mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId);
119
		mediateur.obtenirListeValeurEtRafraichir(this, listeLanguesId);
119
		mediateur.obtenirListeValeurEtRafraichir(this, listeLanguesId);
120
	}
120
	}
121
	
121
	
122
	private void actualiserTitreFormulaire() {
122
	private void actualiserTitreFormulaire() {
123
		String titre = i18nC.projetTitreFormAjout();
123
		String titre = i18nC.projetTitreFormAjout();
124
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
124
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
125
			 titre = i18nC.projetTitreFormModif()+" - "+i18nC.id()+": "+projet.getId();
125
			 titre = i18nC.projetTitreFormModif()+" - "+i18nC.id()+": "+projet.getId();
126
		}
126
		}
127
		panneauFormulaire.setHeading(titre);
127
		panneauFormulaire.setHeading(titre);
128
	}
128
	}
129
			
129
			
130
	private void creerZoneGeneralites() {
130
	private void creerZoneGeneralites() {
131
		FormLayout layout = new FormLayout();
131
		FormLayout layout = new FormLayout();
132
		layout.setLabelWidth(100);
132
		layout.setLabelWidth(100);
133
		
133
		
134
		// Fieldset Infos Générales
134
		// Fieldset Infos Générales
135
		generalitesFieldset = new FieldSet();
135
		generalitesFieldset = new FieldSet();
136
		generalitesFieldset.setHeading(i18nC.projetTitreInfoGenerale());
136
		generalitesFieldset.setHeading(i18nC.projetTitreInfoGenerale());
137
		generalitesFieldset.setCollapsible(true);
137
		generalitesFieldset.setCollapsible(true);
138
		generalitesFieldset.setLayout(layout);
138
		generalitesFieldset.setLayout(layout);
139
		
139
		
140
		nomChp = new TextField<String>();
140
		nomChp = new TextField<String>();
141
		nomChp.setName("cpu");
141
		nomChp.setName("cpu");
142
		nomChp.setFieldLabel("Nom");
142
		nomChp.setFieldLabel("Nom");
143
		nomChp.addStyleName(ComposantClass.OBLIGATOIRE);
143
		nomChp.addStyleName(ComposantClass.OBLIGATOIRE);
144
		nomChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
144
		nomChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
145
		generalitesFieldset.add(nomChp, new FormData(450, 0));
145
		generalitesFieldset.add(nomChp, new FormData(450, 0));
146
		
146
		
147
		abreviationChp = new TextField<String>();
147
		abreviationChp = new TextField<String>();
148
		abreviationChp.setFieldLabel("Abréviation");
148
		abreviationChp.setFieldLabel("Abréviation");
149
		abreviationChp.addStyleName(ComposantClass.OBLIGATOIRE);
149
		abreviationChp.addStyleName(ComposantClass.OBLIGATOIRE);
150
		abreviationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
150
		abreviationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
151
		generalitesFieldset.add(abreviationChp, new FormData(450, 0));
151
		generalitesFieldset.add(abreviationChp, new FormData(450, 0));
152
		
152
		
153
		descriptionChp = new TextArea();
153
		descriptionChp = new TextArea();
154
		descriptionChp.setFieldLabel("Description");
154
		descriptionChp.setFieldLabel("Description");
155
		descriptionChp.addStyleName(ComposantClass.OBLIGATOIRE);
155
		descriptionChp.addStyleName(ComposantClass.OBLIGATOIRE);
156
		descriptionChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
156
		descriptionChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
157
		generalitesFieldset.add(descriptionChp, new FormData(450, 0));
157
		generalitesFieldset.add(descriptionChp, new FormData(450, 0));
158
		
158
		
159
		resumeChp = new TextArea();
159
		resumeChp = new TextArea();
160
		resumeChp.setFieldLabel("Résumé");
160
		resumeChp.setFieldLabel("Résumé");
161
		resumeChp.addStyleName(ComposantClass.OBLIGATOIRE);
161
		resumeChp.addStyleName(ComposantClass.OBLIGATOIRE);
162
		resumeChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
162
		resumeChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
163
		generalitesFieldset.add(resumeChp, new FormData(450, 0));
163
		generalitesFieldset.add(resumeChp, new FormData(450, 0));
164
		
164
		
165
		urlChp = new TextField<String>();
165
		urlChp = new TextField<String>();
166
		urlChp.setFieldLabel("URL du projet");
166
		urlChp.setFieldLabel("URL du projet");
167
		generalitesFieldset.add(urlChp, new FormData(450, 0));
167
		generalitesFieldset.add(urlChp, new FormData(450, 0));
168
	}
168
	}
169
	
169
	
170
	private void creerZoneComplement() {
170
	private void creerZoneComplement() {
171
		FormLayout layout = new FormLayout();
171
		FormLayout layout = new FormLayout();
172
		layout.setLabelWidth(100);
172
		layout.setLabelWidth(100);
173
		
173
		
174
		// Fieldset Complément
174
		// Fieldset Complément
175
		complementFieldset = new FieldSet();
175
		complementFieldset = new FieldSet();
176
		complementFieldset.setHeading(i18nC.projetTitreComplement());
176
		complementFieldset.setHeading(i18nC.projetTitreComplement());
177
		complementFieldset.setCollapsible(true);
177
		complementFieldset.setCollapsible(true);
178
		complementFieldset.setLayout(layout);
178
		complementFieldset.setLayout(layout);
179
		
179
		
180
		motsClesChp = new TextField<String>();
180
		motsClesChp = new TextField<String>();
181
		motsClesChp.setFieldLabel("Mots Clés");
181
		motsClesChp.setFieldLabel("Mots Clés");
182
		complementFieldset.add(motsClesChp);
182
		complementFieldset.add(motsClesChp);
183
		
183
		
184
		citationChp = new TextField<String>();
184
		citationChp = new TextField<String>();
185
		citationChp.setFieldLabel("Citation");
185
		citationChp.setFieldLabel("Citation");
186
		complementFieldset.add(citationChp);
186
		complementFieldset.add(citationChp);
187
		
187
		
188
		licenceChp = new TextField<String>();
188
		licenceChp = new TextField<String>();
189
		licenceChp.setFieldLabel("Licence");
189
		licenceChp.setFieldLabel("Licence");
190
		complementFieldset.add(licenceChp);
190
		complementFieldset.add(licenceChp);
191
		
191
		
192
		listeLangue = new ListStore<Valeur>();
192
		listeLangue = new ListStore<Valeur>();
193
		langueChp = new ComboBox<Valeur>();
193
		langueChp = new ComboBox<Valeur>();
194
		langueChp.setStore(listeLangue);
194
		langueChp.setStore(listeLangue);
195
		langueChp.setDisplayField("nom");
195
		langueChp.setDisplayField("nom");
196
		langueChp.setEditable(true);
196
		langueChp.setEditable(true);
197
		langueChp.setForceSelection(true);
197
		langueChp.setForceSelection(true);
198
		langueChp.setTypeAhead(true);
198
		langueChp.setTypeAhead(true);
199
		langueChp.setFieldLabel("Langue");
199
		langueChp.setFieldLabel("Langue");
200
		complementFieldset.add(langueChp);
200
		complementFieldset.add(langueChp);
201
		
201
		
202
		markPublicChp = new CheckBox();
202
		markPublicChp = new CheckBox();
203
		markPublicChp.setFieldLabel("Public");
203
		markPublicChp.setFieldLabel("Public");
204
		complementFieldset.add(markPublicChp);
204
		complementFieldset.add(markPublicChp);
205
	}
205
	}
206
	
206
	
207
	private void creerZoneIndexation() {
207
	private void creerZoneIndexation() {
208
		FormLayout layout = new FormLayout();
208
		FormLayout layout = new FormLayout();
209
		layout.setLabelWidth(100);
209
		layout.setLabelWidth(100);
210
		
210
		
211
		// Fieldset Indexation
211
		// Fieldset Indexation
212
		indexationFieldset = new FieldSet();
212
		indexationFieldset = new FieldSet();
213
		indexationFieldset.setHeading(i18nC.projetTitreIndexation());
213
		indexationFieldset.setHeading(i18nC.projetTitreIndexation());
214
		indexationFieldset.setCollapsible(true);
214
		indexationFieldset.setCollapsible(true);
215
		indexationFieldset.setLayout(layout);
215
		indexationFieldset.setLayout(layout);
216
		
216
		
217
		indexationHeureChp = new TextField<String>();
217
		indexationHeureChp = new TextField<String>();
218
		indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure());
218
		indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure());
219
		indexationFieldset.add(indexationHeureChp, new FormData(80, 0));
219
		indexationFieldset.add(indexationHeureChp, new FormData(80, 0));
220
		
220
		
221
		// liste 1073
221
		// liste 1073
222
		listeIndexationFrequence = new ListStore<Valeur>();
222
		listeIndexationFrequence = new ListStore<Valeur>();
223
		indexationFrequenceChp = new ComboBox<Valeur>();
223
		indexationFrequenceChp = new ComboBox<Valeur>();
224
		indexationFrequenceChp.setStore(listeIndexationFrequence);
224
		indexationFrequenceChp.setStore(listeIndexationFrequence);
225
		indexationFrequenceChp.setDisplayField("nom");
225
		indexationFrequenceChp.setDisplayField("nom");
226
		indexationFrequenceChp.setEditable(true);
226
		indexationFrequenceChp.setEditable(true);
227
		indexationFrequenceChp.setForceSelection(true);
227
		indexationFrequenceChp.setForceSelection(true);
228
		indexationFrequenceChp.setTypeAhead(true);
228
		indexationFrequenceChp.setTypeAhead(true);
229
		indexationFrequenceChp.setFieldLabel(i18nC.projetIndexationFrequence());
229
		indexationFrequenceChp.setFieldLabel(i18nC.projetIndexationFrequence());
230
		indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0));
230
		indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0));
231
		
231
		
232
		// liste 1072
232
		// liste 1072
233
		listeIndexationDuree = new ListStore<Valeur>();
233
		listeIndexationDuree = new ListStore<Valeur>();
234
		indexationDureeChp = new ComboBox<Valeur>();
234
		indexationDureeChp = new ComboBox<Valeur>();
235
		indexationDureeChp.setStore(listeIndexationDuree);
235
		indexationDureeChp.setStore(listeIndexationDuree);
236
		indexationDureeChp.setDisplayField("nom");
236
		indexationDureeChp.setDisplayField("nom");
237
		indexationDureeChp.setEditable(true);
237
		indexationDureeChp.setEditable(true);
238
		indexationDureeChp.setForceSelection(true);
238
		indexationDureeChp.setForceSelection(true);
239
		indexationDureeChp.setTypeAhead(true);
239
		indexationDureeChp.setTypeAhead(true);
240
		indexationDureeChp.setFieldLabel(i18nC.projetIndexationDuree());
240
		indexationDureeChp.setFieldLabel(i18nC.projetIndexationDuree());
241
		indexationFieldset.add(indexationDureeChp, new FormData(80, 0));
241
		indexationFieldset.add(indexationDureeChp, new FormData(80, 0));
242
				
242
				
243
	}
243
	}
244
	
244
	
245
	private void creerTabIndex() {
245
	private void creerTabIndex() {
246
		nomChp.setTabIndex(1);
246
		nomChp.setTabIndex(1);
247
		abreviationChp.setTabIndex(2);
247
		abreviationChp.setTabIndex(2);
248
		descriptionChp.setTabIndex(3);
248
		descriptionChp.setTabIndex(3);
249
		resumeChp.setTabIndex(4);
249
		resumeChp.setTabIndex(4);
250
		urlChp.setTabIndex(5);
250
		urlChp.setTabIndex(5);
251
				
251
				
252
		motsClesChp.setTabIndex(6);
252
		motsClesChp.setTabIndex(6);
253
		citationChp.setTabIndex(7);
253
		citationChp.setTabIndex(7);
254
		licenceChp.setTabIndex(8);
254
		licenceChp.setTabIndex(8);
255
		langueChp.setTabIndex(9);
255
		langueChp.setTabIndex(9);
256
		markPublicChp.setTabIndex(10);
256
		markPublicChp.setTabIndex(10);
257
		
257
		
258
		indexationHeureChp.setTabIndex(11);
258
		indexationHeureChp.setTabIndex(11);
259
		indexationFrequenceChp.setTabIndex(12);
259
		indexationFrequenceChp.setTabIndex(12);
260
		indexationDureeChp.setTabIndex(13);
260
		indexationDureeChp.setTabIndex(13);
261
		
261
		
262
		nomChp.focus();
262
		nomChp.focus();
263
	}
263
	}
264
 
264
 
265
	public void rafraichir(Object nouvellesDonnees) {
265
	public void rafraichir(Object nouvellesDonnees) {
266
		if (nouvellesDonnees instanceof Information) {
266
		if (nouvellesDonnees instanceof Information) {
267
			Information info = (Information) nouvellesDonnees;
267
			Information info = (Information) nouvellesDonnees;
268
			rafraichirInformation(info);
268
			rafraichirInformation(info);
269
		} else if (nouvellesDonnees instanceof ValeurListe) {
269
		} else if (nouvellesDonnees instanceof ValeurListe) {
270
			ValeurListe valeursListe = (ValeurListe) nouvellesDonnees;
270
			ValeurListe valeursListe = (ValeurListe) nouvellesDonnees;
271
			rafraichirValeurListe(valeursListe);
271
			rafraichirValeurListe(valeursListe);
272
			Debug.log("une liste de valeurs est arrivée "+valeursListe.getId());
-
 
273
		}
272
		}
274
		
273
		
275
		if (etreValide()) {
274
		if (etreValide()) {
276
			initialiserValidation();
275
			initialiserValidation();
277
			repandreRafraichissement();
276
			repandreRafraichissement();
278
			controlerFermetureApresRafraichissement();
277
			controlerFermetureApresRafraichissement();
279
		}
278
		}
280
	}
279
	}
281
 
280
 
282
	private void rafraichirInformation(Information info) {
281
	private void rafraichirInformation(Information info) {
283
		final String type = info.getType();
282
		final String type = info.getType();
284
		
283
		
285
		// Gestion des problèmes
284
		// Gestion des problèmes
286
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
285
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
287
			Debug.log("MESSAGES:\n"+info.getMessages().toString());
286
			Debug.log("MESSAGES:\n"+info.getMessages().toString());
288
		}
287
		}
289
		
288
		
290
		// Gestion des actions
289
		// Gestion des actions
291
		if (type.equals("selection_projet")) {
290
		if (type.equals("selection_projet")) {
292
			if (info.getDonnee(0) != null) {
291
			if (info.getDonnee(0) != null) {
293
				projet = (Projet) info.getDonnee(0);
292
				projet = (Projet) info.getDonnee(0);
294
			}
293
			}
295
			peuplerFormulaire();
294
			peuplerFormulaire();
296
			actualiserTitreFormulaire();
295
			actualiserTitreFormulaire();
297
		} else if (type.equals("modif_projet") || type.equals("ajout_projet") ) {
296
		} else if (type.equals("ajout_projet") ) {
298
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
297
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
299
				String projetId = (String) info.getDonnee(0);
298
				String projetId = (String) info.getDonnee(0);
300
				projet.setId(projetId);
299
				projet.setId(projetId);
301
				projetValideOk = true;
300
				projetValideOk = true;
302
			}
301
			}
303
		}
302
		}
304
		
303
		
305
		// Gestion des messages
304
		// Gestion des messages
306
		if (type.equals("selection_projet")) {
305
		if (type.equals("selection_projet")) {
307
			Info.display(i18nC.projetTitreFormModif(), info.toString());
306
			Info.display(i18nC.projetTitreFormModif(), info.toString());
308
		} else if (type.equals("modif_projet")) {
307
		} else if (type.equals("modif_projet")) {
309
			Info.display(i18nC.projetTitreFormModif(), info.toString());
308
			Info.display(i18nC.projetTitreFormModif(), info.toString());
310
		} else if (type.equals("ajout_projet")) {
309
		} else if (type.equals("ajout_projet")) {
311
			if (!UtilString.isEmpty(projet.getId())) {
310
			if (!UtilString.isEmpty(projet.getId())) {
312
				info.setMessage("Le projet '"+projet.getId()+"' a bien été ajouté");
311
				info.setMessage("Le projet '"+projet.getId()+"' a bien été ajouté");
313
			}
312
			}
314
			Info.display(i18nC.projetTitreFormAjout(), info.toString());
313
			Info.display(i18nC.projetTitreFormAjout(), info.toString());
315
		}
314
		}
316
	}
315
	}
317
	
316
	
318
	private void rafraichirValeurListe(ValeurListe valeursListe) {
317
	private void rafraichirValeurListe(ValeurListe valeursListe) {
319
		if (valeursListe.getId() == listeValeurIndexationDureeInt) {
318
		if (valeursListe.getId() == listeValeurIndexationDureeInt) {
320
			valeurListeIndexationDuree = valeursListe;
319
			valeurListeIndexationDuree = valeursListe;
321
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
320
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
322
				listeIndexationDuree.add(valeursListe.get(it.next()));
321
				listeIndexationDuree.add(valeursListe.get(it.next()));
323
				listeIndexationDuree.sort("id_valeur", SortDir.ASC);
322
				listeIndexationDuree.sort("id_valeur", SortDir.ASC);
324
			}
323
			}
325
			listeIndexationDureeChargee = true;
324
			listeIndexationDureeChargee = true;
326
			
325
			
327
			if (mode.equals(MODE_MODIFIER)) {
326
			if (mode.equals(MODE_MODIFIER)) {
328
				if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) {
327
				if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) {
329
					indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree()));
328
					indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree()));
330
					indexationDureeChp.validate();
329
					indexationDureeChp.validate();
331
				}
330
				}
332
			}
331
			}
333
			indexationDureeChp.expand();
332
			indexationDureeChp.expand();
334
		} else if (valeursListe.getId() == listeValeurIndexationFrequenceInt) {
333
		} else if (valeursListe.getId() == listeValeurIndexationFrequenceInt) {
335
			valeurListeIndexationFrequence = valeursListe;
334
			valeurListeIndexationFrequence = valeursListe;
336
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
335
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
337
				listeIndexationFrequence.add(valeursListe.get(it.next()));
336
				listeIndexationFrequence.add(valeursListe.get(it.next()));
338
				listeIndexationFrequence.sort("id_valeur", SortDir.ASC);
337
				listeIndexationFrequence.sort("id_valeur", SortDir.ASC);
339
			}
338
			}
340
			listeIndexationFrequenceChargee = true;
339
			listeIndexationFrequenceChargee = true;
341
			
340
			
342
			if (mode.equals(MODE_MODIFIER)) {
341
			if (mode.equals(MODE_MODIFIER)) {
343
				if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) {
342
				if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) {
344
					indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq()));
343
					indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq()));
345
					indexationFrequenceChp.validate();
344
					indexationFrequenceChp.validate();
346
				}
345
				}
347
			}
346
			}
348
			indexationFrequenceChp.expand();
347
			indexationFrequenceChp.expand();
349
		} else if (valeursListe.getId() == listeLanguesInt) {
348
		} else if (valeursListe.getId() == listeLanguesInt) {
350
			valeurListeLangue = valeursListe;
349
			valeurListeLangue = valeursListe;
351
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
350
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
352
				listeLangue.add(valeursListe.get(it.next()));
351
				listeLangue.add(valeursListe.get(it.next()));
353
				listeLangue.sort("id_valeur", SortDir.ASC);
352
				listeLangue.sort("id_valeur", SortDir.ASC);
354
			}
353
			}
355
			listeLangueChargee = true;
354
			listeLangueChargee = true;
356
			
355
			
357
			if (mode.equals(MODE_MODIFIER)) {
356
			if (mode.equals(MODE_MODIFIER)) {
358
				if (valeurListeLangue.get(projet.getLangue()) != null) {
357
				if (valeurListeLangue.get(projet.getLangue()) != null) {
359
					langueChp.setValue(valeurListeLangue.get(projet.getLangue()));
358
					langueChp.setValue(valeurListeLangue.get(projet.getLangue()));
360
					langueChp.validate();
359
					langueChp.validate();
361
				}
360
				}
362
			}
361
			}
363
		}
362
		}
364
	}
363
	}
365
		
364
		
366
	private Boolean etreValide() {
365
	private Boolean etreValide() {
367
		Boolean valide = false;
366
		Boolean valide = false;
368
		if (formulaireValideOk && projetValideOk) {
367
		if (formulaireValideOk && projetValideOk) {
369
			valide = true;
368
			valide = true;
370
		}
369
		}
371
		return valide;
370
		return valide;
372
	}
371
	}
373
	
372
	
374
	private void initialiserValidation() {
373
	private void initialiserValidation() {
375
		formulaireValideOk = false;
374
		formulaireValideOk = false;
376
		projetValideOk = false;
375
		projetValideOk = false;
377
	}
376
	}
378
	
377
	
379
	private void repandreRafraichissement() {
378
	private void repandreRafraichissement() {
380
		if (vueExterneARafraichirApresValidation != null) {
379
		if (vueExterneARafraichirApresValidation != null) {
381
			String type = "projet_modifie";
380
			String type = "projet_modifie";
382
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
381
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
383
				type = "projet_ajoute";
382
				type = "projet_ajoute";
384
			}
383
			}
385
			Information info = new Information(type);
384
			Information info = new Information(type);
386
			info.setDonnee(0, projet);
385
			info.setDonnee(0, projet);
387
			vueExterneARafraichirApresValidation.rafraichir(info);
386
			vueExterneARafraichirApresValidation.rafraichir(info);
388
		}
387
		}
389
	}
388
	}
390
	
389
	
391
	public boolean soumettreFormulaire() {
390
	public boolean soumettreFormulaire() {
392
		formulaireValideOk = verifierFormulaire();
391
		formulaireValideOk = verifierFormulaire();
393
		if (formulaireValideOk) {
392
		if (formulaireValideOk) {
394
			Projet projetCollecte = collecterProjet();
393
			Projet projetCollecte = collecterProjet();
395
			if (projetCollecte != null) {
394
			if (projetCollecte != null) {
396
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
395
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
397
					mediateur.ajouterProjet(this, projetCollecte);
396
					mediateur.ajouterProjet(this, projetCollecte);
398
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
397
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
399
					mediateur.modifierProjet(this, projetCollecte);
398
					mediateur.modifierProjet(this, projetCollecte);
400
				}
399
				}
401
			}
400
			}
402
		}
401
		}
403
		return formulaireValideOk;
402
		return formulaireValideOk;
404
	}
403
	}
405
	
404
	
406
	public boolean verifierFormulaire() {
405
	public boolean verifierFormulaire() {
407
		boolean valide = true;
406
		boolean valide = true;
408
		ArrayList<String> messages = new ArrayList<String>();
407
		ArrayList<String> messages = new ArrayList<String>();
409
		
408
		
410
		String titre = nomChp.getValue();
409
		String titre = nomChp.getValue();
411
		if (titre == null || titre.equals("")) {
410
		if (titre == null || titre.equals("")) {
412
			messages.add("Veuillez saisir le nom du projet !");
411
			messages.add("Veuillez saisir le nom du projet !");
413
		}
412
		}
414
		
413
		
415
		String abr = abreviationChp.getValue();
414
		String abr = abreviationChp.getValue();
416
		if (abr == null || abr.equals("")) {
415
		if (abr == null || abr.equals("")) {
417
			messages.add("Veuillez saisir l'abréviation du projet !");
416
			messages.add("Veuillez saisir l'abréviation du projet !");
418
		}
417
		}
419
		
418
		
420
		String desc = descriptionChp.getValue();
419
		String desc = descriptionChp.getValue();
421
		if (desc == null || desc.equals("")) {
420
		if (desc == null || desc.equals("")) {
422
			messages.add("Veuillez saisir la description du projet !");
421
			messages.add("Veuillez saisir la description du projet !");
423
		}
422
		}
424
		
423
		
425
		String resume = resumeChp.getValue();
424
		String resume = resumeChp.getValue();
426
		if (resume == null || resume.equals("")) {
425
		if (resume == null || resume.equals("")) {
427
			messages.add("Veuillez saisir le résumé du projet !");
426
			messages.add("Veuillez saisir le résumé du projet !");
428
		}
427
		}
429
		
428
		
430
		String uri = urlChp.getValue();
429
		String uri = urlChp.getValue();
431
		if (uri != null && ! uri.trim().isEmpty() && ! uri.matches(Pattern.url)) {
430
		if (uri != null && ! uri.trim().isEmpty() && ! uri.matches(Pattern.url)) {
432
			messages.add("L'URL saisie n'est pas valide !");
431
			messages.add("L'URL saisie n'est pas valide !");
433
		}
432
		}
434
		
433
		
435
		String heure = indexationHeureChp.getValue();
434
		String heure = indexationHeureChp.getValue();
436
		if (!UtilString.isEmpty(heure)) {
435
		if (!UtilString.isEmpty(heure)) {
437
			if (!heure.matches(Pattern.heureMinute)) {
436
			if (!heure.matches(Pattern.heureMinute)) {
438
				messages.add("L'heureMinute d'indexation saisie n'est pas valide !");
437
				messages.add("L'heureMinute d'indexation saisie n'est pas valide !");
439
			}
438
			}
440
		}
439
		}
441
		
440
		
442
		if (messages.size() != 0) {
441
		if (messages.size() != 0) {
443
			String[] tableauDeMessages = {};
442
			String[] tableauDeMessages = {};
444
			tableauDeMessages = messages.toArray(tableauDeMessages);
443
			tableauDeMessages = messages.toArray(tableauDeMessages);
445
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null);
444
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null);
446
			valide = false;
445
			valide = false;
447
		}
446
		}
448
		return valide;		
447
		return valide;		
449
	}
448
	}
450
	
449
	
451
	private void peuplerFormulaire() {
450
	private void peuplerFormulaire() {
452
		nomChp.setValue(projet.getNom());
451
		nomChp.setValue(projet.getNom());
453
		abreviationChp.setValue(projet.getAbreviation());
452
		abreviationChp.setValue(projet.getAbreviation());
454
		descriptionChp.setValue(projet.getDescription());
453
		descriptionChp.setValue(projet.getDescription());
455
		resumeChp.setValue(projet.getResume());
454
		resumeChp.setValue(projet.getResume());
456
		urlChp.setValue(projet.getUrl());
455
		urlChp.setValue(projet.getUrl());
457
		
456
		
458
		motsClesChp.setValue(projet.getMotsCles());
457
		motsClesChp.setValue(projet.getMotsCles());
459
		citationChp.setValue(projet.getCitation());
458
		citationChp.setValue(projet.getCitation());
460
		licenceChp.setValue(projet.getLicence());
459
		licenceChp.setValue(projet.getLicence());
461
				
460
				
462
		if (projet.getMarkPublic().equals("1")) {
461
		if (projet.getMarkPublic().equals("1")) {
463
			markPublicChp.setValue(true);
462
			markPublicChp.setValue(true);
464
		} else {
463
		} else {
465
			markPublicChp.setValue(false);
464
			markPublicChp.setValue(false);
466
		}
465
		}
467
		
466
		
468
		if (listeLangueChargee) {
467
		if (listeLangueChargee) {
469
			if(valeurListeLangue.get(projet.getLangue()) != null) {
468
			if(valeurListeLangue.get(projet.getLangue()) != null) {
470
				langueChp.setValue(valeurListeLangue.get(projet.getLangue()));
469
				langueChp.setValue(valeurListeLangue.get(projet.getLangue()));
471
				langueChp.validate();
470
				langueChp.validate();
472
			}
471
			}
473
		}
472
		}
474
		
473
		
475
		if (listeIndexationFrequenceChargee) {
474
		if (listeIndexationFrequenceChargee) {
476
			if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) {
475
			if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) {
477
				indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq()));
476
				indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq()));
478
				indexationFrequenceChp.validate();
477
				indexationFrequenceChp.validate();
479
			}
478
			}
480
		}
479
		}
481
		
480
		
482
		if (listeIndexationDureeChargee) {
481
		if (listeIndexationDureeChargee) {
483
			if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) {
482
			if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) {
484
				indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree()));
483
				indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree()));
485
				indexationDureeChp.validate();
484
				indexationDureeChp.validate();
486
			}
485
			}
487
		}
486
		}
488
		
487
		
489
		String[] heureTab = projet.getIndexationHeure().split(":");
488
		String[] heureTab = projet.getIndexationHeure().split(":");
490
		if (heureTab.length > 1) {
489
		if (heureTab.length > 1) {
491
			String heure = heureTab[0]+":"+heureTab[1];
490
			String heure = heureTab[0]+":"+heureTab[1];
492
			if (heure.matches(Pattern.heureMinute)) {
491
			if (heure.matches(Pattern.heureMinute)) {
493
				indexationHeureChp.setValue(heure);
492
				indexationHeureChp.setValue(heure);
494
			}
493
			}
495
		}
494
		}
496
		
495
		
497
		doLayout(true);
496
		doLayout(true);
498
	}
497
	}
499
	
498
	
500
	private Projet collecterProjet() {
499
	private Projet collecterProjet() {
501
		Projet projetCollecte = (Projet) projet.cloner(new Projet());
500
		Projet projetCollecte = (Projet) projet.cloner(new Projet());
502
		
501
		
503
		projetCollecte.setNom(nomChp.getValue());
502
		projetCollecte.setNom(nomChp.getValue());
504
		projetCollecte.setAbreviation(abreviationChp.getValue());
503
		projetCollecte.setAbreviation(abreviationChp.getValue());
505
		projetCollecte.setDescription(descriptionChp.getValue());
504
		projetCollecte.setDescription(descriptionChp.getValue());
506
		projetCollecte.setResume(resumeChp.getValue());
505
		projetCollecte.setResume(resumeChp.getValue());
507
		projetCollecte.setUrl(urlChp.getValue());
506
		projetCollecte.setUrl(urlChp.getValue());
508
		
507
		
509
		projetCollecte.setMotsCles(motsClesChp.getValue());
508
		projetCollecte.setMotsCles(motsClesChp.getValue());
510
		projetCollecte.setCitation(citationChp.getValue());
509
		projetCollecte.setCitation(citationChp.getValue());
511
		projetCollecte.setLicence(licenceChp.getValue());
510
		projetCollecte.setLicence(licenceChp.getValue());
512
		if (langueChp.getValue() != null) {
511
		if (langueChp.getValue() != null) {
513
			projetCollecte.setLangue(langueChp.getValue().getId());
512
			projetCollecte.setLangue(langueChp.getValue().getId());
514
		}
513
		}
515
		String markPublic = (markPublicChp.getValue()) ? "1" : "0";
514
		String markPublic = (markPublicChp.getValue()) ? "1" : "0";
516
		projetCollecte.setMarkPublic(markPublic);
515
		projetCollecte.setMarkPublic(markPublic);
517
		
516
		
518
		projetCollecte.setIndexationHeure(indexationHeureChp.getValue());
517
		projetCollecte.setIndexationHeure(indexationHeureChp.getValue());
519
		if (indexationFrequenceChp.getValue() != null) {
518
		if (indexationFrequenceChp.getValue() != null) {
520
			projetCollecte.setIndexationFreq(indexationFrequenceChp.getValue().getId());
519
			projetCollecte.setIndexationFreq(indexationFrequenceChp.getValue().getId());
521
		}
520
		}
522
		if (indexationDureeChp.getValue() != null) {
521
		if (indexationDureeChp.getValue() != null) {
523
			projetCollecte.setIndexationDuree(indexationDureeChp.getValue().getId());
522
			projetCollecte.setIndexationDuree(indexationDureeChp.getValue().getId());
524
		}
523
		}
525
 
524
 
526
		Projet projetARetourner = null;
525
		Projet projetARetourner = null;
527
		if (!projetCollecte.comparer(projet)) {
526
		if (!projetCollecte.comparer(projet)) {
528
			projetARetourner = projet = projetCollecte;
527
			projetARetourner = projet = projetCollecte;
529
			Debug.log(projetARetourner.toString());
528
			Debug.log(projetARetourner.toString());
530
		}
529
		}
531
		return projetARetourner;
530
		return projetARetourner;
532
	}
531
	}
533
	
532
	
534
	public void reinitialiserFormulaire() {
533
	public void reinitialiserFormulaire() {
535
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
534
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
536
			mediateur.afficherFormProjet(projet.getId());
535
			mediateur.afficherFormProjet(projet.getId());
537
		} else {
536
		} else {
538
			mediateur.afficherFormProjet(null);
537
			mediateur.afficherFormProjet(null);
539
		}
538
		}
540
	}
539
	}
541
 
540
 
542
}
541
}