Subversion Repositories eFlore/Applications.coel

Rev

Rev 781 | Rev 786 | Go to most recent revision | Show entire file | Regard 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
	
Line -... Line 88...
-
 
88
	protected boolean listePersonneAuteurInitialisee = false;
-
 
89
	protected boolean listeAuteurPublicationInitialisee = false;
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 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) {
Line 289... Line 321...
289
			publi = (Publication) nouvellesDonnees;
321
		publi = publication;
290
			
322
		
291
			genererChampsAuteur(true);
323
		genererChampsAuteur(true);
292
			nomArticle.setValue(publi.getTitre());
324
		nomArticle.setValue(publi.getTitre());
Line 296... Line 328...
296
			tomPub.setValue(publi.getIndicationNvt());
328
		tomPub.setValue(publi.getIndicationNvt());
297
			fasciculePub.setValue(publi.getFascicule());
329
		fasciculePub.setValue(publi.getFascicule());
298
			pagesPub.setValue(publi.getPages());
330
		pagesPub.setValue(publi.getPages());
299
			idPublication = publi.getId();
331
		idPublication = publi.getId();
300
			idStructureEdition = publi.getEditeur();
332
		idStructureEdition = publi.getEditeur();
301
			idProjet = publi.getProjet() ;
333
		idProjet = publi.getIdProjet() ;
302
		}
334
	}
Line 303... Line -...
303
		
-
 
304
		// Si on a reçu une liste des editeurs
335
	
305
		if (nouvellesDonnees instanceof StructureListe) {
336
	private void rafraichirListeEditeurs(StructureListe editeurs) {
306
			storeEditeurs.removeAll();
-
 
307
			StructureListe listeStructure = (StructureListe) nouvellesDonnees;
337
		storeEditeurs.removeAll();
Line 308... Line 338...
308
			storeEditeurs.add((List<Structure>) listeStructure.toList());
338
		storeEditeurs.add((List<Structure>) editeurs.toList());
309
			
339
		
310
			if (mode.equals(Formulaire.MODE_MODIFIER)) {	
340
		if (mode.equals(Formulaire.MODE_MODIFIER)) {	
311
				comboListeEditeurs.setValue((Structure) listeStructure.get(idStructureEdition));
341
			comboListeEditeurs.setValue((Structure) editeurs.get(idStructureEdition));
312
			}
342
		}
Line 313... Line 343...
313
			comboListeEditeurs.expand();
343
		comboListeEditeurs.expand();
314
		}
344
	}
Line 315... Line 345...
315
		
345
	
316
		if (nouvellesDonnees instanceof PublicationAPersonneListe) {
346
	private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
317
			pubAPersonneListeAuteur = (PublicationAPersonneListe) nouvellesDonnees;
347
		pubAPersonneListeAuteur = auteurs;
318
			
348
		
319
			if (listeAuteurInitialisee) {
349
		if (listePersonneAuteurInitialisee) {
Line 331... Line 361...
331
				}
361
			}
332
				listeAuteurPublicationInitialisee = true;
362
			listeAuteurPublicationInitialisee = true;
333
			}
363
		}
334
		}
364
	}
Line 335... Line 365...
335
		
365
	
336
		if (nouvellesDonnees instanceof Information) {
366
	private void rafraichirInformation(Information info) {
337
			Information nouvellesInfos = (Information)nouvellesDonnees;
-
 
338
			
367
		if (info.getType().equals("liste_personne")) {
339
			if (nouvellesInfos.getType().equals("liste_personne")) {
368
			listePersonneAuteurInitialisee = true;
340
				listePersonneAuteur = (PersonneListe) nouvellesInfos.getDonnee(0);
369
			listePersonneAuteur = (PersonneListe) info.getDonnee(0);
341
				List<Personne> liste = listePersonneAuteur.toList();
370
			List<Personne> liste = listePersonneAuteur.toList();
342
				auteursStorePartage.removeAll();
371
			auteursStorePartage.removeAll();
343
				auteursStorePartage.add(liste);
-
 
344
				GWT.log("ok", null);
-
 
345
				listeAuteurInitialisee = true;
-
 
346
			}
-
 
347
			
372
			auteursStorePartage.add(liste);
348
			if (nouvellesInfos.getType().equals("publication_valide")) {
373
		} else if (info.getType().equals("publication_valide")) {
349
				validationPublication = true;
374
			validationPublication = true;
Line 350... Line 375...
350
				idPublication = ""+nouvellesInfos.getDonnee(0);
375
			idPublication = (String) info.getDonnee(0);
351
				
376
			
352
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
377
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
353
					mediateur.ajouterAuteurPublication(this, idAuteurs, "2360", idPublication);
378
				mediateur.ajouterAuteurPublication(this, idAuteurs, PublicationAPersonne.ROLE_AUTEUR, idPublication);
354
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
379
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
380
				mediateur.modifierAuteurPublication(this, idAuteurs, idPublication);
-
 
381
			}
-
 
382
		} else if (info.getType().equals("auteur_valide")) {
355
					mediateur.modifierAuteurPublication(this, idAuteurs, idPublication);
383
			validationAuteurs = true;
Line -... Line 384...
-
 
384
		}
-
 
385
	}
356
				}
