Subversion Repositories eFlore/Applications.coel

Rev

Rev 787 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 787 Rev 792
Line 16... Line 16...
16
import org.tela_botanica.client.modeles.PublicationAPersonne;
16
import org.tela_botanica.client.modeles.PublicationAPersonne;
17
import org.tela_botanica.client.modeles.PublicationAPersonneListe;
17
import org.tela_botanica.client.modeles.PublicationAPersonneListe;
18
import org.tela_botanica.client.modeles.PublicationListe;
18
import org.tela_botanica.client.modeles.PublicationListe;
19
import org.tela_botanica.client.modeles.Structure;
19
import org.tela_botanica.client.modeles.Structure;
20
import org.tela_botanica.client.modeles.StructureListe;
20
import org.tela_botanica.client.modeles.StructureListe;
-
 
21
import org.tela_botanica.client.util.Pattern;
21
import org.tela_botanica.client.util.UtilArray;
22
import org.tela_botanica.client.util.UtilArray;
Line 22... Line 23...
22
 
23
 
23
import com.extjs.gxt.ui.client.Registry;
24
import com.extjs.gxt.ui.client.Registry;
24
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
25
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
Line 65... Line 66...
65
	private TextField<String> titreChp = null;
66
	private TextField<String> titreChp = null;
66
	private TextField<String> collectionChp = null;
67
	private TextField<String> collectionChp = null;
67
	private TextField<String> uriChp = null;
68
	private TextField<String> uriChp = null;
Line 68... Line 69...
68
	
69
	
69
	private FieldSet editionFieldset = null;
70
	private FieldSet editionFieldset = null;
70
	private ComboBox<Structure> editeursCombobox = null;
-
 
71
	private ListStore<Structure> editeursStore = null;
71
	private ComboBox<Structure> editeurCombobox = null;
72
	private TextField<String> datePublicationChp = null;
72
	private TextField<String> datePublicationChp = null;
73
	private TextField<String> tomeChp = null;
73
	private TextField<String> tomeChp = null;
74
	private TextField<String> fasciculeChp = null;
74
	private TextField<String> fasciculeChp = null;
Line 99... Line 99...
99
		String modeDeCreation = Formulaire.MODE_AJOUTER;
99
		String modeDeCreation = Formulaire.MODE_AJOUTER;
100
		if (publicationId != null) {
100
		if (publicationId != null) {
101
			modeDeCreation = Formulaire.MODE_MODIFIER;
101
			modeDeCreation = Formulaire.MODE_MODIFIER;
102
		}
102
		}
103
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
103
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
104
		chargerOntologie();
-
 
Line 105... Line 104...
105
		
104
		
106
		panneauFormulaire.setLayout(new FlowLayout());
105
		panneauFormulaire.setLayout(new FlowLayout());
107
		String titre = (modeDeCreation.equals(Formulaire.MODE_AJOUTER) ? "Ajout d'une publication" : "Modification d'une publication");
106
		String titre = (modeDeCreation.equals(Formulaire.MODE_AJOUTER) ? "Ajout d'une publication" : "Modification d'une publication");
Line 118... Line 117...
118
				
117
				
119
		mediateurCourrant.selectionnerPublication(this, publicationId);
118
		mediateurCourrant.selectionnerPublication(this, publicationId);
120
		mediateurCourrant.selectionnerAuteurAPublication(this, publicationId);
119
		mediateurCourrant.selectionnerAuteurAPublication(this, publicationId);
Line 121... Line -...
121
	}
-
 
122
	
-
 
123
	private void chargerOntologie() {
-
 
124
		mediateur.clicObtenirListeEditeurs(this);
-
 
125
		mediateur.clicObtenirListeAuteurs(this);
-
 
126
	}
120
	}
127
	
121
	
128
	private void creerZoneAuteurs() {
122
	private void creerZoneAuteurs() {
Line 129... Line 123...
129
		FormLayout layout = new FormLayout();
123
		FormLayout layout = new FormLayout();
Line 135... Line 129...
135
		auteursFieldset.setCollapsible(true);
129
		auteursFieldset.setCollapsible(true);
136
		auteursFieldset.setLayout(layout);
130
		auteursFieldset.setLayout(layout);
Line 137... Line 131...
137
		
131
		
138
		auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0);
132
		auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0);
