Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1322 Rev 1329
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
 
4
 
5
import org.tela_botanica.client.ComposantClass;
5
import org.tela_botanica.client.ComposantClass;
6
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
7
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
-
 
8
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable;
8
import org.tela_botanica.client.composants.InfoLogger;
9
import org.tela_botanica.client.composants.InfoLogger;
-
 
10
import org.tela_botanica.client.composants.pagination.ProxyValeur;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.modeles.Information;
11
import org.tela_botanica.client.modeles.MenuApplicationId;
13
import org.tela_botanica.client.modeles.MenuApplicationId;
-
 
14
import org.tela_botanica.client.modeles.Valeur;
12
import org.tela_botanica.client.modeles.projet.Projet;
15
import org.tela_botanica.client.modeles.projet.Projet;
13
import org.tela_botanica.client.util.Debug;
16
import org.tela_botanica.client.util.Debug;
14
import org.tela_botanica.client.util.Pattern;
17
import org.tela_botanica.client.util.Pattern;
15
import org.tela_botanica.client.util.UtilArray;
18
import org.tela_botanica.client.util.UtilArray;
16
import org.tela_botanica.client.util.UtilString;
19
import org.tela_botanica.client.util.UtilString;
17
import org.tela_botanica.client.vues.Formulaire;
20
import org.tela_botanica.client.vues.Formulaire;
18
 
21
 
19
import com.extjs.gxt.ui.client.Style.Scroll;
22
import com.extjs.gxt.ui.client.Style.Scroll;
-
 
23
import com.extjs.gxt.ui.client.data.ModelData;
-
 
24
import com.extjs.gxt.ui.client.data.ModelType;
20
import com.extjs.gxt.ui.client.event.BaseEvent;
25
import com.extjs.gxt.ui.client.event.BaseEvent;
21
import com.extjs.gxt.ui.client.event.Events;
26
import com.extjs.gxt.ui.client.event.Events;
22
import com.extjs.gxt.ui.client.event.Listener;
27
import com.extjs.gxt.ui.client.event.Listener;
23
import com.extjs.gxt.ui.client.widget.Info;
28
import com.extjs.gxt.ui.client.widget.Info;
24
import com.extjs.gxt.ui.client.widget.MessageBox;
29
import com.extjs.gxt.ui.client.widget.MessageBox;
25
import com.extjs.gxt.ui.client.widget.form.CheckBox;
30
import com.extjs.gxt.ui.client.widget.form.CheckBox;
26
import com.extjs.gxt.ui.client.widget.form.FieldSet;
31
import com.extjs.gxt.ui.client.widget.form.FieldSet;
27
import com.extjs.gxt.ui.client.widget.form.TextArea;
32
import com.extjs.gxt.ui.client.widget.form.TextArea;
28
import com.extjs.gxt.ui.client.widget.form.TextField;
33
import com.extjs.gxt.ui.client.widget.form.TextField;
29
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
34
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
30
import com.extjs.gxt.ui.client.widget.layout.FormData;
35
import com.extjs.gxt.ui.client.widget.layout.FormData;
31
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
36
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
32
 
37
 
