Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 781 Rev 782
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.UtilArray;
Line 21... Line 22...
21
 
22
 
22
import com.extjs.gxt.ui.client.Registry;
23
import com.extjs.gxt.ui.client.Registry;
23
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
24
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
24
import com.extjs.gxt.ui.client.event.BaseEvent;
25
import com.extjs.gxt.ui.client.event.BaseEvent;
Line 82... Line 83...
82
	
83
	
83
	private boolean formValide = false;
84
	private boolean formValide = false;
84
	private boolean validationPublication = false;
85
	private boolean validationPublication = false;
Line 85... Line 86...
85
	private boolean validationAuteurs = false;
86
	private boolean validationAuteurs = false;
86
	
87
	
-
 
88
	protected boolean listePersonneAuteurInitialisee = false;
-
 
89
	protected boolean listeAuteurPublicationInitialisee = false;
Line 87... Line 90...
87
	protected boolean listeAuteurInitialisee = false;
90
	
-
 
91
	private Rafraichissable vueExterneARafraichirApresValidation = null;
-
 
92
 
-
 
93
	public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
-
 
94
		initialiserPublicationForm(mediateurCourrant, publicationId);
-
 
95
	}
-
 
96
 
-
 
97
	public PublicationForm(Mediateur mediateurCourrant, String publicationId, Rafraichissable vueARafraichirApresValidation) {
-
 
98
		initialiserPublicationForm(mediateurCourrant, publicationId);
-
 
99
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
88
	protected boolean listeAuteurPublicationInitialisee = false;
100
	}
89
 
101
	
90
	public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