-
 
133
		auteursStorePartage = new ListStore<Personne>();
Line 139... Line 134...
139
		auteursStorePartage = new ListStore<Personne>();
134
		mediateur.clicObtenirListeAuteurs(this);
140
		
135
		
Line 141... Line 136...
141
		genererChampsAuteur(false);
136
		genererChampsAuteur(false);
Line 146... Line 141...
146
		
141
		
Line 147... Line 142...
147
		conteneurChamps = new LayoutContainer(); 
142
		conteneurChamps = new LayoutContainer(); 
148
				
143
				
149
		Button ajoutAuteurBtn = new Button("Ajouter un auteur");
-
 
150
		ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
144
		Button ajoutAuteurBtn = new Button("Ajouter un auteur");
151
 
145
		ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
152
			@Override
146
			@Override
Line 153... Line 147...
153
			public void componentSelected(ButtonEvent be) {
147
			public void componentSelected(ButtonEvent be) {
Line 161... Line 155...
161
					}
155
					}
162
				}
156
				}
Line 163... Line 157...
163
				
157
				
164
				auteursFieldset.layout(true);
158
				auteursFieldset.layout(true);
165
			}
-
 
166
			
159
			}
Line 167... Line 160...
167
		});
160
		});
168
		
161
		
169
		auteursFieldset.add(conteneurChamps);
162
		auteursFieldset.add(conteneurChamps);
Line 186... Line 179...
186
		}
179
		}
187
		auteurComboboxListe.add(auteursSaisisComboBox);
180
		auteurComboboxListe.add(auteursSaisisComboBox);
Line 188... Line 181...
188
		
181
		
189
		LayoutContainer lc = new LayoutContainer();
182
		LayoutContainer lc = new LayoutContainer();
190
		lc.setLayout(new FormLayout());
183
		lc.setLayout(new FormLayout());
Line 191... Line 184...
191
		lc.add(auteursSaisisComboBox);
184
		lc.add(auteursSaisisComboBox, new FormData(300, 0));
192
		
185
		
193
		Button supp = new Button("-");
186
		Button supp = new Button("-");
194
		supp.addSelectionListener(new SelectionListener<ButtonEvent>() {
187
		supp.addSelectionListener(new SelectionListener<ButtonEvent>() {
Line 213... Line 206...
213
		auteursFieldset.layout(true);
206
		auteursFieldset.layout(true);
214
	}
207
	}
Line 215... Line 208...
215
	
208
	
216
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
209
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
217
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
-
 
218
		comboBox.setSize(200, 20);
210
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
219
		comboBox.setEmptyText(i18nC.chercherAuteurSaisi());
211
		comboBox.setEmptyText(i18nC.chercherAuteurSaisi());
220
		comboBox.setEditable(true);
212
		comboBox.setEditable(true);
221
		comboBox.setForceSelection(true);
213
		comboBox.setForceSelection(true);
222
		comboBox.setDisplayField("fmt_nom_complet");
214
		comboBox.setDisplayField("fmt_nom_complet");
Line 237... Line 229...
237
		generalitesFieldset.setLayout(layout);
229
		generalitesFieldset.setLayout(layout);
Line 238... Line 230...
238
		
230
		
239
		titreChp = new TextField<String>();
231
		titreChp = new TextField<String>();
240
		titreChp.setName("cpu");
232
		titreChp.setName("cpu");
-
 
233
		titreChp.setFieldLabel("Titre de l'article ou de l'ouvrage");
Line 241... Line 234...
241
		titreChp.setFieldLabel("Titre de l'article ou de l'ouvrage");
234
		generalitesFieldset.add(titreChp, new FormData(450, 0));
242
		
235
		
-
 
236
		collectionChp = new TextField<String>();
Line 243... Line 237...
243
		collectionChp = new TextField<String>();
237
		collectionChp.setFieldLabel("Intitulé de la revue ou de la collection");
244
		collectionChp.setFieldLabel("Intitulé de la collection ou de la revue");
238
		generalitesFieldset.add(collectionChp, new FormData(450, 0));
245
		
-
 
246
		uriChp = new TextField<String>();
-
 
247
		uriChp.setFieldLabel("URI de la publication");
-
 
248
		
239
		
249
		generalitesFieldset.add(titreChp);
240
		uriChp = new TextField<String>();
Line 250... Line 241...
250
		generalitesFieldset.add(collectionChp);
241
		uriChp.setFieldLabel("URL de la publication");
251
		generalitesFieldset.add(uriChp);
242
		generalitesFieldset.add(uriChp, new FormData(450, 0));
252
	}
243
	}