33
public class ProjetForm extends Formulaire implements Rafraichissable {
38
public class ProjetForm extends Formulaire implements Rafraichissable {
34
	
39
	
35
	private Projet projet;
40
	private Projet projet;
36
	
41
	
37
	private String listeValeurIndexationDureeId = "dureesIndexation";
42
	private String listeValeurIndexationDureeId = "dureesIndexation";
38
	private String listeValeurIndexationFrequenceId = "frequencesIndexation";
43
	private String listeValeurIndexationFrequenceId = "frequencesIndexation";
39
	private String listeLanguesId = "langues";
44
	private String listeLanguesId = "langues";
40
	
45
	
41
	private FieldSet generalitesFieldset = null;
46
	private FieldSet generalitesFieldset = null;
42
	private TextField<String> nomChp = null;
47
	private TextField<String> nomChp = null;
43
	private TextField<String> abreviationChp = null;
48
	private TextField<String> abreviationChp = null;
44
	private TextArea descriptionChp = null;
49
	private TextArea descriptionChp = null;
45
	private TextArea resumeChp = null;
50
	private TextArea resumeChp = null;
46
	private TextField<String> urlChp = null;
51
	private TextField<String> urlChp = null;
47
			
52
			
48
	private FieldSet complementFieldset = null;
53
	private FieldSet complementFieldset = null;
49
	private TextField<String> motsClesChp = null;
54
	private TextField<String> motsClesChp = null;
50
	private TextField<String> citationChp = null;
55
	private TextField<String> citationChp = null;
51
	private TextField<String> licenceChp = null;
56
	private TextField<String> licenceChp = null;
52
	private ChampComboBoxListeValeurs langueChp = null;
57
	private ChampComboBoxRechercheTempsReelPaginable langueChp = null;
53
	private CheckBox markPublicChp = null;
58
	private CheckBox markPublicChp = null;
54
	
59
	
55
	private FieldSet indexationFieldset = null;
60
	private FieldSet indexationFieldset = null;
56
	private TextField<String> indexationHeureChp = null;
61
	private TextField<String> indexationHeureChp = null;
57
	private ChampComboBoxListeValeurs indexationDureeChp = null;
62
	private ChampComboBoxListeValeurs indexationDureeChp = null;
58
	private ChampComboBoxListeValeurs indexationFrequenceChp = null;
63
	private ChampComboBoxListeValeurs indexationFrequenceChp = null;
59
 
64
 
60
	private boolean formulaireValideOk = false;
65
	private boolean formulaireValideOk = false;
61
	private boolean projetValideOk = false;
66
	private boolean projetValideOk = false;
62
 
67
 
63
	private Rafraichissable vueExterneARafraichirApresValidation = null;
68
	private Rafraichissable vueExterneARafraichirApresValidation = null;
64
 
69
 
65
 
70
 
66
	public ProjetForm(Mediateur mediateurCourrant, String projetId) {
71
	public ProjetForm(Mediateur mediateurCourrant, String projetId) {
67
		initialiserProjetForm(mediateurCourrant, projetId);
72
		initialiserProjetForm(mediateurCourrant, projetId);
68
	}
73
	}
69
 
74
 
70
	public ProjetForm(Mediateur mediateurCourrant, String projetId, Rafraichissable vueARafraichirApresValidation) {
75
	public ProjetForm(Mediateur mediateurCourrant, String projetId, Rafraichissable vueARafraichirApresValidation) {
71
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
76
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
72
		initialiserProjetForm(mediateurCourrant, projetId);
77
		initialiserProjetForm(mediateurCourrant, projetId);
73
	}
78
	}
74
	
79
	
75
	private void initialiserProjetForm(Mediateur mediateurCourant, String projetId) {
80
	private void initialiserProjetForm(Mediateur mediateurCourant, String projetId) {
76
		projet = new Projet();
81
		projet = new Projet();
77
		projet.setId(projetId);
82
		projet.setId(projetId);
78
		
83
		
79
		String modeDeCreation = (projet.getId().isEmpty() ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
84
		String modeDeCreation = (projet.getId().isEmpty() ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
80
		initialiserFormulaire(mediateurCourant, modeDeCreation, MenuApplicationId.PROJET);
85
		initialiserFormulaire(mediateurCourant, modeDeCreation, MenuApplicationId.PROJET);
81
		
86
		
82
		panneauFormulaire.setLayout(new FlowLayout());
87
		panneauFormulaire.setLayout(new FlowLayout());
83
		panneauFormulaire.setScrollMode(Scroll.AUTO);
88
		panneauFormulaire.setScrollMode(Scroll.AUTO);
84
		genererTitreFormulaire();
89
		genererTitreFormulaire();
85
		
90
		
86
		creerZoneGeneralites();
91
		creerZoneGeneralites();
87
		panneauFormulaire.add(generalitesFieldset);
92
		panneauFormulaire.add(generalitesFieldset);
88
		
93
		
89
		creerZoneComplement();
94
		creerZoneComplement();
90
		panneauFormulaire.add(complementFieldset);
95
		panneauFormulaire.add(complementFieldset);
91
		
96
		
92
		creerZoneIndexation();
97
		creerZoneIndexation();
93
		panneauFormulaire.add(indexationFieldset);
98
		panneauFormulaire.add(indexationFieldset);
94
		
99
		
95
		creerTabIndex();
100
		creerTabIndex();
96
		
101
		
97
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
102
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
98
			mediateur.selectionnerProjet(this, projetId, null);
103
			mediateur.selectionnerProjet(this, projetId, null);
99
		}			
104
		}			
100
	}
105
	}
101
	
106
	
102
	private void genererTitreFormulaire() {
107
	private void genererTitreFormulaire() {
103
		String titre = i18nC.projetTitreFormAjout();
108
		String titre = i18nC.projetTitreFormAjout();
104
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
109
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
105
			 titre = i18nC.projetTitreFormModif();
110
			 titre = i18nC.projetTitreFormModif();
106
			 if (projet != null) {
111
			 if (projet != null) {
107
				 titre += " - "+i18nC.id()+": "+projet.getId();
112
				 titre += " - "+i18nC.id()+": "+projet.getId();
108
			 }
113
			 }
109
		}
114
		}
110
		panneauFormulaire.setHeading(titre);
115
		panneauFormulaire.setHeading(titre);
111
	}
116
	}
112
			
117
			