386
	
357
			}
387
	private Boolean etreValide() {
-
 
388
		Boolean valide = false;
-
 
389
		if (formValide && validationPublication && validationAuteurs) {
358
				
390
			valide = true;
Line 359... Line 391...
359
			if (nouvellesInfos.getType().equals("auteur_valide")) {
391
		}
360
				validationAuteurs = true;
392
		return valide;
361
			}
393
	}
362
			
394
	
363
			if (formValide && validationPublication && validationAuteurs && clicBoutonvalidation) {
395
	private void reinitialiserValidation() {
-
 
396
		formValide = false;
-
 
397
		validationPublication = false;
-
 
398
		validationAuteurs = false;
-
 
399
	}
-
 
400
	
-
 
401
	private void repandreRafraichissement() {
364
				clicBoutonvalidation = false;
402
		if (vueExterneARafraichirApresValidation != null) {
365
				panneauFormulaire.setEnabled(false);
403
			Information info = new Information("");
Line 366... Line 404...
366
				mediateur.clicMenu(MenuApplicationId.PUBLICATION);
404
			
-
 
405
			vueExterneARafraichirApresValidation.rafraichir(info);
-
 
406
		}
-
 
407
	}
-
 
408
	
367
			}
409
	public void soumettreFormulaire() {
368
		}
-
 
369
	}
410
		formValide = verifierFormulaire();
370
	
411
		if (formValide) {
371
	public void soumettreFormulaire(Rafraichissable vueARafraichir) {
412
			Publication publication = new Publication();
372
		String auteur = "";
413
			
373
		String idAuteur = "";
414
			String auteur = "";
374
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
415
			for (int i = 0; i < auteurComboboxListe.size(); i++) {
375
			if (auteurComboboxListe.get(i).getValue() != null) {
416
				if (auteurComboboxListe.get(i).getValue() != null) {
376
				idAuteur += auteurComboboxListe.get(i).getValue().getId();
417
					idAuteurs += auteurComboboxListe.get(i).getValue().getId();
377
				auteur += auteurComboboxListe.get(i).getValue().getNom()+ " "+auteurComboboxListe.get(i).getValue().getPrenom();
418
					auteur += auteurComboboxListe.get(i).getValue().getNom()+ " "+auteurComboboxListe.get(i).getValue().getPrenom();
378
				if (i != auteurComboboxListe.size() -1) {
419
					if (i != auteurComboboxListe.size() -1) {
-
 
420
						auteur += "|";
Line 379... Line 421...
379
					auteur += "|";
421
						idAuteurs += ",";
-
 
422
					}
Line 380... Line 423...
380
					idAuteur += ",";
423
				}
381
				}
424
			}
382
			}
-
 
383
		}
-
 
384
		
-
 
Line 385... Line 425...
385
		String erreurs = "";
425
			publication.setAuteur(auteur);
386
		
-
 
387
		if (idAuteur == null || idAuteur.equals("")) {
-
 
388
			erreurs += "Veuillez entrer au moins un auteur ! ";
-
 
389
		} else {
-
 
390
			idAuteurs = idAuteur;
426
			
391
		}
-
 
392
		
-
 
Line 393... Line 427...
393
		String nomArt = nomArticle.getValue();
427
			String titre = nomArticle.getValue();
-
 
428
			publication.setTitre(titre);
Line 394... Line 429...
394
		if (nomArt == null || nomArt.equals("")) {
429
			
395
			erreurs += "Veuillez entrer le nom de l'article ! ";
-
 
396
		}
430
			String collection = intituleCollPub.getValue();
397
		
-
 
398
		String collPub = intituleCollPub.getValue();
-
 
399
		
431
			publication.setCollection(collection);
400
		String pub = nomArticle.getValue()+" "+intituleCollPub.getValue();
432
			
401
		
433
			String nomComplet = nomArticle.getValue()+" "+intituleCollPub.getValue();
402
		String uri = uriPub.getValue();
-
 
403
		
434
			publication.setNomComplet(nomComplet);
-
 
435
			
Line 404... Line 436...
404
		String editeur = "";
436
			String uri = uriPub.getValue();
405
		
-
 
406
		if (comboListeEditeurs.getValue() == null) {
-
 
407
			//erreurs += "Veuillez sélectionner un éditeur ! ";
-
 
408
		} else {
-
 
409
			editeur = comboListeEditeurs.getValue().getId();
-
 
410
			if(editeur == null || editeur.equals("")) {
437
			publication.setUri(uri);
411
				erreurs += "Veuillez sélectionner un éditeur ! ";
-
 
412
			}
-
 
413
		}
-
 
414
		
438
			
415
		String datePar = datePub.getRawValue();
439
			String editeur = "";
-
 
440
			if (comboListeEditeurs.getValue() != null) {
Line 416... Line 441...
416
		if (datePar == null || datePar.equals("")) {
441
				editeur = comboListeEditeurs.getValue().getId();
-
 
442
			} else if (comboListeEditeurs.getRawValue() != "") {
Line 417... Line 443...
417
			erreurs += "Veuillez entrer une date ! ";
443
				editeur = comboListeEditeurs.getRawValue();
-
 
444
			}
-
 
445
			publication.setEditeur(editeur);
Line 418... Line -...
418
		} else {
-
 
419
			String resDate = analyserDate(datePar);
-
 
420
			if (resDate.equals("")) {
-
 
421
				datePar = datePar+"-00-00";
-
 
422
			} else {
446
			
423
				erreurs += resDate;
-
 
424
			}
447
			String datePar = datePub.getRawValue();
425
		}
448
			datePar = datePar+"-00-00";
426
		String tome = tomPub.getValue();
-
 
427
 
449
			
-
 
450
			String tome = tomPub.getValue();
-
 
451
			publication.setIndicationNvt(tome);
-
 
452
			
-
 
453
			String fascicule = fasciculePub.getValue();
-
 
454
			publication.setFascicule(fascicule);
-
 
455
			
-
 
456
			String pages = pagesPub.getValue();
-
 
457
			publication.setPages(pages);
-
 
458
			
-
 
459
 
-
 
460
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
-
 
461
				mediateur.ajouterPublication(this, publication);
-
 
462
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
428
		String fascicule = fasciculePub.getValue();
463
				mediateur.modifierPublication(this, publication);
429
		
464
			}
