Subversion Repositories eFlore/Applications.coel

Rev

Rev 758 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 758 Rev 775
Line 7... Line 7...
7
 
7
 
8
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.Mediateur;
9
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.RegistreId;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
11
import org.tela_botanica.client.modeles.Information;
11
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.modeles.MenuApplicationId;
12
import org.tela_botanica.client.modeles.Personne;
13
import org.tela_botanica.client.modeles.Personne;
13
import org.tela_botanica.client.modeles.PersonneListe;
14
import org.tela_botanica.client.modeles.PersonneListe;
14
import org.tela_botanica.client.modeles.Publication;
15
import org.tela_botanica.client.modeles.Publication;
15
import org.tela_botanica.client.modeles.PublicationAPersonne;
16
import org.tela_botanica.client.modeles.PublicationAPersonne;
Line 20... Line 21...
20
 
21
 
21
import com.extjs.gxt.ui.client.Registry;
22
import com.extjs.gxt.ui.client.Registry;
22
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
23
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
23
import com.extjs.gxt.ui.client.event.BaseEvent;
24
import com.extjs.gxt.ui.client.event.BaseEvent;
-
 
25
import com.extjs.gxt.ui.client.event.ButtonEvent;
24
import com.extjs.gxt.ui.client.event.ButtonEvent;
26
import com.extjs.gxt.ui.client.event.ComponentEvent;
-
 
27
import com.extjs.gxt.ui.client.event.Events;
25
import com.extjs.gxt.ui.client.event.Events;
28
import com.extjs.gxt.ui.client.event.KeyListener;
26
import com.extjs.gxt.ui.client.event.Listener;
29
import com.extjs.gxt.ui.client.event.Listener;
27
import com.extjs.gxt.ui.client.event.SelectionListener;
30
import com.extjs.gxt.ui.client.event.SelectionListener;
28
import com.extjs.gxt.ui.client.store.ListStore;
31
import com.extjs.gxt.ui.client.store.ListStore;
29
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
32
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
Line 32... Line 35...
32
import com.extjs.gxt.ui.client.widget.button.Button;
35
import com.extjs.gxt.ui.client.widget.button.Button;
33
import com.extjs.gxt.ui.client.widget.form.ComboBox;
36
import com.extjs.gxt.ui.client.widget.form.ComboBox;
34
import com.extjs.gxt.ui.client.widget.form.DateField;
37
import com.extjs.gxt.ui.client.widget.form.DateField;
35
import com.extjs.gxt.ui.client.widget.form.FieldSet;
38
import com.extjs.gxt.ui.client.widget.form.FieldSet;
36
import com.extjs.gxt.ui.client.widget.form.FormPanel;
39
import com.extjs.gxt.ui.client.widget.form.FormPanel;
-
 
40
import com.extjs.gxt.ui.client.widget.form.Radio;
37
import com.extjs.gxt.ui.client.widget.form.TextField;
41
import com.extjs.gxt.ui.client.widget.form.TextField;
38
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
42
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
39
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
43
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
40
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
44
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
41
import com.extjs.gxt.ui.client.widget.layout.FormData;
45
import com.extjs.gxt.ui.client.widget.layout.FormData;
Line 43... Line 47...
43
import com.google.gwt.core.client.GWT;
47
import com.google.gwt.core.client.GWT;
44
import com.google.gwt.user.client.Window;
48
import com.google.gwt.user.client.Window;
45
import com.google.gwt.user.client.ui.HTML;
49
import com.google.gwt.user.client.ui.HTML;
46
import com.google.gwt.user.client.ui.Label;
50
import com.google.gwt.user.client.ui.Label;
Line 47... Line 51...
47
 
51
 