113
	private void creerZoneGeneralites() {
118
	private void creerZoneGeneralites() {
114
		FormLayout layout = new FormLayout();
119
		FormLayout layout = new FormLayout();
115
		layout.setLabelWidth(100);
120
		layout.setLabelWidth(100);
116
		
121
		
117
		// Fieldset Infos Générales
122
		// Fieldset Infos Générales
118
		generalitesFieldset = new FieldSet();
123
		generalitesFieldset = new FieldSet();
119
		generalitesFieldset.setHeading(i18nC.projetTitreInfoGenerale());
124
		generalitesFieldset.setHeading(i18nC.projetTitreInfoGenerale());
120
		generalitesFieldset.setCollapsible(true);
125
		generalitesFieldset.setCollapsible(true);
121
		generalitesFieldset.setLayout(layout);
126
		generalitesFieldset.setLayout(layout);
122
		
127
		
123
		nomChp = new TextField<String>();
128
		nomChp = new TextField<String>();
124
		nomChp.setName("cpu");
129
		nomChp.setName("cpu");
125
		nomChp.setFieldLabel(i18nC.projetNom());
130
		nomChp.setFieldLabel(i18nC.projetNom());
126
		nomChp.addStyleName(ComposantClass.OBLIGATOIRE);
131
		nomChp.addStyleName(ComposantClass.OBLIGATOIRE);
127
		nomChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
132
		nomChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
128
		generalitesFieldset.add(nomChp, new FormData(450, 0));
133
		generalitesFieldset.add(nomChp, new FormData(450, 0));
129
		
134
		
130
		abreviationChp = new TextField<String>();
135
		abreviationChp = new TextField<String>();
131
		abreviationChp.setFieldLabel(i18nC.projetAbreviation());
136
		abreviationChp.setFieldLabel(i18nC.projetAbreviation());
132
		abreviationChp.addStyleName(ComposantClass.OBLIGATOIRE);
137
		abreviationChp.addStyleName(ComposantClass.OBLIGATOIRE);
133
		abreviationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
138
		abreviationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
134
		generalitesFieldset.add(abreviationChp, new FormData(450, 0));
139
		generalitesFieldset.add(abreviationChp, new FormData(450, 0));
135
		
140
		
136
		descriptionChp = new TextArea();
141
		descriptionChp = new TextArea();
137
		descriptionChp.setFieldLabel(i18nC.projetDescription());
142
		descriptionChp.setFieldLabel(i18nC.projetDescription());
138
		descriptionChp.addStyleName(ComposantClass.OBLIGATOIRE);
143
		descriptionChp.addStyleName(ComposantClass.OBLIGATOIRE);
139
		descriptionChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
144
		descriptionChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
140
		generalitesFieldset.add(descriptionChp, new FormData(450, 0));
145
		generalitesFieldset.add(descriptionChp, new FormData(450, 0));
141
		
146
		
142
		resumeChp = new TextArea();
147
		resumeChp = new TextArea();
143
		resumeChp.setFieldLabel(i18nC.projetResume());
148
		resumeChp.setFieldLabel(i18nC.projetResume());
144
		resumeChp.addStyleName(ComposantClass.OBLIGATOIRE);
149
		resumeChp.addStyleName(ComposantClass.OBLIGATOIRE);
145
		resumeChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
150
		resumeChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
146
		generalitesFieldset.add(resumeChp, new FormData(450, 0));
151
		generalitesFieldset.add(resumeChp, new FormData(450, 0));
147
		
152
		
148
		urlChp = new TextField<String>();
153
		urlChp = new TextField<String>();
149
		urlChp.setFieldLabel(i18nC.projetUrl());
154
		urlChp.setFieldLabel(i18nC.projetUrl());
150
		generalitesFieldset.add(urlChp, new FormData(450, 0));
155
		generalitesFieldset.add(urlChp, new FormData(450, 0));
151
	}
156
	}
152
	
157
	