102
	private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) {
91
		String modeDeCreation = Formulaire.MODE_AJOUTER;
103
		String modeDeCreation = Formulaire.MODE_AJOUTER;
92
		if (publicationId != null) {
104
		if (publicationId != null) {
Line 109... Line 121...
109
		panneauFormulaire.add(editionFieldset);
121
		panneauFormulaire.add(editionFieldset);
Line 110... Line 122...
110
				
122
				
111
		mediateurCourrant.selectionnerPublication(this, publicationId);
123
		mediateurCourrant.selectionnerPublication(this, publicationId);
112
		mediateurCourrant.selectionnerAuteurAPublication(this, publicationId);
124
		mediateurCourrant.selectionnerAuteurAPublication(this, publicationId);
113
	}
125
	}
114
 
126
	
115
	private void chargerOntologie() {
127
	private void chargerOntologie() {
116
		mediateur.clicObtenirListeEditeurs(this);
128
		mediateur.clicObtenirListeEditeurs(this);
117
		mediateur.clicObtenirListeAuteurs(this);
129
		mediateur.clicObtenirListeAuteurs(this);
Line 282... Line 294...
282
		pagesPub.setFieldLabel("Pages");
294
		pagesPub.setFieldLabel("Pages");
283
		editionFieldset.add(pagesPub, new FormData(100, 20));
295
		editionFieldset.add(pagesPub, new FormData(100, 20));
284
	}
296
	}
Line 285... Line 297...
285
 
297
 
286
	public void rafraichir(Object nouvellesDonnees) {
-
 
287
		// Si on a reçu les details d'une publication
298
	public void rafraichir(Object nouvellesDonnees) {
-
 
299
		if (nouvellesDonnees instanceof Publication) {
288
		if (nouvellesDonnees instanceof Publication) {
300
			// Si on a reçu les details d'une publication
-
 
301
			rafraichirPublication((Publication) nouvellesDonnees);
-
 
302
		} else if (nouvellesDonnees instanceof StructureListe) {
-
 
303
			// Si on a reçu une liste des editeurs
-
 
304
			rafraichirListeEditeurs((StructureListe) nouvellesDonnees);
-
 
305
		} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
-
 
306
			rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
-
 
307
		} else if (nouvellesDonnees instanceof Information) {
-
 
308
			rafraichirInformation((Information) nouvellesDonnees);	
-
 
309
		} else {
-
 
310
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
-
 
311
		}
-
 
312
		
-
 
313
		if (etreValide()) {
-
 
314
			reinitialiserValidation();
-
 
315
			repandreRafraichissement();
-
 
316
			controlerFermetureApresRafraichissement();
-
 
317
		}
-
 
318
	}
-
 
319
 
-
 
320
	private void rafraichirPublication(Publication publication) {
-
 
321
		publi = publication;
-
 
322
		
-
 
323
		genererChampsAuteur(true);
-
 
324
		nomArticle.setValue(publi.getTitre());
-
 
325
		intituleCollPub.setValue(publi.getCollection());
-
 
326
		uriPub.setValue(publi.getURI());
-
 
327
		datePub.setRawValue(reduireDateParAnnee(publi.getDateParution()));
-
 
328
		tomPub.setValue(publi.getIndicationNvt());
-
 
329
		fasciculePub.setValue(publi.getFascicule());
-
 
330
		pagesPub.setValue(publi.getPages());
-
 
331
		idPublication = publi.getId();
-
 
332
		idStructureEdition = publi.getEditeur();
-
 
333
		idProjet = publi.getIdProjet() ;
-
 
334
	}
-
 
335
	
-
 
336
	private void rafraichirListeEditeurs(StructureListe editeurs) {
-
 
337
		storeEditeurs.removeAll();
-
 
338
		storeEditeurs.add((List<Structure>) editeurs.toList());
-
 
339
		
-
 
340
		if (mode.equals(Formulaire.MODE_MODIFIER)) {	
-
 
341
			comboListeEditeurs.setValue((Structure) editeurs.get(idStructureEdition));
-
 
342
		}
-
 
343
		comboListeEditeurs.expand();
-
 
344
	}
-
 
345
	
-
 
346
	private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
-
 
347
		pubAPersonneListeAuteur = auteurs;
-
 
348
		
-
 
349
		if (listePersonneAuteurInitialisee) {
-
 
350
			Iterator<String> itap = pubAPersonneListeAuteur.keySet().iterator();
-
 
351
			while (itap.hasNext()) {
-
 
352
				creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getPersonne());
Line 289... Line 353...
289
			publi = (Publication) nouvellesDonnees;
353
			}
290
			
-
 
291
			genererChampsAuteur(true);
-
 
292
			nomArticle.setValue(publi.getTitre());
-
 
293
			intituleCollPub.setValue(publi.getCollection());
354
			
294
			uriPub.setValue(publi.getURI());
-
 
295
			datePub.setRawValue(reduireDateParAnnee(publi.getDateParution()));
-
 
296
			tomPub.setValue(publi.getIndicationNvt());
355
			int nbAuteurs = 0;
297
			fasciculePub.setValue(publi.getFascicule());
-
 
298
			pagesPub.setValue(publi.getPages());
356
			for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
299
			idPublication = publi.getId();
-
 
300
			idStructureEdition = publi.getEditeur();
-
 
301
			idProjet = publi.getProjet() ;
-
 
302
		}
-
 
303
		
-
 
304
		// Si on a reçu une liste des editeurs
357
				if (auteurComboboxListe.size() > 1) {
305
		if (nouvellesDonnees instanceof StructureListe) {
-
 
306
			storeEditeurs.removeAll();
-
 
307
			StructureListe listeStructure = (StructureListe) nouvellesDonnees;
-
 
308
			storeEditeurs.add((List<Structure>) listeStructure.toList());
-
 
309
			
-
 
310
			if (mode.equals(Formulaire.MODE_MODIFIER)) {	
-
 
311
				comboListeEditeurs.setValue((Structure) listeStructure.get(idStructureEdition));
-
 
312
			}
-
 
313
			comboListeEditeurs.expand();
-
 
314
		}
-
 
315
		
-
 
316
		if (nouvellesDonnees instanceof PublicationAPersonneListe) {
-
 
317
			pubAPersonneListeAuteur = (PublicationAPersonneListe) nouvellesDonnees;
-
 
318
			
-
 
319
			if (listeAuteurInitialisee) {
-
 
320
				Iterator<String> itap = pubAPersonneListeAuteur.keySet().iterator();
-
 
321
				while (itap.hasNext()) {
358
					it.next().setFieldLabel("Auteur "+nbAuteurs);
322
					creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getPersonne());
-
 
323
				}
-
 
324
				
-
 
325
				int nbAuteurs = 0;
-
 
326
				for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
-
 
327
					if (auteurComboboxListe.size() > 1) {
-
 
328
						it.next().setFieldLabel("Auteur "+nbAuteurs);
-
 
329
						nbAuteurs++;
-
 
330
					}
-
 
331
				}
359
					nbAuteurs++;
-
 
360
				}
332
				listeAuteurPublicationInitialisee = true;
361
			}
