Subversion Repositories eFlore/Applications.del

Rev

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

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