Line 253... Line 244...
253
	
244
	
254
	private void creerZoneEdition() {
245
	private void creerZoneEdition() {
255
		FormLayout layout = new FormLayout();
246
		FormLayout layout = new FormLayout();
256
		layout.setLabelWidth(200);
247
		layout.setLabelWidth(200);
257
 
248
 
Line 258... Line 249...
258
		// Fieldset Edition
249
		// Fieldset Edition
259
		editionFieldset = new FieldSet();
250
		editionFieldset = new FieldSet();
260
		editionFieldset.setHeading("Edition");
251
		editionFieldset.setHeading("Édition");
261
		editionFieldset.setCollapsible(true);
252
		editionFieldset.setCollapsible(true);
262
		editionFieldset.setLayout(layout);
253
		editionFieldset.setLayout(layout);
263
		
254
		
264
		editeursStore = new ListStore<Structure>();
255
		ListStore<Structure> editeurStore = new ListStore<Structure>();
265
		editeursCombobox = new ComboBox<Structure>();  
-
 
266
		editeursCombobox.setEmptyText("Sélectionner un editeur...");
256
		editeurCombobox = new ComboBox<Structure>();  
267
		editeursCombobox.setFieldLabel("Editeur de la publication");
257
		editeurCombobox.setEmptyText("Sélectionner un éditeur...");
-
 
258
		editeurCombobox.setFieldLabel("Éditeur de la publication");
Line 268... Line 259...
268
		editeursCombobox.setDisplayField("nom");
259
		editeurCombobox.setDisplayField("nom");
269
		editeursCombobox.setStore(editeursStore);
260
		editeurCombobox.setStore(editeurStore);
270
		editeursCombobox.setEditable(true);
261
		editeurCombobox.setEditable(true);
271
		editeursCombobox.setTypeAhead(true);  
262
		editeurCombobox.setTriggerAction(TriggerAction.ALL);
272
		editeursCombobox.setTriggerAction(TriggerAction.QUERY);
263
		editionFieldset.add(editeurCombobox, new FormData(450, 0));
Line 273... Line 264...
273
		editionFieldset.add(editeursCombobox, new FormData(500, 20));
264
		mediateur.clicObtenirListeEditeurs(this);
274
		
265
		
275
		datePublicationChp = new TextField<String>();
266
		datePublicationChp = new TextField<String>();
Line 276... Line 267...
276
		datePublicationChp.setMaxLength(4);
267
		datePublicationChp.setMaxLength(4);
277
		datePublicationChp.setMinLength(4);
268
		datePublicationChp.setMinLength(4);
278
		datePublicationChp.setFieldLabel("Année de publication");
269
		datePublicationChp.setFieldLabel("Année de publication");
Line 279... Line 270...
279
		editionFieldset.add(datePublicationChp, new FormData(40, 20));
270
		editionFieldset.add(datePublicationChp, new FormData(40, 0));
280
		
271
		
-
 
272
		tomeChp = new TextField<String>();
281
		tomeChp = new TextField<String>();
273
		tomeChp.setFieldLabel("Série de la revue ou tome");
282
		tomeChp.setFieldLabel("Tome");
274
		editionFieldset.add(tomeChp, new FormData(75, 0));
Line 283... Line 275...
283
		editionFieldset.add(tomeChp, new FormData(75, 20));
275
		
284
		
276
		fasciculeChp = new TextField<String>();
285
		fasciculeChp = new TextField<String>();
277
		fasciculeChp.setFieldLabel("Fascicule de la revue");
Line 322... Line 314...
322
		uriChp.setValue(publication.getURI());
314
		uriChp.setValue(publication.getURI());
323
		datePublicationChp.setRawValue(reduireDateParAnnee(publication.getDateParution()));
315
		datePublicationChp.setRawValue(reduireDateParAnnee(publication.getDateParution()));
324
		tomeChp.setValue(publication.getIndicationNvt());
316
		tomeChp.setValue(publication.getIndicationNvt());
325
		fasciculeChp.setValue(publication.getFascicule());
317
		fasciculeChp.setValue(publication.getFascicule());
326
		pagesChp.setValue(publication.getPages());
318
		pagesChp.setValue(publication.getPages());
-
 
319
		
-
 
320
		if (publication.getEditeur().matches("^[0-9]+$")) {
-
 
321
			editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur()));
327
		idStructureEdition = publication.getEditeur();
322
			idStructureEdition = publication.getEditeur();
-
 
323
		} else {
-
 
324
			editeurCombobox.setRawValue(publication.getEditeur());
-
 
325
		}