-
 
362
			listeAuteurPublicationInitialisee = true;
333
			}
363
		}
334
		}
364
	}
-
 
365
	
-
 
366
	private void rafraichirInformation(Information info) {
335
		
367
		if (info.getType().equals("liste_personne")) {
-
 
368
			listePersonneAuteurInitialisee = true;
-
 
369
			listePersonneAuteur = (PersonneListe) info.getDonnee(0);
-
 
370
			List<Personne> liste = listePersonneAuteur.toList();
-
 
371
			auteursStorePartage.removeAll();
-
 
372
			auteursStorePartage.add(liste);
-
 
373
		} else if (info.getType().equals("publication_valide")) {
Line 336... Line 374...
336
		if (nouvellesDonnees instanceof Information) {
374
			validationPublication = true;
337
			Information nouvellesInfos = (Information)nouvellesDonnees;
375
			idPublication = (String) info.getDonnee(0);
338
			
376
			
339
			if (nouvellesInfos.getType().equals("liste_personne")) {
-
 
340
				listePersonneAuteur = (PersonneListe) nouvellesInfos.getDonnee(0);
-
 
341
				List<Personne> liste = listePersonneAuteur.toList();
-
 
342
				auteursStorePartage.removeAll();
377
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
343
				auteursStorePartage.add(liste);
378
				mediateur.ajouterAuteurPublication(this, idAuteurs, PublicationAPersonne.ROLE_AUTEUR, idPublication);
-
 
379
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
380
				mediateur.modifierAuteurPublication(this, idAuteurs, idPublication);
-
 
381
			}
-
 
382
		} else if (info.getType().equals("auteur_valide")) {
-
 
383
			validationAuteurs = true;
-
 
384
		}
-
 
385
	}
-
 
386
	
-
 
387
	private Boolean etreValide() {
-
 
388
		Boolean valide = false;
-
 
389
		if (formValide && validationPublication && validationAuteurs) {
-
 
390
			valide = true;
-
 
391
		}
-
 
392
		return valide;
-
 
393
	}
-
 
394
	
-
 
395
	private void reinitialiserValidation() {
-
 
396
		formValide = false;
-
 
397
		validationPublication = false;
-
 
398
		validationAuteurs = false;
-
 
399
	}
-
 
400
	
Line 344... Line 401...
344
				GWT.log("ok", null);
401
	private void repandreRafraichissement() {
-
 
402
		if (vueExterneARafraichirApresValidation != null) {
-
 
403
			Information info = new Information("");
-
 
404
			
-
 
405
			vueExterneARafraichirApresValidation.rafraichir(info);
345
				listeAuteurInitialisee = true;
406
		}
-
 
407
	}
346
			}
408
	
347
			
