Subversion Repositories eFlore/Applications.del

Rev

Rev 663 | Rev 690 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 663 Rev 685
1
package org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire;
1
package org.tela_botanica.del.client.composants.formulaires.formulairecommentaire;
2
 
2
 
3
import java.util.Date;
3
import java.util.Date;
4
 
4
 
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
6
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
7
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
7
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
8
import org.tela_botanica.del.client.modeles.Commentaire;
8
import org.tela_botanica.del.client.modeles.Commentaire;
9
import org.tela_botanica.del.client.modeles.Observation;
9
import org.tela_botanica.del.client.modeles.Observation;
10
import org.tela_botanica.del.client.modeles.PossesseurDeCommentaires;
10
import org.tela_botanica.del.client.modeles.PossesseurDeCommentaires;
11
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
11
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
12
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
12
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
13
 
13
 
14
import com.google.gwt.event.dom.client.ClickEvent;
14
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickHandler;
15
import com.google.gwt.event.dom.client.ClickHandler;
16
import com.google.gwt.event.dom.client.HasClickHandlers;
16
import com.google.gwt.event.dom.client.HasClickHandlers;
17
import com.google.gwt.user.client.ui.HasText;
17
import com.google.gwt.user.client.ui.HasText;
18
import com.google.gwt.user.client.ui.HasWidgets;
18
import com.google.gwt.user.client.ui.HasWidgets;
19
import com.google.gwt.user.client.ui.IsWidget;
19
import com.google.gwt.user.client.ui.IsWidget;
20
 
20
 
21
public class FormulaireCommentairePresenteur extends Presenteur {
21
public class FormulaireCommentairePresenteur extends Presenteur {
22
 
22
 
23
	// le meme presenteur gere les commentaires pour les observations et pour
23
	// le meme presenteur gere les commentaires pour les observations et pour
24
	// les possesseurs de commentaires, mais la logique est differente, d'ou la
24
	// les possesseurs de commentaires, mais la logique est differente, d'ou la
25
	// necessité de separer les deux objets metiers
25
	// necessité de separer les deux objets metiers
26
	private Observation observation;
26
	private Observation observation;
27
 
27
 
28
	private PossesseurDeCommentaires possesseurDeCommentaires;
28
	private PossesseurDeCommentaires possesseurDeCommentaires;
29
 
29
 
30
	public interface Vue extends IsWidget {
30
	public interface Vue extends IsWidget {
31
		public abstract HasText getNomPrenom();
31
		public abstract HasText getNomPrenom();
32
 
32
 
33
		public abstract HasText getCommentaire();
33
		public abstract HasText getCommentaire();
34
 
34
 
35
		public abstract HasClickHandlers getBoutonValidationCommentaire();
35
		public abstract HasClickHandlers getBoutonValidationCommentaire();
36
 
36
 
37
		public void afficherStyleErreur(String styleErreur);
37
		public void afficherStyleErreur(String styleErreur);
38
 
38
 
39
		public void supprimerStyleErreur(String styleErreur);
39
		public void supprimerStyleErreur(String styleErreur);
40
 
40
 
41
		void afficherNomPrenomEtDesactiver(String nomPrenomFormate);
41
		void afficherNomPrenomEtDesactiver(String nomPrenomFormate);
42
	}
42
	}
43
 
43
 
44
	private Vue vue;
44
	private Vue vue;
45
 
45
 
46
	public FormulaireCommentairePresenteur(Observation observation, Vue vue) {
46
	public FormulaireCommentairePresenteur(Observation observation, Vue vue) {
47
		this.observation = observation;
47
		this.observation = observation;
48
		this.vue = vue;
48
		this.vue = vue;
49
	}
49
	}
50
 
50
 
51
	public FormulaireCommentairePresenteur(PossesseurDeCommentaires possesseurDeCommentaires, Vue vue) {
51
	public FormulaireCommentairePresenteur(PossesseurDeCommentaires possesseurDeCommentaires, Vue vue) {
52
		this.possesseurDeCommentaires = possesseurDeCommentaires;
52
		this.possesseurDeCommentaires = possesseurDeCommentaires;
53
		this.vue = vue;
53
		this.vue = vue;
54
	}
54
	}
55
 
55
 
56
	public void go(HasWidgets composite) {
56
	public void go(HasWidgets composite) {
57
		remplirAvecInfosUtilisateur();
57
		remplirAvecInfosUtilisateur();
58
		composite.add(vue.asWidget());
58
		composite.add(vue.asWidget());
59
		gererEvenements();
59
		gererEvenements();
60
	}
60
	}
61
 
61
 
62
	private void remplirAvecInfosUtilisateur() {
62
	private void remplirAvecInfosUtilisateur() {
63
		if (CacheClient.getInstance().getUtilisateur().estIdentifie()) {
63
		if (CacheClient.getInstance().getUtilisateur().estIdentifie()) {
64
			vue.afficherNomPrenomEtDesactiver(CacheClient.getInstance().getUtilisateur().getNomPrenomFormate());
64
			vue.afficherNomPrenomEtDesactiver(CacheClient.getInstance().getUtilisateur().getNomPrenomFormate());
65
		}
65
		}
66
	}
66
	}
67
 
67
 
68
	protected void gererEvenements() {
68
	protected void gererEvenements() {
69
		vue.getBoutonValidationCommentaire().addClickHandler(new ClickHandler() {
69
		vue.getBoutonValidationCommentaire().addClickHandler(new ClickHandler() {
70
 
70
 
71
			@Override
71
			@Override
72
			public void onClick(ClickEvent event) {
72
			public void onClick(ClickEvent event) {
73
 
73
 
74
				if (!validerNomPrenom() || !validerCommentaire()) {
74
				if (!validerNomPrenom() || !validerCommentaire()) {
75
					return;
75
					return;
76
				}
76
				}
77
 
-
 
78
				String texteCommentaire = vue.getCommentaire().getText();
-
 
79
				String nomPrenom = vue.getNomPrenom().getText();
-
 
80
 
-
 
81
				Commentaire commentaire = new Commentaire(nomPrenom, new Date(), texteCommentaire);
-
 
82
 
77
 
83
				if (observation != null) {
-
 
84
					observation.getInterventionsForum().add(commentaire);
-
 
85
				} else if (possesseurDeCommentaires != null) {
-
 
86
					possesseurDeCommentaires.getListeCommentaires().add(commentaire);
-
 
87
				}
-
 
88
 
-
 
89
				BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire));
78
				surValidationCommentaire();
90
			}
79
			}
91
		});
80
		});
92
	}
81
	}