48
public class PublicationForm extends LayoutContainer implements Rafraichissable {
-
 
49
 
-
 
Line 50... Line 52...
50
	private Mediateur mediateur = null;
52
public class PublicationForm extends Formulaire implements Rafraichissable {
-
 
53
	
Line 51... Line -...
51
	
-
 
52
	FormPanel panel = null;
-
 
53
	
-
 
Line 54... Line 54...
54
	private String idStructureEdition = ""; 
54
	private Publication publi;
55
	private String idPublication = "";
55
	private PublicationAPersonneListe pubAPersonneListeAuteur = null;
56
	private String idProjet = "";
56
	
57
	
57
	
58
	private PersonneListe listePersonneAuteur = null; 
58
	private FieldSet auteursFieldset = null;
Line -... Line 59...
-
 
59
	private ArrayList<ComboBox<Personne>> auteurComboboxListe = null;
59
	private PublicationAPersonneListe pubAPersonneListeAuteur = null;
60
	private PersonneListe listePersonneAuteur = null;
60
	private ListStore<Personne> storeAuteurs = null;
61
	private LayoutContainer conteneurChamps;
61
	private ArrayList<ComboBox<Personne>> listeAuteurs = null;
62
	private ListStore<Personne> auteursStorePartage = null;
Line -... Line 63...
-
 
63
	
62
	private String idAuteurs = "";
64
	private FieldSet generalitesFieldset = null;
63
	
65
	private TextField<String> nomArticle = null;
64
	private TextField<String> nomArticle = null;
66
	private TextField<String> intituleCollPub = null;
65
	private TextField<String> intituleCollPub = null;
67
	private TextField<String> uriPub = null;
66
	private TextField<String> uriPub = null;
68
	
67
	
69
	private FieldSet editionFieldset = null;
-
 
70
	private ComboBox<Structure> comboListeEditeurs = null;
-
 
71
	private ListStore<Structure> storeEditeurs = null;
-
 
72
	private TextField<String> datePub = null;
68
	private ComboBox<Structure> comboListeEditeurs = null;
73
	private TextField<String> tomPub = null;
-
 
74
	private TextField<String> fasciculePub = null;
-
 
75
	private TextField<String> pagesPub = null;
Line 69... Line 76...
69
	private ListStore<Structure> storeEditeurs = null;
76
	
70
	private TextField<String> datePub = null;
77
	private String idStructureEdition = ""; 
71
	private TextField<String> tomPub = null;
78
	private String idPublication = "";
Line 72... Line -...
72
	private TextField<String> fasciculePub = null;
-
 
73
	private TextField<String> pagesPub = null;
-
 
74
	private String mode = "AJOUT";
-
 
75
	
-
 
76
	private boolean formValide = false;
79
	private String idProjet = "";
77
	private boolean validationPublication = false;
80
	
Line 78... Line 81...
78
	private boolean validationAuteurs = false;
81
	private String idAuteurs = "";
79
	
-
 
-
 
82
	
80
	FieldSet fieldSetAuteurs = null;
83
	private boolean formValide = false;
81
 
-
 
-
 
84
	private boolean validationPublication = false;
82
	private Publication publi;
85
	private boolean validationAuteurs = false;
Line 83... Line -...
83
 
-
 
84
	protected boolean listeAuteurInitialisee = false;
-
 
85
	protected boolean listeAuteurPublicationInitialisee = false;
-
 
86
 
-
 
87
	private LayoutContainer conteneurChamps;
-
 
88
 
-
 
89
	private Button annulerBtn;
-
 
90
 
-
 
91
	private Button validerBtn;
-
 
92
 
-
 
93
	public PublicationForm() {
-
 
94
 
-
 
95
		setId("x-form-pub");
-
 
96
		setLayout(new FitLayout());
-
 
97
		mediateur = Registry.get(RegistreId.MEDIATEUR);
-
 
98
		
-
 
99
		storeAuteurs = new ListStore<Personne>();
-
 
100
		listePersonneAuteur = new PersonneListe();
86
	
101
		
-
 
102
		// Création de la disposition : FIELDSET
87
	protected boolean listeAuteurInitialisee = false;
103
		FormLayout layoutFieldset = new FormLayout();
-
 
104
		layoutFieldset.setLabelWidth(200);
-
 
105
		//layoutFieldset.setPadding(4);
-
 
Line 106... Line 88...
106
 
88
	protected boolean listeAuteurPublicationInitialisee = false;
-
 
89
 
Line 107... Line 90...
107
		//+-----------------------------------------------------------------------------------------------------------+
90
	public PublicationForm(Mediateur mediateurCourrant, String modeDeCreation) {
108
		// Création du panneau Formulaire
91
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
-
 
92
		panneauFormulaire.setLayout(new FlowLayout());
109
		panel = new FormPanel();
93
		String titre = (modeDeCreation.equals(Formulaire.MODE_AJOUTER) ? "Ajout d'une publication" : "Modification d'une publication");
110
		panel.setFrame(true);
94
		panneauFormulaire.setHeading(titre);
-
 
95
 
-
 
96
		creerZoneAuteurs();
-
 
97
		panneauFormulaire.add(auteursFieldset);
-
 
98
		
111
		panel.setIconStyle("icone-form-ajouter");  
99
		creerZoneGeneralites();
Line -... Line 100...
-
 
100
		panneauFormulaire.add(generalitesFieldset);
-
 
101
		
-
 
102
		creerZoneEdition();
112
		panel.setCollapsible(false);  
103
		panneauFormulaire.add(editionFieldset);
-
 
104
				
Line -... Line 105...
-
 
105
		mediateur.clicObtenirListeEditeurs(this);
113
		panel.setHeading("Ajout d'une publication");  
106
		mediateur.clicObtenirListeAuteurs(this);
Line 114... Line 107...
114
		panel.setButtonAlign(HorizontalAlignment.CENTER);  
107
	}
-
 
108
	
-
 
109
	private void creerZoneAuteurs() {
-
 
110
		FormLayout layout = new FormLayout();
-
 
111
		layout.setLabelWidth(200);
Line 115... Line 112...
115
		panel.setLayout(new FlowLayout());
112
		
-
 
113
		// Fieldset Auteur
116
		
114
		auteursFieldset = new FieldSet();
-
 
115
		auteursFieldset.setHeading("Auteur(s)");
-
 
116
		auteursFieldset.setCollapsible(true);
-
 
117
		auteursFieldset.setLayout(layout);
-
 
118
		
-
 
119
		auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0);
-
 
120
		auteursStorePartage = new ListStore<Personne>();
-
 
121
		
-
 
122
		genererChampsAuteur(false);
-
 
123
	}
117
		add(panel);
124
	
-
 
125
	private void genererChampsAuteur(boolean vider) {
-
 
126
		auteursFieldset.removeAll();
-
 
127
		
-
 
128
		conteneurChamps = new LayoutContainer(); 
118
		
129
				
-
 
130
		Button ajoutAuteurBtn = new Button("Ajouter un auteur");
-
 
131
		ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
-
 
132
 
Line 119... Line 133...
119
		// Fieldset Auteur
133
			@Override
-
 
134
			public void componentSelected(ButtonEvent be) {
-
 
135
				creerTextFieldEtBouton(null);
-
 
136
				
-
 
137
				int nbAuteurs = 0;
-
 
138
				for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
-
 
139
					if (auteurComboboxListe.size() > 1) {
-
 
140
						it.next().setFieldLabel("Auteur "+nbAuteurs);
-
 
141
						nbAuteurs++;
-
 
142
					}
-
 
143
				}
120
		fieldSetAuteurs = new FieldSet();
144
				
-
 
145
				auteursFieldset.layout(true);
-
 
146
			}
-
 
147
			
-
 
148
		});