153
	private void creerZoneComplement() {
158
	private void creerZoneComplement() {
154
		FormLayout layout = new FormLayout();
159
		FormLayout layout = new FormLayout();
155
		layout.setLabelWidth(100);
160
		layout.setLabelWidth(100);
156
		
161
		
157
		// Fieldset Complément
162
		// Fieldset Complément
158
		complementFieldset = new FieldSet();
163
		complementFieldset = new FieldSet();
159
		complementFieldset.setHeading(i18nC.projetTitreComplement());
164
		complementFieldset.setHeading(i18nC.projetTitreComplement());
160
		complementFieldset.setCollapsible(true);
165
		complementFieldset.setCollapsible(true);
161
		complementFieldset.setLayout(layout);
166
		complementFieldset.setLayout(layout);
162
		
167
		
163
		motsClesChp = new TextField<String>();
168
		motsClesChp = new TextField<String>();
164
		motsClesChp.setFieldLabel(i18nC.projetMotsCles());
169
		motsClesChp.setFieldLabel(i18nC.projetMotsCles());
165
		complementFieldset.add(motsClesChp, new FormData(450, 0));
170
		complementFieldset.add(motsClesChp, new FormData(450, 0));
166
		
171
		
167
		citationChp = new TextField<String>();
172
		citationChp = new TextField<String>();
168
		citationChp.setFieldLabel(i18nC.projetCitation());
173
		citationChp.setFieldLabel(i18nC.projetCitation());
169
		complementFieldset.add(citationChp, new FormData(450, 0));
174
		complementFieldset.add(citationChp, new FormData(450, 0));
170
		
175
		
171
		licenceChp = new TextField<String>();
176
		licenceChp = new TextField<String>();
172
		licenceChp.setFieldLabel(i18nC.projetLicence());
177
		licenceChp.setFieldLabel(i18nC.projetLicence());
173
		complementFieldset.add(licenceChp, new FormData(450, 0));
178
		complementFieldset.add(licenceChp, new FormData(450, 0));
-
 
179
		
-
 
180
		ModelType modelTypesLangues = new ModelType();
-
 
181
		modelTypesLangues.setRoot("valeurs");
-
 
182
		modelTypesLangues.setTotalName("nbElements");
-
 
183
		modelTypesLangues.addField("cmlv_nom");
-
 
184
		modelTypesLangues.addField("cmlv_id_valeur");
-
 
185
		modelTypesLangues.addField("cmlv_abreviation");
-
 
186
		modelTypesLangues.addField("cmlv_description");
-
 
187
		
-
 
188
		String displayNameLangues = "cmlv_nom";
-
 
189
		String nomListeTypes = "langues";
-
 
190
		ProxyValeur<ModelData> proxyLangues = new ProxyValeur<ModelData>(nomListeTypes);
174
		
191
		
-
 
192
		langueChp = new ChampComboBoxRechercheTempsReelPaginable(proxyLangues, modelTypesLangues, displayNameLangues);
-
 
193
		langueChp.setWidth(100,300);
-
 
194
		langueChp.getCombo().setTabIndex(tabIndex++);
-
 
195
		langueChp.getCombo().setFieldLabel(i18nC.projetLangue());
-
 
196
		langueChp.getCombo().setForceSelection(true);		
175
		langueChp = new ChampComboBoxListeValeurs(i18nC.projetLangue(), listeLanguesId);
197
		
176
		complementFieldset.add(langueChp, new FormData(200, 0));
198
		complementFieldset.add(langueChp, new FormData(300, 0));
177
		
199
		
178
		markPublicChp = new CheckBox();
200
		markPublicChp = new CheckBox();
179
		markPublicChp.setFieldLabel(i18nC.projetMarkPublic());
201
		markPublicChp.setFieldLabel(i18nC.projetMarkPublic());
180
		markPublicChp.addListener(Events.Change, new Listener<BaseEvent>() {
202
		markPublicChp.addListener(Events.Change, new Listener<BaseEvent>() {
181
			public void handleEvent(BaseEvent be) {
203
			public void handleEvent(BaseEvent be) {
182
				if (markPublicChp.getValue()) {
204
				if (markPublicChp.getValue()) {
183
					indexationFieldset.show();
205
					indexationFieldset.show();
184
				} else {
206
				} else {
185
					indexationFieldset.hide();
207
					indexationFieldset.hide();
186
				}
208
				}
187
			}
209
			}
188
		});
210
		});
189
		complementFieldset.add(markPublicChp);
211
		complementFieldset.add(markPublicChp);
190
	}
212
	}
191
	
213
	
192
	private void creerZoneIndexation() {
214
	private void creerZoneIndexation() {
193
		FormLayout layout = new FormLayout();
215
		FormLayout layout = new FormLayout();
194
		layout.setLabelWidth(100);
216
		layout.setLabelWidth(100);
195
		
217
		
196
		// Fieldset Indexation
218
		// Fieldset Indexation
197
		indexationFieldset = new FieldSet();
219
		indexationFieldset = new FieldSet();
198
		indexationFieldset.setHeading(i18nC.projetTitreIndexation());
220
		indexationFieldset.setHeading(i18nC.projetTitreIndexation());
199
		indexationFieldset.setCollapsible(true);
221
		indexationFieldset.setCollapsible(true);
200
		indexationFieldset.setLayout(layout);
222
		indexationFieldset.setLayout(layout);
201
		indexationFieldset.hide();
223
		indexationFieldset.hide();
202
		indexationFieldset.addListener(Events.Hide, new Listener<BaseEvent>() {
224
		indexationFieldset.addListener(Events.Hide, new Listener<BaseEvent>() {
203
			public void handleEvent(BaseEvent be) {
225
			public void handleEvent(BaseEvent be) {
204
				indexationHeureChp.clear();
226
				indexationHeureChp.clear();
205
				indexationFrequenceChp.clear();
227
				indexationFrequenceChp.clear();
206
				indexationDureeChp.clear();
228
				indexationDureeChp.clear();
207
			}
229
			}
208
		});
230
		});
209
		
231
		
210
		indexationHeureChp = new TextField<String>();
232
		indexationHeureChp = new TextField<String>();
211
		indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure());
233
		indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure());