409
	public void soumettreFormulaire() {
-
 
410
		formValide = verifierFormulaire();
-
 
411
		if (formValide) {
348
			if (nouvellesInfos.getType().equals("publication_valide")) {
412
			Publication publication = new Publication();
349
				validationPublication = true;
413
			
-
 
414
			String auteur = "";
350
				idPublication = ""+nouvellesInfos.getDonnee(0);
415
			for (int i = 0; i < auteurComboboxListe.size(); i++) {
-
 
416
				if (auteurComboboxListe.get(i).getValue() != null) {
351
				
417
					idAuteurs += auteurComboboxListe.get(i).getValue().getId();
-
 
418
					auteur += auteurComboboxListe.get(i).getValue().getNom()+ " "+auteurComboboxListe.get(i).getValue().getPrenom();
352
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
419
					if (i != auteurComboboxListe.size() -1) {
353
					mediateur.ajouterAuteurPublication(this, idAuteurs, "2360", idPublication);
420
						auteur += "|";
-
 
421
						idAuteurs += ",";
354
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
422
					}
-
 
423
				}
-
 
424
			}
-
 
425
			publication.setAuteur(auteur);
355
					mediateur.modifierAuteurPublication(this, idAuteurs, idPublication);
426
			
-
 
427
			String titre = nomArticle.getValue();
-
 
428
			publication.setTitre(titre);
-
 
429
			
-
 
430
			String collection = intituleCollPub.getValue();
-
 
431
			publication.setCollection(collection);
-
 
432
			
356
				}
433
			String nomComplet = nomArticle.getValue()+" "+intituleCollPub.getValue();
-
 
434
			publication.setNomComplet(nomComplet);
-
 
435
			
-
 
436
			String uri = uriPub.getValue();
-
 
437
			publication.setUri(uri);
-
 
438
			
-
 
439
			String editeur = "";
357
			}
440
			if (comboListeEditeurs.getValue() != null) {
-
 
441
				editeur = comboListeEditeurs.getValue().getId();
-
 
442
			} else if (comboListeEditeurs.getRawValue() != "") {
-
 
443
				editeur = comboListeEditeurs.getRawValue();
-
 
444
			}
Line -... Line 445...
-
 
445
			publication.setEditeur(editeur);
-
 
446
			
-
 
447
			String datePar = datePub.getRawValue();
358
				
448
			datePar = datePar+"-00-00";
359
			if (nouvellesInfos.getType().equals("auteur_valide")) {
449
			
-
 
450
			String tome = tomPub.getValue();
-
 
451
			publication.setIndicationNvt(tome);
360
				validationAuteurs = true;
452
			
-
 
453
			String fascicule = fasciculePub.getValue();
-
 
454
			publication.setFascicule(fascicule);
-
 
455
			
-
 
456
			String pages = pagesPub.getValue();
-
 
457
			publication.setPages(pages);
361
			}
458
			
362
			
459
 
363
			if (formValide && validationPublication && validationAuteurs && clicBoutonvalidation) {
460
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
364
				clicBoutonvalidation = false;
461
				mediateur.ajouterPublication(this, publication);
Line 365... Line 462...
365
				panneauFormulaire.setEnabled(false);
462
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
366
				mediateur.clicMenu(MenuApplicationId.PUBLICATION);
463
				mediateur.modifierPublication(this, publication);
-
 
464
			}
-
 
465
		}
367
			}
466
	}
368
		}
467
	
369
	}
468
	private boolean verifierFormulaire() {
370
	
-
 
371
	public void soumettreFormulaire(Rafraichissable vueARafraichir) {
-
 
372
		String auteur = "";
-
 
373
		String idAuteur = "";
469
		boolean valide = true;
374
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
-
 
375
			if (auteurComboboxListe.get(i).getValue() != null) {
470
		ArrayList<String> messages = new ArrayList<String>();
376
				idAuteur += auteurComboboxListe.get(i).getValue().getId();
471
		
377
				auteur += auteurComboboxListe.get(i).getValue().getNom()+ " "+auteurComboboxListe.get(i).getValue().getPrenom();
472
		boolean auteurErreur = false;
378
				if (i != auteurComboboxListe.size() -1) {
-
 
379
					auteur += "|";
473
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
380
					idAuteur += ",";
-
 
381
				}
-
 
382
			}
474
			if (auteurComboboxListe.get(i).getValue() != null) {
383
		}
-
 
384
		
-
 
385
		String erreurs = "";
-
 
386
		
-
 
387
		if (idAuteur == null || idAuteur.equals("")) {
-
 
388
			erreurs += "Veuillez entrer au moins un auteur ! ";
-
 
389
		} else {
-
 
390
			idAuteurs = idAuteur;
475
				auteurErreur = true;
Line 391... Line -...
391
		}
-
 
392
		
-
 
393
		String nomArt = nomArticle.getValue();
-
 
394
		if (nomArt == null || nomArt.equals("")) {
-
 
395
			erreurs += "Veuillez entrer le nom de l'article ! ";
476
				break;
396
		}
-
 
397
		
-
 
398
		String collPub = intituleCollPub.getValue();
-
 
399
		
-
 
400
		String pub = nomArticle.getValue()+" "+intituleCollPub.getValue();
-
 
401
		
-
 
402
		String uri = uriPub.getValue();
-
 
403
		
477
			}
404
		String editeur = "";
478
		}
405
		
-
 