-
 
82
	
-
 
83
	public void surValidationCommentaire() {
-
 
84
		
-
 
85
		String texteCommentaire = vue.getCommentaire().getText();
-
 
86
		String nomPrenom = vue.getNomPrenom().getText();
-
 
87
 
-
 
88
		Commentaire commentaire = new Commentaire(nomPrenom, new Date(), texteCommentaire);
-
 
89
 
-
 
90
		if (observation != null) {
-
 
91
			observation.getInterventionsForum().add(commentaire);
-
 
92
		} else if (possesseurDeCommentaires != null) {
-
 
93
			possesseurDeCommentaires.getListeCommentaires().add(commentaire);
-
 
94
		}
-
 
95
 
-
 
96
		BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire));
-
 
97
	}
93
 
98
 
94
	private boolean validerNomPrenom() {
99
	private boolean validerNomPrenom() {
95
 
100
 
96
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) {
101
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) {
97
			@Override
102
			@Override
98
			public void afficherStyleErreur(String styleErreur) {
103
			public void afficherStyleErreur(String styleErreur) {
99
				vue.afficherStyleErreur(styleErreur);
104
				vue.afficherStyleErreur(styleErreur);
100
			}
105
			}
101
 
106
 
102
			@Override
107
			@Override
103
			public void supprimerStyleErreur(String styleErreur) {
108
			public void supprimerStyleErreur(String styleErreur) {
104
				vue.supprimerStyleErreur(styleErreur);
109
				vue.supprimerStyleErreur(styleErreur);
105
			}
110
			}
106
		};
111
		};
107
		return validateurTaxon.valider();
112
		return validateurTaxon.valider();
108
	}
113
	}
109
 
114
 
110
	private boolean validerCommentaire() {
115
	private boolean validerCommentaire() {
111
 
116
 
112
		ValidateurChampTexteNonNul validateurCommentaire = new ValidateurChampTexteNonNul(vue.getCommentaire()) {
117
		ValidateurChampTexteNonNul validateurCommentaire = new ValidateurChampTexteNonNul(vue.getCommentaire()) {
113
			@Override
118
			@Override
114
			public void afficherStyleErreur(String styleErreur) {
119
			public void afficherStyleErreur(String styleErreur) {
115
				vue.afficherStyleErreur(styleErreur);
120
				vue.afficherStyleErreur(styleErreur);
116
			}
121
			}
117
 
122
 
118
			@Override
123
			@Override
119
			public void supprimerStyleErreur(String styleErreur) {
124
			public void supprimerStyleErreur(String styleErreur) {
120
				vue.supprimerStyleErreur(styleErreur);
125
				vue.supprimerStyleErreur(styleErreur);
121
			}
126
			}
122
		};
127
		};
123
		return validateurCommentaire.valider();
128
		return validateurCommentaire.valider();
124
	}
129
	}
125
 
130
 
126
}
131
}