Subversion Repositories eFlore/Applications.del

Rev

Rev 1102 | 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;
1075 gduche 12
import com.google.gwt.user.client.ui.Button;
922 benjamin 13
import com.google.gwt.user.client.ui.Composite;
973 aurelien 14
import com.google.gwt.user.client.ui.HTML;
922 benjamin 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
973 aurelien 34
	HTMLPanel titre, auteur, aucuneDonnees;
922 benjamin 35
 
36
	@UiField
1102 gduche 37
	Panel panneauChargement, ligneCommentaire;
922 benjamin 38
 
39
	@UiField
1075 gduche 40
	Button boutonAjoutCommentaire;
41
 
42
	@Override
43
	public Button getBoutonAjoutCommentaire() {
44
		return boutonAjoutCommentaire;
45
	}
46
 
922 benjamin 47
	public DetailCommentaireVue() {
48
		initWidget(uiBinder.createAndBindUi(this));
49
	}
50
 
939 benjamin 51
	/**
52
	 * Affiche les commentaires associées à une proposition de determination
53
	 */
922 benjamin 54
	@Override
55
	public void afficherCommentairesProposition(PropositionDetermination propositionDetermination) {
973 aurelien 56
 
57
		HTML htmlTitre = new HTML(propositionDetermination.getEspece());
58
		titre.add(htmlTitre);
59
 
60
		HTML htmlAuteur = new HTML(I18n.getVocabulary().proposePar()+propositionDetermination.getAuteur());
61
		auteur.add(htmlAuteur);
922 benjamin 62
 
1102 gduche 63
		LigneCommentairePresenteur presenteurCommentaire = new LigneCommentairePresenteur(new LigneCommentaireVue(), propositionDetermination);
64
		presenteurCommentaire.go(ligneCommentaire);
922 benjamin 65
 
66
		creerListeCommentaireRecursive(propositionDetermination.getListeCommentaires());
67
	}
68
 
939 benjamin 69
	/**
70
	 * Affiche une liste de commentaires recursivement
71
	 * @param commentaires
72
	 */
922 benjamin 73
	private void creerListeCommentaireRecursive(List<Commentaire> commentaires) {
74
 
75
		for (Commentaire commentaire : commentaires) {
76
			chargerCommentaire(commentaire);
77
			if (commentaire.getListeCommentaires().size() > 0) {
78
				creerListeCommentaireRecursive(commentaire.getListeCommentaires());
79
			}
80
		}
81
	}
82
 
939 benjamin 83
	/**
84
	 * Affiche un commentaire
85
	 * @param commentaire
86
	 */
922 benjamin 87
	private void chargerCommentaire(Commentaire commentaire) {
1102 gduche 88
		LigneCommentairePresenteur presenteurCommentaire = new LigneCommentairePresenteur(new LigneCommentaireVue(), commentaire);
89
		presenteurCommentaire.go(ligneCommentaire);
922 benjamin 90
	}
91
 
939 benjamin 92
	/**
93
	 * Affiche un icone de début de chargement
94
	 */
922 benjamin 95
	@Override
96
	public void startChargement() {
97
		panneauChargement.setHeight((this.getOffsetHeight() / 2) + "px");
98
		panneauChargement.setWidth((this.getOffsetWidth() / 2) + "px");
99
		panneauChargement.setVisible(true);
100
	}
101
 
939 benjamin 102
	/**
103
	 * Cache l'icone de début de chargement
104
	 */
922 benjamin 105
	@Override
106
	public void stopChargement() {
107
		panneauChargement.setVisible(false);
108
	}
939 benjamin 109
 
110
	/**
111
	 * Affiche un message indiquant qu'il n'y a aucun commentaire à présenter
112
	 */
926 benjamin 113
	@Override
114
	public void afficherAucuneDonnees() {
115
		aucuneDonnees.setVisible(true);
116
	}
922 benjamin 117
 
118
}