212
		indexationHeureChp.setToolTip(i18nC.projetMessageHeureMinute());
234
		indexationHeureChp.setToolTip(i18nC.projetMessageHeureMinute());
213
		indexationFieldset.add(indexationHeureChp, new FormData(80, 0));
235
		indexationFieldset.add(indexationHeureChp, new FormData(80, 0));
214
		
236
		
215
		indexationFrequenceChp = new ChampComboBoxListeValeurs(i18nC.projetIndexationFrequence(), listeValeurIndexationFrequenceId);
237
		indexationFrequenceChp = new ChampComboBoxListeValeurs(i18nC.projetIndexationFrequence(), listeValeurIndexationFrequenceId);
216
		indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0));
238
		indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0));
217
		
239
		
218
		indexationDureeChp = new ChampComboBoxListeValeurs(i18nC.projetIndexationDuree(), listeValeurIndexationDureeId);
240
		indexationDureeChp = new ChampComboBoxListeValeurs(i18nC.projetIndexationDuree(), listeValeurIndexationDureeId);
219
		indexationFieldset.add(indexationDureeChp, new FormData(80, 0));
241
		indexationFieldset.add(indexationDureeChp, new FormData(80, 0));
220
				
242
				
221
	}
243
	}
222
	
244
	
223
	private void creerTabIndex() {
245
	private void creerTabIndex() {
224
		nomChp.setTabIndex(1);
246
		nomChp.setTabIndex(1);
225
		abreviationChp.setTabIndex(2);
247
		abreviationChp.setTabIndex(2);
226
		descriptionChp.setTabIndex(3);
248
		descriptionChp.setTabIndex(3);
227
		resumeChp.setTabIndex(4);
249
		resumeChp.setTabIndex(4);
228
		urlChp.setTabIndex(5);
250
		urlChp.setTabIndex(5);
229
				
251
				
230
		motsClesChp.setTabIndex(6);
252
		motsClesChp.setTabIndex(6);
231
		citationChp.setTabIndex(7);
253
		citationChp.setTabIndex(7);
232
		licenceChp.setTabIndex(8);
254
		licenceChp.setTabIndex(8);
233
		langueChp.setTabIndex(9);
255
		langueChp.setTabIndex(9);
234
		markPublicChp.setTabIndex(10);
256
		markPublicChp.setTabIndex(10);
235
		
257
		
236
		indexationHeureChp.setTabIndex(11);
258
		indexationHeureChp.setTabIndex(11);
237
		indexationFrequenceChp.setTabIndex(12);
259
		indexationFrequenceChp.setTabIndex(12);
238
		indexationDureeChp.setTabIndex(13);
260
		indexationDureeChp.setTabIndex(13);
239
		
261
		
240
		nomChp.focus();
262
		nomChp.focus();
241
	}
263
	}
242
 
264
 
243
	public void rafraichir(Object nouvellesDonnees) {
265
	public void rafraichir(Object nouvellesDonnees) {
244
		if (nouvellesDonnees instanceof Information) {
266
		if (nouvellesDonnees instanceof Information) {
245
			Information info = (Information) nouvellesDonnees;
267
			Information info = (Information) nouvellesDonnees;
246
			rafraichirInformation(info);
268
			rafraichirInformation(info);
247
		} else {
269
		} else {
248
			Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));
270
			Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));
249
		}
271
		}
250
		
272
		
251
		if (etreValide()) {
273
		if (etreValide()) {
252
			initialiserValidation();
274
			initialiserValidation();
253
			repandreRafraichissement();
275
			repandreRafraichissement();
254
			controlerFermeture();
276
			controlerFermeture();
255
		}
277
		}
256
	}
278
	}
257
 
279
 
258
	private void rafraichirInformation(Information info) {
280
	private void rafraichirInformation(Information info) {
259
		final String type = info.getType();
281
		final String type = info.getType();
260
		
282
		
261
		// Gestion des problèmes
283
		// Gestion des problèmes
262
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
284
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
263
			Debug.log("MESSAGES:\n"+info.getMessages().toString());
285
			Debug.log("MESSAGES:\n"+info.getMessages().toString());
264
		}
286
		}
265
		
287
		
266
		// Gestion des actions
288
		// Gestion des actions
267
		if (type.equals("selection_projet")) {
289
		if (type.equals("selection_projet")) {
268
			if (info.getDonnee(0) != null) {
290
			if (info.getDonnee(0) != null) {
269
				projet = (Projet) info.getDonnee(0);
291
				projet = (Projet) info.getDonnee(0);
270
			}
292
			}
271
			peuplerFormulaire();
293
			peuplerFormulaire();
272
			genererTitreFormulaire();
294
			genererTitreFormulaire();
273
		}
295
		}
