Subversion Repositories eFlore/Applications.del

Rev

Rev 1075 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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