-
 
465
		}
-
 
466
	}
430
		String pages = pagesPub.getValue();
467
	
Line -... Line 468...
-
 
468
	private boolean verifierFormulaire() {
-
 
469
		boolean valide = true;
-
 
470
		ArrayList<String> messages = new ArrayList<String>();
-
 
471
		
-
 
472
		boolean auteurErreur = false;
-
 
473
		for (int i = 0; i < auteurComboboxListe.size(); i++) {
-
 
474
			if (auteurComboboxListe.get(i).getValue() != null) {
-
 
475
				auteurErreur = true;
-
 
476
				break;
-
 
477
			}
-
 
478
		}
-
 
479
		if (auteurErreur) {
-
 
480
			messages.add("Veuillez saisir au moins un auteur !");
-
 
481
		}
-
 
482
		
-
 
483
		String titre = nomArticle.getValue();
-
 
484
		if (titre == null || titre.equals("")) {
-
 
485
			messages.add("Veuillez saisir le titre de la publication !");
-
 
486
		}
-
 
487
		
-
 
488
		String datePar = datePub.getRawValue();
-
 
489
		if (datePar == null || datePar.equals("")) {
Line 431... Line 490...
431
		
490
			messages.add("Veuillez saisir une date !");
432
		if (erreurs.length() > 0) {
491
		} else {
433
			MessageBox.alert("Erreur dans la saisie des champs", erreurs, null);
492
			if (!etreDateValide(datePar)) {
434
		} else {
493
				messages.add("Format de l'année saisie est incorrect");
435
			formValide = true;
494
			}
436
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
495
		}
437
				Publication publi = new Publication(pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
496
		
Line 438... Line 497...
438
				mediateur.ajouterPublication(this, publi);
497
		if (messages.size() != 0) {
-
 
498
			String[] tableauDeMessages = {};
439
			} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
499
			tableauDeMessages = messages.toArray(tableauDeMessages);
440
				Publication publi = new Publication(idPublication, idProjet, pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
500
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "\n\n"), null);
441
				mediateur.modifierPublication(this, publi);
-
 
442
			}
-
 
443
		}
501
			valide = false;
-
 
502
		}
444
	}
503
		return valide;		
Line 445... Line 504...
445
	
504
	}
446
	
505
	
447
	protected void reinitialiserFormulaire() {
506
	protected void reinitialiserFormulaire() {
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