274
		if (type.equals("ajout_projet") || type.equals("modif_projet")) {
296
		if (type.equals("ajout_projet") || type.equals("modif_projet")) {
275
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
297
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
276
				projetValideOk = true;
298
				projetValideOk = true;
277
				String projetId = (String) info.getDonnee(0);
299
				String projetId = (String) info.getDonnee(0);
278
				if (vueExterneARafraichirApresValidation != null) {
300
				if (vueExterneARafraichirApresValidation != null) {
279
					projet.setId(projetId);
301
					projet.setId(projetId);
280
				}
302
				}
281
			}
303
			}
282
		}
304
		}
283
		
305
		
284
		// Gestion des messages
306
		// Gestion des messages
285
		if (type.equals("selection_projet")) {
307
		if (type.equals("selection_projet")) {
286
			InfoLogger.display(i18nC.projetTitreFormModif(), info.toString());
308
			InfoLogger.display(i18nC.projetTitreFormModif(), info.toString());
287
		} else if (type.equals("modif_projet")) {
309
		} else if (type.equals("modif_projet")) {
288
			InfoLogger.display(i18nC.projetTitreFormModif(), info.toString());
310
			InfoLogger.display(i18nC.projetTitreFormModif(), info.toString());
289
		} else if (type.equals("ajout_projet")) {
311
		} else if (type.equals("ajout_projet")) {
290
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
312
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
291
				String projetId = (String) info.getDonnee(0);
313
				String projetId = (String) info.getDonnee(0);
292
				InfoLogger.display(i18nC.projetTitreFormAjout(), "Le projet '"+projetId+"' a bien été ajouté");
314
				InfoLogger.display(i18nC.projetTitreFormAjout(), "Le projet '"+projetId+"' a bien été ajouté");
293
			} else {
315
			} else {
294
				InfoLogger.display(i18nC.projetTitreFormAjout(), info.toString(), true);
316
				InfoLogger.display(i18nC.projetTitreFormAjout(), info.toString(), true);
295
			}
317
			}
296
		}
318
		}
297
	}
319
	}
298
		
320
		
299
	private Boolean etreValide() {
321
	private Boolean etreValide() {
300
		Boolean valide = false;
322
		Boolean valide = false;
301
		if (formulaireValideOk && projetValideOk) {
323
		if (formulaireValideOk && projetValideOk) {
302
			valide = true;
324
			valide = true;
303
		}
325
		}
304
		return valide;
326
		return valide;
305
	}
327
	}
306
	
328
	
307
	private void initialiserValidation() {
329
	private void initialiserValidation() {
308
		formulaireValideOk = false;
330
		formulaireValideOk = false;
309
		projetValideOk = false;
331
		projetValideOk = false;
310
	}
332
	}
311
	
333
	
312
	private void repandreRafraichissement() {
334
	private void repandreRafraichissement() {
313
		if (vueExterneARafraichirApresValidation != null) {
335
		if (vueExterneARafraichirApresValidation != null) {
314
			String type = "projet_modifie";
336
			String type = "projet_modifie";
315
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
337
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
316
				type = "projet_ajoute";
338
				type = "projet_ajoute";
317
			}
339
			}
318
			Information info = new Information(type);
340
			Information info = new Information(type);
319
			info.setDonnee(0, projet);
341
			info.setDonnee(0, projet);
320
			vueExterneARafraichirApresValidation.rafraichir(info);
342
			vueExterneARafraichirApresValidation.rafraichir(info);
321
		}
343
		}
322
	}
344
	}
323
	
345
	
324
	public boolean soumettreFormulaire() {
346
	public boolean soumettreFormulaire() {
325
		formulaireValideOk = verifierFormulaire();
347
		formulaireValideOk = verifierFormulaire();
326
		if (formulaireValideOk) {
348
		if (formulaireValideOk) {
327
			Projet projetCollecte = collecterProjet();
349
			Projet projetCollecte = collecterProjet();
328
			if (projetCollecte != null) {
350
			if (projetCollecte != null) {
329
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
351
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
330
					mediateur.ajouterProjet(this, projetCollecte);
352
					mediateur.ajouterProjet(this, projetCollecte);
331
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
353
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
332
					mediateur.modifierProjet(this, projetCollecte);
354
					mediateur.modifierProjet(this, projetCollecte);
333
				}
355
				}
334
			}
356
			}
335
		}
357
		}
336
		return formulaireValideOk;
358
		return formulaireValideOk;
337
	}
359
	}
338
	
360
	