-
 
149
		
-
 
150
		auteursFieldset.add(conteneurChamps);
-
 
151
		auteursFieldset.add(ajoutAuteurBtn);
-
 
152
		auteursFieldset.layout(true);
-
 
153
		
-
 
154
		if (!vider) {
-
 
155
			creerTextFieldEtBouton(null);
-
 
156
		}
-
 
157
	}
-
 
158
	
-
 
159
	public void creerTextFieldEtBouton(Personne auteur) {
-
 
160
		final HorizontalPanel panneauHorizontal = new HorizontalPanel();
-
 
161
		panneauHorizontal.setLayout(new FormLayout());
-
 
162
		
-
 
163
		final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis();
121
		fieldSetAuteurs.setHeading("Auteur(s)");
164
		if (auteur != null) {
-
 
165
			GWT.log(auteur.getId(), null);
-
 
166
			auteursSaisisComboBox.setValue(auteursStorePartage.findModel("id_personne", auteur.getId()));
-
 
167
		}
-
 
168
		auteurComboboxListe.add(auteursSaisisComboBox);
-
 
169
		
122
		fieldSetAuteurs.setCollapsible(true);
170
		LayoutContainer lc = new LayoutContainer();
-
 
171
		lc.setLayout(new FormLayout());
-
 
172
		lc.add(auteursSaisisComboBox);
-
 
173
		
-
 
174
		Button supp = new Button("-");
-
 
175
		supp.addSelectionListener(new SelectionListener<ButtonEvent>() {
-
 
176
			@Override
123
		fieldSetAuteurs.setLayout(layoutFieldset);
177
			public void componentSelected(ButtonEvent be) {
-
 
178
				int nbAuteurs = 0;
-
 
179
				if (auteurComboboxListe.size() != 1) {
-
 
180
					for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
-
 
181
						it.next().setFieldLabel("Auteur "+nbAuteurs);
-
 
182
						nbAuteurs++;
-
 
183
					}
-
 
184
				}
-
 
185
				auteurComboboxListe.remove(auteursSaisisComboBox);
-
 
186
				conteneurChamps.remove(panneauHorizontal);
-
 
187
				auteursFieldset.layout(true);
-
 
188
			}
-
 
189
			
-
 
190
		});
-
 
191
		panneauHorizontal.add(lc);
-
 
192
		panneauHorizontal.add(supp);
-
 
193
		conteneurChamps.add(panneauHorizontal);
-
 
194
		auteursFieldset.layout(true);
-
 
195
	}
Line -... Line 196...
-
 
196
	
124
		
197
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
-
 
198
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
-
 
199
		comboBox.setSize(200, 20);
-
 
200
		comboBox.setEmptyText(i18nC.chercherAuteurSaisi());
Line 125... Line 201...
125
		listeAuteurs = new ArrayList<ComboBox<Personne>>(0);
201
		comboBox.setEditable(true);
126
		