328
	}
326
	}
Line 329... Line 327...
329
	
327
	
330
	private void rafraichirListeEditeurs(StructureListe editeurs) {
328
	private void rafraichirListeEditeurs(StructureListe editeurs) {
331
		editeursStore.removeAll();
329
		editeurCombobox.getStore().removeAll();
Line 332... Line 330...
332
		editeursStore.add((List<Structure>) editeurs.toList());
330
		editeurCombobox.getStore().add((List<Structure>) editeurs.toList());
333
		
331
		
334
		if (mode.equals(Formulaire.MODE_MODIFIER)) {	
332
		if (mode.equals(Formulaire.MODE_MODIFIER)) {	
335
			editeursCombobox.setValue((Structure) editeurs.get(idStructureEdition));
333
			editeurCombobox.setValue((Structure) editeurs.get(idStructureEdition));
336
		}
334
		}
Line 337... Line 335...
337
		editeursCombobox.expand();
335
		editeurCombobox.expand();
338
	}
336
	}
Line 356... Line 354...
356
			listeAuteurPublicationInitialisee = true;
354
			listeAuteurPublicationInitialisee = true;
357
		}
355
		}
358
	}
356
	}
Line 359... Line 357...
359
	
357
	
360
	private void rafraichirInformation(Information info) {
-
 
361
		GWT.log("la", null);
358
	private void rafraichirInformation(Information info) {
362
		if (info.getType().equals("liste_personne")) {
359
		if (info.getType().equals("liste_personne")) {
363
			listePersonneAuteurInitialisee = true;
360
			listePersonneAuteurInitialisee = true;
364
			listePersonneAuteur = (PersonneListe) info.getDonnee(0);
361
			listePersonneAuteur = (PersonneListe) info.getDonnee(0);
365
			List<Personne> liste = listePersonneAuteur.toList();
362
			List<Personne> liste = listePersonneAuteur.toList();
Line 374... Line 371...
374
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
371
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
375
				mediateur.modifierAuteurPublication(this, idAuteurs, publication.getId());
372
				mediateur.modifierAuteurPublication(this, idAuteurs, publication.getId());
376
			}
373
			}
377
		} else if (info.getType().equals("auteur_valide")) {
374
		} else if (info.getType().equals("auteur_valide")) {
378
			validationAuteurs = true;
375
			validationAuteurs = true;
379
			GWT.log("ici", null);
-
 
380
		}
376
		}
381
	}
377
	}
Line 382... Line 378...
382
	
378
	