406
		if (comboListeEditeurs.getValue() == null) {
479
		if (auteurErreur) {
Line 407... Line 480...
407
			//erreurs += "Veuillez sélectionner un éditeur ! ";
480
			messages.add("Veuillez saisir au moins un auteur !");
408
		} else {
481
		}
409
			editeur = comboListeEditeurs.getValue().getId();
482
		
410
			if(editeur == null || editeur.equals("")) {
483
		String titre = nomArticle.getValue();
411
				erreurs += "Veuillez sélectionner un éditeur ! ";
-
 
412
			}
484
		if (titre == null || titre.equals("")) {
413
		}
485
			messages.add("Veuillez saisir le titre de la publication !");
414
		
-
 
415
		String datePar = datePub.getRawValue();
-
 
416
		if (datePar == null || datePar.equals("")) {
486
		}
417
			erreurs += "Veuillez entrer une date ! ";
487
		
418
		} else {
-
 
419
			String resDate = analyserDate(datePar);
-
 
420
			if (resDate.equals("")) {
-
 
Line 421... Line 488...
421
				datePar = datePar+"-00-00";
488
		String datePar = datePub.getRawValue();
422
			} else {
-
 
423
				erreurs += resDate;
489
		if (datePar == null || datePar.equals("")) {
-
 
490
			messages.add("Veuillez saisir une date !");
424
			}
491
		} else {
425
		}
-
 
426
		String tome = tomPub.getValue();
492
			if (!etreDateValide(datePar)) {
427
 
-
 
428
		String fascicule = fasciculePub.getValue();
-
 
429
		
-
 
430
		String pages = pagesPub.getValue();
-
 
431
		
-
 
432
		if (erreurs.length() > 0) {
-
 
433
			MessageBox.alert("Erreur dans la saisie des champs", erreurs, null);
-
 
434
		} else {
493
				messages.add("Format de l'année saisie est incorrect");
-
 
494
			}
435
			formValide = true;
495
		}
Line 436... Line -...
436
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
-
 
437
				Publication publi = new Publication(pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
496
		
438
				mediateur.ajouterPublication(this, publi);
497
		if (messages.size() != 0) {
439
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
498
			String[] tableauDeMessages = {};
440
				Publication publi = new Publication(idPublication, idProjet, pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
499
			tableauDeMessages = messages.toArray(tableauDeMessages);
441
				mediateur.modifierPublication(this, publi);
500
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "\n\n"), null);
442
			}
501
			valide = false;
443
		}
502
		}
Line 444... Line 503...
444
	}
503
		return valide;		
-
 
504
	}
445
	
505
	
446
	
506
	protected void reinitialiserFormulaire() {
447
	protected void reinitialiserFormulaire() {
-
 
448
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
449
			mediateur.afficherFormPublication(publi.getId());
507
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
508
			mediateur.afficherFormPublication(publi.getId());
450
		} else {
509
		} else {
Line 451... Line 510...
451
			mediateur.afficherFormPublication(null);
510
			mediateur.afficherFormPublication(null);
452
		}
511
		}
453
	}
512
	}
Line 473... Line 532...
473
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
532
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
474
			@Override
533
			@Override
475
			public void componentSelected(ButtonEvent ce) {
534
			public void componentSelected(ButtonEvent ce) {
476
				String code = ((Button) ce.getComponent()).getData("code");
535
				String code = ((Button) ce.getComponent()).getData("code");
477
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
536
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
478
					soumettreFormulaire(renvoyerPublicationForm());
537
					soumettreFormulaire();
479
					clicBoutonvalidation = true;
538
					clicBoutonvalidation = true;
480
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
539
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
481
					soumettreFormulaire(renvoyerPublicationForm());
540
					soumettreFormulaire();
482
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
541
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
483
					mediateur.clicMenu(menuIdCourant);
542
					mediateur.clicMenu(menuIdCourant);
484
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
543
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
485
					reinitialiserFormulaire();
544
					reinitialiserFormulaire();
486
				}
545
				}
Line 488... Line 547...
488
		};
547
		};
Line 489... Line 548...
489
		
548
		
490
		return ecouteur;
549
		return ecouteur;
Line 491... Line -...
491
	}
-
 
492
	
-
 
493
	private PublicationForm renvoyerPublicationForm() {
-
 
494
		return this;
550
	}
495
	}
551