202
		comboBox.setForceSelection(true);
127
		panel.add(fieldSetAuteurs);
203
		comboBox.setDisplayField("fmt_nom_complet");
Line 149... Line 225...
149
		intituleCollPub.setFieldLabel("Intitulé de la collection ou de la revue");
225
		intituleCollPub.setFieldLabel("Intitulé de la collection ou de la revue");
Line 150... Line 226...
150
		
226
		
151
		uriPub = new TextField<String>();
227
		uriPub = new TextField<String>();
Line 152... Line 228...
152
		uriPub.setFieldLabel("URI de la publication");
228
		uriPub.setFieldLabel("URI de la publication");
153
		
229
		
154
		fieldSetInfosGen.add(nomArticle);
230
		generalitesFieldset.add(nomArticle);
-
 
231
		generalitesFieldset.add(intituleCollPub);
155
		fieldSetInfosGen.add(intituleCollPub);
232
		generalitesFieldset.add(uriPub);
156
		fieldSetInfosGen.add(uriPub);
233
	}
157
		
234
	
158
		// Création de la disposition : FIELDSET
235
	private void creerZoneEdition() {
159
		FormLayout layoutFieldset3 = new FormLayout();
236
		FormLayout layout = new FormLayout();
160
		//layoutFieldset.setPadding(4);
237
		layout.setLabelWidth(200);
161
		
238
 
162
		// Fieldset Edition
239
		// Fieldset Edition
163
		FieldSet fieldSetEdition = new FieldSet();
240
		editionFieldset = new FieldSet();
164
		fieldSetEdition.setHeading("Edition");
241
		editionFieldset.setHeading("Edition");
165
		fieldSetEdition.setCollapsible(true);
-
 
166
		fieldSetEdition.setLayout(layoutFieldset3);
-
 
Line 167... Line 242...
167
		
242
		editionFieldset.setCollapsible(true);
168
		panel.add(fieldSetEdition);
243
		editionFieldset.setLayout(layout);
169
		
244
		
170
		storeEditeurs = new ListStore<Structure>();
245
		storeEditeurs = new ListStore<Structure>();
171
		comboListeEditeurs = new ComboBox<Structure>();  
246
		comboListeEditeurs = new ComboBox<Structure>();  
172
		comboListeEditeurs.setEmptyText("Sélectionner un editeur...");
247
		comboListeEditeurs.setEmptyText("Sélectionner un editeur...");
173
		comboListeEditeurs.setFieldLabel("Editeur de la publication");
248
		comboListeEditeurs.setFieldLabel("Editeur de la publication");
174
		comboListeEditeurs.setDisplayField("nom");
249
		comboListeEditeurs.setDisplayField("nom");
175
		comboListeEditeurs.setStore(storeEditeurs);
250
		comboListeEditeurs.setStore(storeEditeurs);
-
 
251
		comboListeEditeurs.setEditable(true);
Line 176... Line 252...
176
		comboListeEditeurs.setEditable(true);
252
		comboListeEditeurs.setTypeAhead(true);  
177
		comboListeEditeurs.setTypeAhead(true);  
253
		comboListeEditeurs.setTriggerAction(TriggerAction.QUERY);
178
		comboListeEditeurs.setTriggerAction(TriggerAction.QUERY);
254
		editionFieldset.add(comboListeEditeurs, new FormData(500, 20));
179
		
255
		
-
 
256
		datePub = new TextField<String>();
Line 180... Line 257...
180
		datePub = new TextField<String>();
257
		datePub.setMaxLength(4);
181
		datePub.setMaxLength(4);
258
		datePub.setMinLength(4);
-
 
259
		datePub.setFieldLabel("Année de publication");
Line 182... Line 260...
182
		datePub.setMinLength(4);
260
		editionFieldset.add(datePub, new FormData(40, 20));
183
		datePub.setFieldLabel("Année de publication");
261
		
-
 
262
		tomPub = new TextField<String>();
Line 184... Line 263...
184
		
263
		tomPub.setFieldLabel("Tome");
185
		tomPub = new TextField<String>();
264
		editionFieldset.add(tomPub, new FormData(75, 20));
186
		tomPub.setFieldLabel("Tome");
-
 
187
		
-
 
188
		fasciculePub = new TextField<String>();
-
 
189
		fasciculePub.setFieldLabel("Fascicule");
-
 
190
		
-
 
191
		pagesPub = new TextField<String>();
265
		
192
		pagesPub.setFieldLabel("Pages");
-
 
193
		
-
 
194
		fieldSetEdition.add(comboListeEditeurs, new FormData(500, 20));
-
 
195
		fieldSetEdition.add(datePub, new FormData(40, 20));
-
 
196
		fieldSetEdition.add(tomPub, new FormData(75, 20));
-
 
197
		fieldSetEdition.add(fasciculePub, new FormData(75, 20));
-
 
198
		fieldSetEdition.add(pagesPub, new FormData(100, 20));
-
 
199
		
-
 
200
		// Ajout des boutons au panneau formulaire
-
 
201
		annulerBtn = new Button("Annuler");
-
 
202
		annulerBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
-
 
203
			@Override
-
 
204
			public void componentSelected(ButtonEvent be) {
-
 
205
				mediateur.clicMenu("Publications");
-
 
206
			}
-
 
207
		});
