Subversion Repositories eFlore/Applications.del

Rev

Rev 1066 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1066 Rev 1075
1
package org.tela_botanica.del.client.composants.commentaires;
1
package org.tela_botanica.del.client.composants.commentaires;
2
 
2
 
3
import java.util.List;
3
import java.util.List;
-
 
4
 
-
 
5
import org.tela_botanica.del.client.cache.CacheClient;
-
 
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
-
 
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
-
 
8
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
4
 
9
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
5
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
-
 
11
import org.tela_botanica.del.client.modeles.Commentaire;
6
import org.tela_botanica.del.client.modeles.Commentaire;
12
import org.tela_botanica.del.client.modeles.InterventionForum;
-
 
13
import org.tela_botanica.del.client.modeles.PropositionDetermination;
-
 
14
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
-
 
15
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
7
import org.tela_botanica.del.client.modeles.PropositionDetermination;
16
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
-
 
17
import org.tela_botanica.del.client.services.rest.CommentaireService;
8
import org.tela_botanica.del.client.services.rest.CommentaireService;
18
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
-
 
19
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback;
-
 
20
 
-
 
21
import com.google.gwt.event.dom.client.ClickEvent;
9
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback;
22
import com.google.gwt.event.dom.client.ClickHandler;
10
 
23
import com.google.gwt.event.dom.client.HasClickHandlers;
11
import com.google.gwt.user.client.Window;
24
import com.google.gwt.user.client.Window;
12
import com.google.gwt.user.client.ui.HasWidgets;
25
import com.google.gwt.user.client.ui.HasWidgets;
13
import com.google.gwt.user.client.ui.IsWidget;
26
import com.google.gwt.user.client.ui.IsWidget;
14
 
27
 
15
/**
28
/**
16
 * Cette classe permet d'afficher une popup avec la liste des commentaires
29
 * Cette classe permet d'afficher une popup avec la liste des commentaires
17
 * associées à une proposition de determination
30
 * associées à une proposition de determination
18
 * 
31
 * 
19
 * @author LIENS
32
 * @author LIENS
20
 * 
33
 * 
21
 */
34
 */