339
	public boolean verifierFormulaire() {
361
	public boolean verifierFormulaire() {
340
		boolean valide = true;
362
		boolean valide = true;
341
		ArrayList<String> messages = new ArrayList<String>();
363
		ArrayList<String> messages = new ArrayList<String>();
342
		
364
		
343
		String titre = nomChp.getValue();
365
		String titre = nomChp.getValue();
344
		if (titre == null || titre.equals("")) {
366
		if (titre == null || titre.equals("")) {
345
			messages.add(i18nC.projetMessageNom());
367
			messages.add(i18nC.projetMessageNom());
346
		}
368
		}
347
		
369
		
348
		String abr = abreviationChp.getValue();
370
		String abr = abreviationChp.getValue();
349
		if (abr == null || abr.equals(i18nC.projetMessageAbreviation())) {
371
		if (abr == null || abr.equals(i18nC.projetMessageAbreviation())) {
350
			messages.add(i18nC.projetMessageAbreviation());
372
			messages.add(i18nC.projetMessageAbreviation());
351
		}
373
		}
352
		
374
		
353
		String desc = descriptionChp.getValue();
375
		String desc = descriptionChp.getValue();
354
		if (desc == null || desc.equals(i18nC.projetMessageDescription())) {
376
		if (desc == null || desc.equals(i18nC.projetMessageDescription())) {
355
			messages.add(i18nC.projetDescription());
377
			messages.add(i18nC.projetDescription());
356
		}
378
		}
357
		
379
		
358
		String resume = resumeChp.getValue();
380
		String resume = resumeChp.getValue();
359
		if (resume == null || resume.equals(i18nC.projetMessageResume())) {
381
		if (resume == null || resume.equals(i18nC.projetMessageResume())) {
360
			messages.add(i18nC.projetMessageResume());
382
			messages.add(i18nC.projetMessageResume());
361
		}
383
		}
362
		
384
		
363
		String uri = urlChp.getValue();
385
		String uri = urlChp.getValue();
364
		if (uri != null && ! uri.trim().isEmpty() && ! uri.matches(Pattern.url)) {
386
		if (uri != null && ! uri.trim().isEmpty() && ! uri.matches(Pattern.url)) {
365
			messages.add(i18nC.messageUrlNonValide());
387
			messages.add(i18nC.messageUrlNonValide());
366
		}
388
		}
367
		
389
		
368
		if (markPublicChp.getValue()) {
390
		if (markPublicChp.getValue()) {
369
			String heure = indexationHeureChp.getValue();
391
			String heure = indexationHeureChp.getValue();
370
			if (!UtilString.isEmpty(heure) && !heure.matches(Pattern.heureMinute)) {
392
			if (!UtilString.isEmpty(heure) && !heure.matches(Pattern.heureMinute)) {
371
				messages.add(i18nC.projetMessageHeureMinute());
393
				messages.add(i18nC.projetMessageHeureMinute());
372
			}
394
			}
373
		}
395
		}
374
		
396
		
375
		if (messages.size() != 0) {
397
		if (messages.size() != 0) {
376
			String[] tableauDeMessages = {};
398
			String[] tableauDeMessages = {};
377
			tableauDeMessages = messages.toArray(tableauDeMessages);
399
			tableauDeMessages = messages.toArray(tableauDeMessages);
378
			MessageBox.alert(i18nC.erreurSaisieTitre(), UtilArray.implode(tableauDeMessages, "<br />"), null);
400
			MessageBox.alert(i18nC.erreurSaisieTitre(), UtilArray.implode(tableauDeMessages, "<br />"), null);
379
			valide = false;
401
			valide = false;
380
		}
402
		}
381
		return valide;		
403
		return valide;		
382
	}
404
	}
383
	
405
	
384
	private void peuplerFormulaire() {
406
	private void peuplerFormulaire() {
385
		nomChp.setValue(projet.getNom());
407
		nomChp.setValue(projet.getNom());
386
		abreviationChp.setValue(projet.getAbreviation());
408
		abreviationChp.setValue(projet.getAbreviation());
387
		descriptionChp.setValue(projet.getDescription());
409
		descriptionChp.setValue(projet.getDescription());
388
		resumeChp.setValue(projet.getResume());
410
		resumeChp.setValue(projet.getResume());
389
		urlChp.setValue(projet.getUrl());
411
		urlChp.setValue(projet.getUrl());
390
		
412
		
391
		motsClesChp.setValue(projet.getMotsCles());
413
		motsClesChp.setValue(projet.getMotsCles());
392
		citationChp.setValue(projet.getCitation());
414
		citationChp.setValue(projet.getCitation());
393
		licenceChp.setValue(projet.getLicence());
415
		licenceChp.setValue(projet.getLicence());
-
 
416
		if (projet.getLangue().matches("[0-9]+")) {
-
 
417
			langueChp.getCombo().setValue(langueChp.getStore().findModel("cmlv_id_valeur", projet.getLangue()));
-
 
418
		} else {
394
		langueChp.peupler(projet.getLangue());		
419
			langueChp.getCombo().setRawValue(projet.getLangue());
-
 
420
		}
395
		if (projet.getMarkPublic().equals("1")) {
421
		if (projet.getMarkPublic().equals("1")) {
396
			markPublicChp.setValue(true);
422
			markPublicChp.setValue(true);
397
			String[] heureTab = projet.getIndexationHeure().split(":");
423
			String[] heureTab = projet.getIndexationHeure().split(":");
398
			if (heureTab.length > 1) {
424
			if (heureTab.length > 1) {
399
				String heure = heureTab[0]+":"+heureTab[1];
425
				String heure = heureTab[0]+":"+heureTab[1];
400
				if (heure.matches(Pattern.heureMinute)) {
426
				if (heure.matches(Pattern.heureMinute)) {
401
					indexationHeureChp.setValue(heure);
427
					indexationHeureChp.setValue(heure);
402
				}
428
				}
403
			}
429
			}
404
			indexationFrequenceChp.peupler(projet.getIndexationFreq());
430
			indexationFrequenceChp.peupler(projet.getIndexationFreq());
405
			indexationDureeChp.peupler(projet.getIndexationDuree());
431
			indexationDureeChp.peupler(projet.getIndexationDuree());
406
		} else {
432
		} else {
407
			markPublicChp.setValue(false);
433
			markPublicChp.setValue(false);
408
		}
434
		}
409
		
435
		
410
		doLayout(true);
436
		doLayout(true);
411
	}
437
	}