-
 
208
		panel.addButton(annulerBtn);
-
 
209
		
-
 
210
		validerBtn = new Button("Valider");
-
 
211
		validerBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
-
 
212
			@Override
-
 
213
			public void componentSelected(ButtonEvent be) {
-
 
214
				soumettreFormulaire();
-
 
215
			}
266
		fasciculePub = new TextField<String>();
216
		});
267
		fasciculePub.setFieldLabel("Fascicule");
217
		
268
		editionFieldset.add(fasciculePub, new FormData(75, 20));
218
		panel.addButton(validerBtn);
-
 
219
		
269
		
220
		mediateur.clicObtenirListeEditeurs(this);
270
		pagesPub = new TextField<String>();
221
		mediateur.clicObtenirListeAuteurs(this);
271
		pagesPub.setFieldLabel("Pages");
222
	}
-
 
Line 223... Line 272...
223
	
272
		editionFieldset.add(pagesPub, new FormData(100, 20));
224
	public void rafraichir(Object nouvellesDonnees) {
-
 
225
		
-
 
226
		// Si on a reçu les details d'une publication
-
 
227
		if (nouvellesDonnees instanceof Publication) {
273
	}
228
			mode = "MODIF" ;
274
 
229
			
275
	public void rafraichir(Object nouvellesDonnees) {
230
			
276
		// Si on a reçu les details d'une publication
231
			genererChampsAuteur(true);
277
		if (nouvellesDonnees instanceof Publication) {
232
			publi = (Publication) nouvellesDonnees;
278
			publi = (Publication) nouvellesDonnees;
233
			mediateur.selectionnerAuteurAPublication(this,publi.getId());
279
			
234
			mediateur.clicObtenirListeAuteurs(this);
-
 
235
			nomArticle.setValue(publi.getTitre());
280
			genererChampsAuteur(true);
236
			intituleCollPub.setValue(publi.getCollection());
281
			nomArticle.setValue(publi.getTitre());
237
			uriPub.setValue(publi.getURI());
282
			intituleCollPub.setValue(publi.getCollection());
238
			datePub.setRawValue(reduireDateParAnnee(publi.getDateParution()));
-
 
239
			tomPub.setValue(publi.getIndicationNvt());
-
 
240
			fasciculePub.setValue(publi.getFascicule());
283
			uriPub.setValue(publi.getURI());
Line 241... Line 284...
241
			pagesPub.setValue(publi.getPages());
284
			datePub.setRawValue(reduireDateParAnnee(publi.getDateParution()));
242
			
285
			tomPub.setValue(publi.getIndicationNvt());
243
			idPublication = publi.getId();
286
			fasciculePub.setValue(publi.getFascicule());
244
			idStructureEdition = publi.getEditeur();
287
			pagesPub.setValue(publi.getPages());
245
			idProjet = publi.getProjet() ;
288
			idPublication = publi.getId();
Line 246... Line 289...
246
			
289
			idStructureEdition = publi.getEditeur();
247
			panel.setHeading("Modification d'une publication");
290
			idProjet = publi.getProjet() ;
248
		}
291
		}
249
		
292
		
250
		// Si on a reçu une liste des editeurs
293
		// Si on a reçu une liste des editeurs
Line 251... Line 294...
251
		if(nouvellesDonnees instanceof StructureListe) {
294
		if (nouvellesDonnees instanceof StructureListe) {
252
			storeEditeurs.removeAll();
295
			storeEditeurs.removeAll();
Line 253... Line 296...
253
			StructureListe listeStructure = (StructureListe) nouvellesDonnees;
296
			StructureListe listeStructure = (StructureListe) nouvellesDonnees;
254
			storeEditeurs.add((List<Structure>) listeStructure.toList());
297
			storeEditeurs.add((List<Structure>) listeStructure.toList());
255
			
298
			
256
			if (mode.equals("MODIF")) {	
299
			if (mode.equals(Formulaire.MODE_MODIFIER)) {	
257
				comboListeEditeurs.setValue((Structure) listeStructure.get(idStructureEdition));
300
				comboListeEditeurs.setValue((Structure) listeStructure.get(idStructureEdition));
Line 258... Line 301...
258
			}
301
			}
259
			comboListeEditeurs.expand();
302
			comboListeEditeurs.expand();
260
		}
303
		}
261
		
304
		
262
		if(nouvellesDonnees instanceof PublicationAPersonneListe) {
305
		if (nouvellesDonnees instanceof PublicationAPersonneListe) {
263
			pubAPersonneListeAuteur = (PublicationAPersonneListe)nouvellesDonnees;
306
			pubAPersonneListeAuteur = (PublicationAPersonneListe) nouvellesDonnees;
264
			
307
			
265
			if(listeAuteurInitialisee) {
308
			if (listeAuteurInitialisee) {
Line 280... Line 323...
280
		}
323
		}
Line 281... Line 324...
281
		
324
		
282
		if (nouvellesDonnees instanceof Information) {
325
		if (nouvellesDonnees instanceof Information) {
Line 283... Line 326...
283
			Information nouvellesInfos = (Information)nouvellesDonnees;
326
			Information nouvellesInfos = (Information)nouvellesDonnees;
284
			
327
			
285
			if(nouvellesInfos.getType().equals("liste_personne")) {
-
 
286
				listePersonneAuteur = (PersonneListe)nouvellesInfos.getDonnee(0);
328
			if (nouvellesInfos.getType().equals("liste_personne")) {
287
				storeAuteurs.removeAll();
329
				listePersonneAuteur = (PersonneListe) nouvellesInfos.getDonnee(0);
288
				for (Iterator<String> it = listePersonneAuteur.keySet().iterator(); it.hasNext();) {
330
				List<Personne> liste = listePersonneAuteur.toList();
289
					Personne p = listePersonneAuteur.get(it.next());
331
				auteursStorePartage.removeAll();
290
					storeAuteurs.add(p);
-
 
291
				}
332
				auteursStorePartage.add(liste);
292
				
333
				GWT.log("ok", null);
Line 293... Line 334...
293
				listeAuteurInitialisee = true;
334
				listeAuteurInitialisee = true;
294
			}
335
			}
295
			
336
			
Line 296... Line 337...
296
			if (nouvellesInfos.getType().equals("publication_valide")) {
337
			if (nouvellesInfos.getType().equals("publication_valide")) {
297
				validationPublication = true;
338
				validationPublication = true;
298
				idPublication = ""+nouvellesInfos.getDonnee(0);
-
 
299
				
-
 
300
				if(mode.equals("AJOUT")) {
339
				idPublication = ""+nouvellesInfos.getDonnee(0);
301
					mediateur.ajouterAuteurPublication(this,idAuteurs,"2360",idPublication);
340
				
302
				}
341
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
303
				
342
					mediateur.ajouterAuteurPublication(this, idAuteurs, "2360", idPublication);
Line 304... Line 343...
304
				if(mode.equals("MODIF")) {
343
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
305
					mediateur.modifierAuteurPublication(this,idAuteurs,idPublication);
344
					mediateur.modifierAuteurPublication(this, idAuteurs, idPublication);
306
				}
345
				}
307
			}
346
			}
308
				
347
				
-
 
348
			if (nouvellesInfos.getType().equals("auteur_valide")) {
-
 
349
				validationAuteurs = true;
309
			if (nouvellesInfos.getType().equals("auteur_valide")) {
350
			}
310
				validationAuteurs = true;
351
			
311
			}
352
			if (formValide && validationPublication && validationAuteurs && clicBoutonvalidation) {
312
				
353
				clicBoutonvalidation = false;
Line 313... Line 354...
313
			if(formValide && validationPublication && validationAuteurs) {
354
				panneauFormulaire.setEnabled(false);
314
				mediateur.rechargerListePublication();
355
				mediateur.clicMenu(MenuApplicationId.PUBLICATION);
315
			}
356
			}
316
		}
357
		}
317
	}
358
	}
