Subversion Repositories eFlore/Applications.del

Rev

Rev 320 | Rev 663 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
303 aurelien 1
package org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire;
2
 
3
import java.util.Date;
4
 
658 benjamin 5
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
6
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
303 aurelien 7
import org.tela_botanica.del.client.modeles.Commentaire;
658 benjamin 8
import org.tela_botanica.del.client.modeles.Observation;
303 aurelien 9
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
10
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
11
 
12
import com.google.gwt.event.dom.client.ClickEvent;
13
import com.google.gwt.event.dom.client.ClickHandler;
14
import com.google.gwt.event.dom.client.HasClickHandlers;
15
import com.google.gwt.user.client.ui.HasText;
16
import com.google.gwt.user.client.ui.HasWidgets;
17
import com.google.gwt.user.client.ui.IsWidget;
18
 
658 benjamin 19
public class FormulaireCommentairePresenteur extends Presenteur{
303 aurelien 20
 
658 benjamin 21
	private Observation observation;
303 aurelien 22
 
23
	public interface Vue extends IsWidget {
24
		public abstract HasText getNomPrenom();
25
		public abstract HasText getCommentaire();
26
		public abstract HasClickHandlers getBoutonValidationCommentaire();
658 benjamin 27
		public void afficherStyleErreur(String styleErreur);
28
		public void supprimerStyleErreur(String styleErreur);
303 aurelien 29
	}
30
 
31
	private Vue vue;
32
 
658 benjamin 33
	public FormulaireCommentairePresenteur(Observation observation, Vue vue) {
34
		this.observation = observation;
303 aurelien 35
		this.vue = vue;
36
	}
37
 
38
	public void go(HasWidgets composite) {
39
		composite.add(vue.asWidget());
658 benjamin 40
		gererEvenements();
303 aurelien 41
	}
42
 
43
	protected void gererEvenements() {
44
		vue.getBoutonValidationCommentaire().addClickHandler(new ClickHandler() {
45
 
46
			@Override
47
			public void onClick(ClickEvent event) {
658 benjamin 48
 
49
				if (!validerNomPrenom()||!validerCommentaire()) {
50
					return;
51
				}
52
 
303 aurelien 53
				String texteCommentaire = vue.getCommentaire().getText();
54
				String nomPrenom = vue.getNomPrenom().getText();
55
 
56
				Commentaire commentaire = new Commentaire(nomPrenom, new Date(), texteCommentaire);
658 benjamin 57
				observation.getInterventionsForum().add(commentaire);
303 aurelien 58
 
59
				BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire));
60
			}
61
		});
62
	}
658 benjamin 63
 
64
	private boolean validerNomPrenom() {
303 aurelien 65
 
658 benjamin 66
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) {
67
			@Override
68
			public void afficherStyleErreur(String styleErreur) {
69
				vue.afficherStyleErreur(styleErreur);
70
			}
71
 
72
			@Override
73
			public void supprimerStyleErreur(String styleErreur) {
74
				vue.supprimerStyleErreur(styleErreur);
75
			}
76
		};
77
		return validateurTaxon.valider();
78
	}
79
 
80
	private boolean validerCommentaire() {
81
 
82
		ValidateurChampTexteNonNul validateurCommentaire = new ValidateurChampTexteNonNul(vue.getCommentaire()) {
83
			@Override
84
			public void afficherStyleErreur(String styleErreur) {
85
				vue.afficherStyleErreur(styleErreur);
86
			}
87
 
88
			@Override
89
			public void supprimerStyleErreur(String styleErreur) {
90
				vue.supprimerStyleErreur(styleErreur);
91
			}
92
		};
93
		return validateurCommentaire.valider();
94
	}
95
 
303 aurelien 96
}