Subversion Repositories eFlore/Applications.del

Rev

Rev 926 | Rev 965 | 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
 
3
import java.util.List;
4
 
5
import org.tela_botanica.del.client.i18n.I18n;
6
import org.tela_botanica.del.client.modeles.Commentaire;
7
import org.tela_botanica.del.client.modeles.PropositionDetermination;
8
 
9
import com.google.gwt.core.client.GWT;
10
import com.google.gwt.uibinder.client.UiBinder;
11
import com.google.gwt.uibinder.client.UiField;
12
import com.google.gwt.user.client.ui.Composite;
13
import com.google.gwt.user.client.ui.FlexTable;
14
import com.google.gwt.user.client.ui.HTMLPanel;
15
import com.google.gwt.user.client.ui.Panel;
16
import com.google.gwt.user.client.ui.Widget;
17
 
939 benjamin 18
/**
19
 * Cette classe permet d'afficher une popup avec la liste des commentaires
20
 * associées à une proposition de determination
21
 *
22
 * @author LIENS
23
 *
24
 */
922 benjamin 25
public class DetailCommentaireVue extends Composite implements DetailCommentairePresenteur.Vue {
26
 
27
	private static DetailListeVotesDeterminationVueUIiBinder uiBinder = GWT.create(DetailListeVotesDeterminationVueUIiBinder.class);
28
 
29
	interface DetailListeVotesDeterminationVueUIiBinder extends UiBinder<Widget, DetailCommentaireVue> {
30
	};
31
 
32
	@UiField
926 benjamin 33
	HTMLPanel titre, aucuneDonnees;
922 benjamin 34
 
35
	@UiField
36
	Panel panneauChargement;
37
 
38
	@UiField
39
	FlexTable htmlTableau;
40
 
41
	public DetailCommentaireVue() {
42
		initWidget(uiBinder.createAndBindUi(this));
43
	}
44
 
939 benjamin 45
	/**
46
	 * Affiche les commentaires associées à une proposition de determination
47
	 */
922 benjamin 48
	@Override
49
	public void afficherCommentairesProposition(PropositionDetermination propositionDetermination) {
50
 
51
		htmlTableau.clear();
52
		creerEntetes();
53
 
54
		if (propositionDetermination.getCommentaire() != null && propositionDetermination.getCommentaire() != "") {
55
			htmlTableau.setHTML(2, 1, propositionDetermination.getAuteur());
56
			htmlTableau.setHTML(2, 2, propositionDetermination.getCommentaire());
57
			htmlTableau.setHTML(2, 3, propositionDetermination.getDate() + "");
58
		}
59
 
60
		creerListeCommentaireRecursive(propositionDetermination.getListeCommentaires());
61
	}
62
 
939 benjamin 63
	/**
64
	 * Affiche une liste de commentaires recursivement
65
	 * @param commentaires
66
	 */
922 benjamin 67
	private void creerListeCommentaireRecursive(List<Commentaire> commentaires) {
68
 
69
		for (Commentaire commentaire : commentaires) {
70
			chargerCommentaire(commentaire);
71
			if (commentaire.getListeCommentaires().size() > 0) {
72
				creerListeCommentaireRecursive(commentaire.getListeCommentaires());
73
			}
74
		}
75
	}
76
 
939 benjamin 77
	/**
78
	 * Affiche un commentaire
79
	 * @param commentaire
80
	 */
922 benjamin 81
	private void chargerCommentaire(Commentaire commentaire) {
82
		int ligne = htmlTableau.getRowCount() + 1;
83
		htmlTableau.setHTML(ligne, 1, commentaire.getAuteur());
84
		htmlTableau.setHTML(ligne, 2, commentaire.getCommentaire());
85
		htmlTableau.setHTML(ligne, 3, commentaire.getDate() + "");
86
	}
87
 
939 benjamin 88
	/**
89
	 * Affiche les en-têtes du tableau de commentaires
90
	 */
922 benjamin 91
	private void creerEntetes() {
92
		htmlTableau.setHTML(1, 1, I18n.getVocabulary().contributeur());
93
		htmlTableau.setHTML(1, 2, I18n.getVocabulary().commentaire());
94
		htmlTableau.setHTML(1, 3, I18n.getVocabulary().date());
95
	}
96
 
939 benjamin 97
	/**
98
	 * Affiche un icone de début de chargement
99
	 */
922 benjamin 100
	@Override
101
	public void startChargement() {
102
		panneauChargement.setHeight((this.getOffsetHeight() / 2) + "px");
103
		panneauChargement.setWidth((this.getOffsetWidth() / 2) + "px");
104
		panneauChargement.setVisible(true);
105
	}
106
 
939 benjamin 107
	/**
108
	 * Cache l'icone de début de chargement
109
	 */
922 benjamin 110
	@Override
111
	public void stopChargement() {
112
		panneauChargement.setVisible(false);
113
	}
939 benjamin 114
 
115
	/**
116
	 * Affiche un message indiquant qu'il n'y a aucun commentaire à présenter
117
	 */
926 benjamin 118
	@Override
119
	public void afficherAucuneDonnees() {
120
		aucuneDonnees.setVisible(true);
121
	}
922 benjamin 122
 
123
}