412
	
438
	
413
	private Projet collecterProjet() {
439
	private Projet collecterProjet() {
414
		Projet projetCollecte = (Projet) projet.cloner(new Projet());
440
		Projet projetCollecte = (Projet) projet.cloner(new Projet());
415
		
441
		
416
		projetCollecte.setNom(nomChp.getValue());
442
		projetCollecte.setNom(nomChp.getValue());
417
		projetCollecte.setAbreviation(abreviationChp.getValue());
443
		projetCollecte.setAbreviation(abreviationChp.getValue());
418
		projetCollecte.setDescription(descriptionChp.getValue());
444
		projetCollecte.setDescription(descriptionChp.getValue());
419
		projetCollecte.setResume(resumeChp.getValue());
445
		projetCollecte.setResume(resumeChp.getValue());
420
		projetCollecte.setUrl(urlChp.getValue());
446
		projetCollecte.setUrl(urlChp.getValue());
421
		
447
		
422
		projetCollecte.setMotsCles(motsClesChp.getValue());
448
		projetCollecte.setMotsCles(motsClesChp.getValue());
423
		projetCollecte.setCitation(citationChp.getValue());
449
		projetCollecte.setCitation(citationChp.getValue());
424
		projetCollecte.setLicence(licenceChp.getValue());
450
		projetCollecte.setLicence(licenceChp.getValue());
-
 
451
		if (langueChp.getValeur() != null) {
-
 
452
			Debug.log("langueChp.getValeur()="+langueChp.getValeur());
-
 
453
			Valeur valeur = new Valeur(langueChp.getValeur());
425
		projetCollecte.setLangue(langueChp.getValeur());
454
			projetCollecte.setLangue(valeur.getId());
-
 
455
		} else {
-
 
456
			projetCollecte.setLangue("");
-
 
457
		}
426
		String markPublic = (markPublicChp.getValue()) ? "1" : "0";
458
		String markPublic = (markPublicChp.getValue()) ? "1" : "0";
427
		projetCollecte.setMarkPublic(markPublic);
459
		projetCollecte.setMarkPublic(markPublic);
428
		
460
		
429
		projetCollecte.setIndexationHeure(indexationHeureChp.getValue());
461
		projetCollecte.setIndexationHeure(indexationHeureChp.getValue());
430
		projetCollecte.setIndexationFreq(indexationFrequenceChp.getValeur());
462
		projetCollecte.setIndexationFreq(indexationFrequenceChp.getValeur());
431
		projetCollecte.setIndexationDuree(indexationDureeChp.getValeur());
463
		projetCollecte.setIndexationDuree(indexationDureeChp.getValeur());
432
 
464
 
433
		Projet projetARetourner = null;
465
		Projet projetARetourner = null;
434
		if (!projetCollecte.comparer(projet)) {
466
		if (!projetCollecte.comparer(projet)) {
435
			projetARetourner = projet = projetCollecte;
467
			projetARetourner = projet = projetCollecte;
436
			Debug.log(projetARetourner.toString());
468
			Debug.log(projetARetourner.toString());
437
		}
469
		}
438
		return projetARetourner;
470
		return projetARetourner;
439
	}
471
	}
440
	
472
	
441
	public void reinitialiserFormulaire() {
473
	public void reinitialiserFormulaire() {
442
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
474
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
443
			mediateur.afficherFormProjet(projet.getId());
475
			mediateur.afficherFormProjet(projet.getId());
444
		} else {
476
		} else {
445
			mediateur.afficherFormProjet(null);
477
			mediateur.afficherFormProjet(null);
446
		}
478
		}
447
	}
479
	}
448
 
480
 
449
}
481
}