22
public class DetailCommentairePresenteur extends Presenteur {
35
public class DetailCommentairePresenteur extends Presenteur {
23
 
36
 
24
	/**
37
	/**
25
	 * Interface de la vue correspondante
38
	 * Interface de la vue correspondante
26
	 * 
39
	 * 
27
	 * @author LIENS
40
	 * @author LIENS
28
	 * 
41
	 * 
29
	 */
42
	 */
30
	public interface Vue extends IsWidget {
43
	public interface Vue extends IsWidget {
31
		public void afficherCommentairesProposition(PropositionDetermination propositionDetermination);
44
		public void afficherCommentairesProposition(PropositionDetermination propositionDetermination);
32
 
45
 
33
		public void afficherAucuneDonnees();
46
		public void afficherAucuneDonnees();
34
 
47
 
35
		public void stopChargement();
48
		public void stopChargement();
36
 
49
 
37
		public void startChargement();
50
		public void startChargement();
-
 
51
		
-
 
52
		public HasClickHandlers getBoutonAjoutCommentaire();
38
	}
53
	}
39
 
54
 
40
	// La vue correspondante
55
	// La vue correspondante
41
	private Vue vue;
56
	private Vue vue;
42
 
57
 
43
	// La proposition de determination
58
	// La proposition de determination
44
	private PropositionDetermination propositionDetermination;
59
	private PropositionDetermination propositionDetermination;
45
	
60
	
46
	//le servcie de recuperation des commentaires
61
	//le servcie de recuperation des commentaires
47
	private CommentaireService commentaireService;
62
	private CommentaireService commentaireService;
48
 
63
 
49
	/**
64
	/**
50
	 * Constructeur
65
	 * Constructeur
51
	 * 
66
	 * 
52
	 * @param vue
67
	 * @param vue
53
	 * @param propositionDetermination
68
	 * @param propositionDetermination
54
	 */
69
	 */
55
	public DetailCommentairePresenteur(Vue vue, CommentaireService commentaireService, PropositionDetermination propositionDetermination) {
70
	public DetailCommentairePresenteur(Vue vue, CommentaireService commentaireService, PropositionDetermination propositionDetermination) {
56
		this.vue = vue;
71
		this.vue = vue;
57
		this.propositionDetermination = propositionDetermination;
72
		this.propositionDetermination = propositionDetermination;
58
		this.commentaireService = commentaireService;
73
		this.commentaireService = commentaireService;
59
	}
74
	}
60
 
75
 
61
	/**
76
	/**
62
	 * Declenchement du présenteur
77
	 * Declenchement du présenteur
63
	 */
78
	 */
64
	public void go(HasWidgets container) {
79
	public void go(HasWidgets container) {
65
		container.add(vue.asWidget());
80
		container.add(vue.asWidget());
-
 
81
		gererEvenements();
66
	}
82
	}
67
 
83
 
68
	/**
84
	/**
69
	 * Affichage des commentaires
85
	 * Affichage des commentaires
70
	 */
86
	 */
71
	public void afficherCommentaires() {
87
	public void afficherCommentaires() {
72
 
88
 
73
		// affichage de l'icone de chargement
89
		// affichage de l'icone de chargement
74
		vue.startChargement();
90
		vue.startChargement();
75
		
91
		
76
		// si l'id de la propostion est égal est nulle alors celle ci est une proposition
92
		// si l'id de la propostion est égal est nulle alors celle ci est une proposition
77
		// crée par l'interface à partir de l'obs et n'a donc pas de commentaires
93
		// crée par l'interface à partir de l'obs et n'a donc pas de commentaires
78
		if(propositionDetermination.getId() != null) {
94
		if(propositionDetermination.getId() != null) {
79
 
95
 
80
		// Appel du service
96
		// Appel du service
81
		commentaireService.chargerCommentaires(propositionDetermination, new ListeCommentairesCallback() {
97
		commentaireService.chargerCommentaires(propositionDetermination, new ListeCommentairesCallback() {
82
 
98
 
83
			@Override
99
			@Override
84
			public void surRetour(List<Commentaire> commentaires) {
100
			public void surRetour(List<Commentaire> commentaires) {
85
 
101
 
86
				propositionDetermination.setListeCommentaires(commentaires);
102
				propositionDetermination.setListeCommentaires(commentaires);
87
				
103
				
88
				// s'il existe des commentaires ils sont affichés
104
				// s'il existe des commentaires ils sont affichés
89
				if (propositionDetermination.getTotalCommentaires() > 0) {
105
				if (propositionDetermination.getTotalCommentaires() > 0) {
90
 
106
 
91
					// affichage des commentaires associés à la proposition dans
107
					// affichage des commentaires associés à la proposition dans
92
					// la vue
108
					// la vue
93
					vue.afficherCommentairesProposition(propositionDetermination);
109
					vue.afficherCommentairesProposition(propositionDetermination);
94
 
110
 
95
					// supression de l'icone de chargement
111
					// supression de l'icone de chargement
96
					vue.stopChargement();
112
					vue.stopChargement();
97
				} else {
113
				} else {
98
 
114
 
99
					// affichage d'un message precisant qu'il n'y a pas de
115
					// affichage d'un message precisant qu'il n'y a pas de
100
					// commentaires
116
					// commentaires
101
					vue.afficherAucuneDonnees();
117
					vue.afficherAucuneDonnees();
102
 
118
 
103
					// supression de l'icone de chargement
119
					// supression de l'icone de chargement
104
					vue.stopChargement();
120
					vue.stopChargement();
105
				}
121
				}
106
 
122
 
107
			}
123
			}
108
 
124
 
109
			@Override
125
			@Override
110
			public void surErreur(String messageErreur) {
126
			public void surErreur(String messageErreur) {
111
				Window.alert(messageErreur);
127
				Window.alert(messageErreur);
112
				vue.stopChargement();
128
				vue.stopChargement();
113
			}
129
			}
114
		});
130
		});
115
		} else {
131
		} else {
116
			// affichage d'un message precisant qu'il n'y a pas de
132
			// affichage d'un message precisant qu'il n'y a pas de
117
			// commentaires
133
			// commentaires
118
			vue.afficherAucuneDonnees();
134
			vue.afficherAucuneDonnees();
119
 
135
 
120
			// supression de l'icone de chargement
136
			// supression de l'icone de chargement
121
			vue.stopChargement();
137
			vue.stopChargement();
122
		}
138
		}
123
	}
139
	}
124
 
140
 
125
	/**
141
	/**
126
	 * Gestion des evenements du presenteur
142
	 * Gestion des evenements du presenteur
127
	 */
143
	 */
128
	@Override
144
	@Override
129
	protected void gererEvenements() {
145
	protected void gererEvenements() {
-
 
146
		
-
 
147
		final FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
148
 
-
 
149
		vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
-
 
150
			@Override
-
 
151
			public void onClick(ClickEvent event) {
-
 
152
				// TODO : > mettre proprement l'intervention
-
 
153
				// TODO : >actualiser les affichages
-
 
154
				CacheClient.getInstance().setObservationCourante(propositionDetermination.getObservation());
130
		// TODO Auto-generated method stub
155
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(propositionDetermination.getObservation().getInterventionsForum().get(propositionDetermination.getObservation().getInterventionsForum().size()-1), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
-
 
156
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
-
 
157
			}
-
 
158
		});
-
 
159
		
-
 
160
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
-
 
161
 
-
 
162
			@Override
-
 
163
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
-
 
164
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
-
 
165
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
-
 
166
				}
-
 
167
			}
-
 
168
		});
131
	}
169
	}
132
}
170
}