Subversion Repositories eFlore/Applications.del

Rev

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

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