Subversion Repositories eFlore/Applications.del

Rev

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