318
	
359
	
319
	private void soumettreFormulaire() {
360
	public void soumettreFormulaire() {
320
		String auteur = "";
361
		String auteur = "";
321
		String idAuteur = "";
362
		String idAuteur = "";
322
		for (int i = 0; i < listeAuteurs.size(); i++) {
363
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
323
			if(listeAuteurs.get(i).getValue() != null) {
364
			if (auteurComboboxListe.get(i).getValue() != null) {
324
				idAuteur += listeAuteurs.get(i).getValue().getId();
365
				idAuteur += auteurComboboxListe.get(i).getValue().getId();
325
				auteur += listeAuteurs.get(i).getValue().getNom()+ " "+listeAuteurs.get(i).getValue().getPrenom();
366
				auteur += auteurComboboxListe.get(i).getValue().getNom()+ " "+auteurComboboxListe.get(i).getValue().getPrenom();
Line 326... Line 367...
326
				if (i != listeAuteurs.size() -1) {
367
				if (i != auteurComboboxListe.size() -1) {
Line 327... Line 368...
327
					auteur += "|";
368
					auteur += "|";
328
					idAuteur += ",";
369
					idAuteur += ",";
329
				}
370
				}
330
			}
371
			}
331
		}
372
		}
Line 332... Line 373...
332
		
373
		
333
		String erreurs = "";
374
		String erreurs = "";
334
		
375
		
335
		if(idAuteur == null || idAuteur.equals("")) {
376
		if (idAuteur == null || idAuteur.equals("")) {
Line 336... Line 377...
336
			erreurs += "Veuillez entrer au moins un auteur ! ";
377
			erreurs += "Veuillez entrer au moins un auteur ! ";
Line 349... Line 390...
349
		
390
		
Line 350... Line 391...
350
		String uri = uriPub.getValue();
391
		String uri = uriPub.getValue();
Line 351... Line 392...
351
		
392
		
352
		String editeur = "";
393
		String editeur = "";
353
		
394
		
354
		if(comboListeEditeurs.getValue() == null) {
395
		if (comboListeEditeurs.getValue() == null) {
355
			//erreurs += "Veuillez sélectionner un éditeur ! ";
396
			//erreurs += "Veuillez sélectionner un éditeur ! ";
356
		} else {
397
		} else {
357
			editeur = comboListeEditeurs.getValue().getId();
398
			editeur = comboListeEditeurs.getValue().getId();
358
			if(editeur == null || editeur.equals("")) {
399
			if(editeur == null || editeur.equals("")) {
Line 359... Line 400...
359
				erreurs += "Veuillez sélectionner un éditeur ! ";
400
				erreurs += "Veuillez sélectionner un éditeur ! ";
360
			}
401
			}
361
		}
402
		}
362
		
403
		
363
		String datePar = datePub.getRawValue();
404
		String datePar = datePub.getRawValue();
364
		if(datePar == null || datePar.equals("")) {
405
		if (datePar == null || datePar.equals("")) {
365
			erreurs += "Veuillez entrer une date ! ";
406
			erreurs += "Veuillez entrer une date ! ";
366
		} else {
407
		} else {
367
			String resDate = analyserDate(datePar);
408
			String resDate = analyserDate(datePar);
368
			if(resDate.equals("")) {
409
			if (resDate.equals("")) {
369
				datePar = datePar+"-00-00";
410
				datePar = datePar+"-00-00";
Line 375... Line 416...
375
 
416
 
Line 376... Line 417...
376
		String fascicule = fasciculePub.getValue();
417
		String fascicule = fasciculePub.getValue();
Line 377... Line 418...
377
		
418
		
378
		String pages = pagesPub.getValue();
419
		String pages = pagesPub.getValue();
379
		
420
		
-
 
421
		if (erreurs.length() > 0) {
-
 
422
			MessageBox.alert("Erreur dans la saisie des champs", erreurs, null);
-
 
423
		} else {
-
 
424
			formValide = true;
-
 
425
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
-
 
426
				Publication publi = new Publication(pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
-
 
427
				mediateur.ajouterPublication(this, publi);
-
 
428
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
380
		if(erreurs.length() > 0) {
429
				Publication publi = new Publication(idPublication, idProjet, pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
-
 
430
				mediateur.modifierPublication(this, publi);
381
			MessageBox.alert("Erreur dans la saisie des champs", erreurs, null);
431
			}
382
			return;
-
 
383
		}
-
 
384
		
-
 
385
		formValide = true;
432
		}
386
		this.setEnabled(false);
433
	}
387
		mediateur.afficherPopinChargement();
434
	
388
		
435
	
389
		if (mode.equals("AJOUT")) {
436
	protected void reinitialiserFormulaire() {
390
			Publication publi = new Publication(pub,uri,auteur, collPub,nomArt,editeur,datePar,tome,fascicule,pages);
-
 
391
			mediateur.ajouterPublication(this, publi);
437
		if (mode.equals(StructureForm.MODE_MODIFIER)) {
392
		} else if (mode.equals("MODIF")) {
438
			mediateur.afficherFormPublication(publi.getId());
393
			Publication publi = new Publication(idPublication,idProjet,pub,uri,auteur, collPub,nomArt,editeur,datePar,tome,fascicule,pages);
439
		} else {
Line 394... Line 440...
394
			mediateur.modifierPublication(this, publi);
440
			mediateur.afficherFormPublication(null);
395
		}
-
 
396
	}
441
		}
397
	
442
	}
398
	private String analyserDate(String datePar) {
443
	
399
		
444
	private String analyserDate(String datePar) {
400
		if(datePar.matches("^[0-2][0-9]{3}$")) {
445
		if (datePar.matches("^[0-2][0-9]{3}$")) {
401
			return "";
446
			return "";
Line 402... Line 447...
402
		} else {
447
		} else {
403
			return "Format de date incorrect ";
448
			return "Format de date incorrect ";
404
		}
449
		}
405
	}
450
	}
406
	
451
	
407
	private String reduireDateParAnnee(String datePar) {
452
	private String reduireDateParAnnee(String datePar) {
408
		if(datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {
453
		if (datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {
409
			return datePar.split("-")[0];
-
 
410
		} else {
-
 
411
			return "";
-
 
412
		}
-
 
413
	}
-
 
414
 
-
 
415
	private void genererChampsAuteur(boolean vider) {
-
 
416
		
-
 
417
		fieldSetAuteurs.removeAll();
-
 
418
		
-
 
419
		conteneurChamps = new LayoutContainer(); 
-
 
420
				
-
 
421
		Button ajoutAuteurBtn = new Button("Ajouter un auteur");
-
 
422
		ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
-
 
423
 
-
 
424
			@Override
-
 
425
			public void componentSelected(ButtonEvent be) {
-
 
426
				creerTextFieldEtBouton("");
-
 
427
				int nbAuteurs = 0;
-
 
428
				for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) {
-
 
429
					if(listeAuteurs.size() > 1) {
-
 
430
						it.next().setFieldLabel("Auteur "+nbAuteurs);
-
 
431
						nbAuteurs++;
-
 
432
					}
-
 
433
				}
-
 
434
				fieldSetAuteurs.layout(true);
-
 
435
			}
-
 
436
			
-
 
437
		});
-
 
438
		
-
 
439
		fieldSetAuteurs.add(conteneurChamps);
-
 
440
		fieldSetAuteurs.add(ajoutAuteurBtn);
-
 
441
		fieldSetAuteurs.layout(true);
-
 
442
		
-
 
443
		if(!vider) {
-
 
Line 444... Line -...
444
			creerTextFieldEtBouton("");
-
 
445
		}
-
 
446
		
-
 
447
 
-
 
448
	}
-
 
449
	
-
 
450
	public HorizontalPanel creerTextFieldEtBouton(String valeurDefaut) {
-
 
451
		final HorizontalPanel p = new HorizontalPanel();
-
 
452
		
-
 
453
		// Création de la disposition : FIELDSET
-
 
454
		FormLayout layoutPanelTF = new FormLayout();
-
 
455
		p.setLayout(layoutPanelTF);
-
 
456
		
454
			return datePar.split("-")[0];
457
		final ComboBox<Personne> tf = new ComboBox<Personne>();
-
 
458
		tf.setDisplayField("fmt_nom_complet");
455
		} else {
459
		tf.setStore(storeAuteurs);
-
 
460
		tf.setEmptyText("Selectionnez un auteur...");
-
 
461
		String label = "Auteur ";
-
 
462
		tf.setFieldLabel(label);
-
 
463
		if(valeurDefaut != null && !valeurDefaut.equals("") ) {
-
 
464
			Personne auteur = listePersonneAuteur.get(valeurDefaut);
-
 
465
			tf.setValue(auteur);
-
 
466
		}
-
 
467
		listeAuteurs.add(tf);
-
 
468
		
-
 
469
		tf.setSize(200, 20);
456
			return "";
470
		LayoutContainer lc = new LayoutContainer();
457
		}
471
		lc.setLayout(new FormLayout());
458
	}
-
 
459
	
-
 
460
	@Override
472
		lc.add(tf);
461
	protected SelectionListener<ButtonEvent> creerEcouteurValidation() {
473
		
462
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
474
		Button supp = new Button("-");
463
			@Override
475
		supp.addSelectionListener(new SelectionListener<ButtonEvent>() {
464
			public void componentSelected(ButtonEvent ce) {
-
 
465
				String code = ((Button) ce.getComponent()).getData("code");
476
			@Override
466
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
-
 
467
					soumettreFormulaire();
477
			public void componentSelected(ButtonEvent be) {
468
					clicBoutonvalidation = true;
478
				int nbAuteurs = 0;
469
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
479
				if(listeAuteurs.size() != 1) {
-
 
480
					for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) {
-
 
481
							it.next().setFieldLabel("Auteur "+nbAuteurs);
-
 
482
							nbAuteurs++;
470
					soumettreFormulaire();
483
					}
-
 
484
				}
471
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
485
				listeAuteurs.remove(tf);
-
 
486
				conteneurChamps.remove(p);
-
 
487
				fieldSetAuteurs.layout(true);
-
 
488
			}
-
 
Line 489... Line 472...
489
			
472
					mediateur.clicMenu(menuIdCourant);
490
		});
473
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
491
		p.add(lc);
-
 
492
		p.add(supp);
-
 
493
		conteneurChamps.add(p);
-
 
494
		fieldSetAuteurs.layout(true);
-
 
495
		
-
 
496
		return p;
474
					reinitialiserFormulaire();
497
	}
475
				}