Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
922 benjamin 1
package org.tela_botanica.del.client.composants.commentaires;
2
 
926 benjamin 3
import java.util.List;
922 benjamin 4
 
5
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
926 benjamin 6
import org.tela_botanica.del.client.modeles.Commentaire;
922 benjamin 7
import org.tela_botanica.del.client.modeles.PropositionDetermination;
939 benjamin 8
import org.tela_botanica.del.client.services.rest.CommentaireService;
926 benjamin 9
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
939 benjamin 10
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback;
922 benjamin 11
 
12
import com.google.gwt.user.client.Window;
13
import com.google.gwt.user.client.ui.HasWidgets;
14
import com.google.gwt.user.client.ui.IsWidget;
15
 
939 benjamin 16
/**
17
 * Cette classe permet d'afficher une popup avec la liste des commentaires
18
 * associées à une proposition de determination
19
 *
20
 * @author LIENS
21
 *
22
 */
922 benjamin 23
public class DetailCommentairePresenteur extends Presenteur {
24
 
939 benjamin 25
	/**
26
	 * Interface de la vue correspondante
27
	 *
28
	 * @author LIENS
29
	 *
30
	 */
922 benjamin 31
	public interface Vue extends IsWidget {
32
		public void afficherCommentairesProposition(PropositionDetermination propositionDetermination);
33
 
939 benjamin 34
		public void afficherAucuneDonnees();
922 benjamin 35
 
939 benjamin 36
		public void stopChargement();
926 benjamin 37
 
939 benjamin 38
		public void startChargement();
922 benjamin 39
	}
40
 
939 benjamin 41
	// La vue correspondante
922 benjamin 42
	private Vue vue;
43
 
939 benjamin 44
	// La proposition de determination
922 benjamin 45
	private PropositionDetermination propositionDetermination;
46
 
939 benjamin 47
	/**
48
	 * Constructeur
49
	 *
50
	 * @param vue
51
	 * @param propositionDetermination
52
	 */
922 benjamin 53
	public DetailCommentairePresenteur(Vue vue, PropositionDetermination propositionDetermination) {
54
		this.vue = vue;
55
		this.propositionDetermination = propositionDetermination;
56
	}
57
 
939 benjamin 58
	/**
59
	 * Declenchement du présenteur
60
	 */
922 benjamin 61
	public void go(HasWidgets container) {
62
		container.add(vue.asWidget());
63
	}
64
 
939 benjamin 65
	/**
66
	 * Affichage des commentaires
67
	 */
922 benjamin 68
	public void afficherCommentaires() {
939 benjamin 69
 
70
		// affichage de l'icone de chargement
922 benjamin 71
		vue.startChargement();
926 benjamin 72
 
939 benjamin 73
		// Appel du service
74
		CommentaireService commentaireService = new CommentaireServiceConcret();
75
		commentaireService.chargerCommentaires(propositionDetermination, new ListeCommentairesCallback() {
76
 
922 benjamin 77
			@Override
939 benjamin 78
			public void surRetour(List<Commentaire> commentaires) {
79
 
926 benjamin 80
				propositionDetermination.setListeCommentaires(commentaires);
939 benjamin 81
 
82
				// s'il existe des commentaires ils sont affichés
83
				if (propositionDetermination.getTotalCommentaires() > 0) {
84
 
85
					// affichage des commentaires associés à la proposition dans
86
					// la vue
922 benjamin 87
					vue.afficherCommentairesProposition(propositionDetermination);
939 benjamin 88
 
89
					// supression de l'icone de chargement
922 benjamin 90
					vue.stopChargement();
91
				} else {
939 benjamin 92
 
93
					// affichage d'un message precisant qu'il n'y a pas de
94
					// commentaires
926 benjamin 95
					vue.afficherAucuneDonnees();
939 benjamin 96
 
97
					// supression de l'icone de chargement
922 benjamin 98
					vue.stopChargement();
99
				}
100
 
101
			}
102
 
103
			@Override
104
			public void surErreur(String messageErreur) {
105
				Window.alert(messageErreur);
106
				vue.stopChargement();
107
			}
108
		});
109
	}
110
 
939 benjamin 111
	/**
112
	 * Gestion des evenements du presenteur
113
	 */
922 benjamin 114
	@Override
115
	protected void gererEvenements() {
116
		// TODO Auto-generated method stub
117
	}
118
}