383
	private Boolean etreValide() {
379
	private Boolean etreValide() {
Line 439... Line 435...
439
		String titre = titreChp.getValue();
435
		String titre = titreChp.getValue();
440
		if (titre == null || titre.equals("")) {
436
		if (titre == null || titre.equals("")) {
441
			messages.add("Veuillez saisir le titre de la publication !");
437
			messages.add("Veuillez saisir le titre de la publication !");
442
		}
438
		}
Line -... Line 439...
-
 
439
		
-
 
440
		String uri = uriChp.getValue();
-
 
441
		if (uri != null && ! uri.isEmpty() && ! uri.matches(Pattern.url)) {
-
 
442
			messages.add("L'URL saisie n'est pas valide !");
-
 
443
		}
443
		
444
		
444
		String datePar = datePublicationChp.getRawValue();
445
		String datePar = datePublicationChp.getRawValue();
445
		if (datePar == null || datePar.equals("")) {
446
		if (datePar == null || datePar.equals("")) {
446
			messages.add("Veuillez saisir une date !");
447
			messages.add("Veuillez saisir une date !");
447
		} else {
448
		} else {
448
			if (!etreDateValide(datePar)) {
449
			if (!etreDateValide(datePar)) {
449
				messages.add("Format de l'année saisie est incorrect");
450
				messages.add("Le format de l'année saisie est incorrect !");
450
			}
451
			}
Line -... Line 452...
-
 
452
		}
-
 
453
		
-
 
454
		String pages = pagesChp.getValue();
-
 
455
		String valeurPage = "(?:[0-9]+|[IVXLCDM]+|\\?)";
-
 
456
		if (! pages.matches("^(?:"+valeurPage+"|"+valeurPage+"-"+valeurPage+")$")) {
-
 
457
			messages.add("Le format des pages est incorrect !");
451
		}
458
		}
452
		
459
		
453
		if (messages.size() != 0) {
460
		if (messages.size() != 0) {
454
			String[] tableauDeMessages = {};
461
			String[] tableauDeMessages = {};
455
			tableauDeMessages = messages.toArray(tableauDeMessages);
462
			tableauDeMessages = messages.toArray(tableauDeMessages);
Line 487... Line 494...
487
		
494
		
488
		String uri = uriChp.getValue();
495
		String uri = uriChp.getValue();
Line 489... Line 496...
489
		publicationCollectee.setUri(uri);
496
		publicationCollectee.setUri(uri);
490
		
497
		
491
		String editeur = "";
498
		String editeur = "";
492
		if (editeursCombobox.getValue() != null) {
499
		if (editeurCombobox.getValue() != null) {
493
			editeur = editeursCombobox.getValue().getId();
500
			editeur = editeurCombobox.getValue().getId();
494
		} else if (editeursCombobox.getRawValue() != "") {
501
		} else if (editeurCombobox.getRawValue() != "") {
495
			editeur = editeursCombobox.getRawValue();
502
			editeur = editeurCombobox.getRawValue();
Line 496... Line 503...
496
		}
503
		}
497
		publicationCollectee.setEditeur(editeur);
504
		publicationCollectee.setEditeur(editeur);
498
		
505
		
Line 499... Line 506...
499
		String datePar = datePublicationChp.getRawValue();
506
		String anneePublication = datePublicationChp.getRawValue();
500
		datePar = datePar+"-00-00";
507
		String datePublication = anneePublication+"-00-00";
Line 501... Line 508...
501
		publicationCollectee.setDateParution(datePar);
508
		publicationCollectee.setDateParution(datePublication);
Line 522... Line 529...
522
		} else {
529
		} else {
523
			mediateur.afficherFormPublication(null);
530
			mediateur.afficherFormPublication(null);
524
		}
531
		}
525
	}
532
	}
Line 526... Line 533...
526
	
533
	
527
	private boolean etreDateValide(String datePar) {
534
	private boolean etreDateValide(String anneePublication) {
528
		boolean valide = true;
535
		boolean valide = true;
529
		if (!datePar.matches("^[0-2][0-9]{3}$")) {
536
		if (!anneePublication.matches("^[0-2][0-9]{3}$")) {
530
			valide = false;
537
			valide = false;
531
		}
538
		}
532
		return valide;
539
		return valide;