New file |
0,0 → 1,118 |
package org.tela_botanica.del.client.composants.commentaires; |
|
import java.util.List; |
|
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
|
import com.google.gwt.core.client.GWT; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
|
/** |
* Cette classe permet d'afficher une popup avec la liste des commentaires |
* associées à une proposition de determination |
* |
* @author LIENS |
* |
*/ |
public class DetailCommentaireVue extends Composite implements DetailCommentairePresenteur.Vue { |
|
private static DetailListeVotesDeterminationVueUIiBinder uiBinder = GWT.create(DetailListeVotesDeterminationVueUIiBinder.class); |
|
interface DetailListeVotesDeterminationVueUIiBinder extends UiBinder<Widget, DetailCommentaireVue> { |
}; |
|
@UiField |
HTMLPanel titre, auteur, aucuneDonnees; |
|
@UiField |
Panel panneauChargement, ligneCommentaire; |
|
@UiField |
Button boutonAjoutCommentaire; |
|
@Override |
public Button getBoutonAjoutCommentaire() { |
return boutonAjoutCommentaire; |
} |
|
public DetailCommentaireVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
|
/** |
* Affiche les commentaires associées à une proposition de determination |
*/ |
@Override |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination) { |
|
HTML htmlTitre = new HTML(propositionDetermination.getEspece()); |
titre.add(htmlTitre); |
|
HTML htmlAuteur = new HTML(I18n.getVocabulary().proposePar()+propositionDetermination.getAuteur()); |
auteur.add(htmlAuteur); |
|
LigneCommentairePresenteur presenteurCommentaire = new LigneCommentairePresenteur(new LigneCommentaireVue(), propositionDetermination); |
presenteurCommentaire.go(ligneCommentaire); |
|
creerListeCommentaireRecursive(propositionDetermination.getListeCommentaires()); |
} |
|
/** |
* Affiche une liste de commentaires recursivement |
* @param commentaires |
*/ |
private void creerListeCommentaireRecursive(List<Commentaire> commentaires) { |
|
for (Commentaire commentaire : commentaires) { |
chargerCommentaire(commentaire); |
if (commentaire.getListeCommentaires().size() > 0) { |
creerListeCommentaireRecursive(commentaire.getListeCommentaires()); |
} |
} |
} |
|
/** |
* Affiche un commentaire |
* @param commentaire |
*/ |
private void chargerCommentaire(Commentaire commentaire) { |
LigneCommentairePresenteur presenteurCommentaire = new LigneCommentairePresenteur(new LigneCommentaireVue(), commentaire); |
presenteurCommentaire.go(ligneCommentaire); |
} |
|
/** |
* Affiche un icone de début de chargement |
*/ |
@Override |
public void startChargement() { |
panneauChargement.setHeight((this.getOffsetHeight() / 2) + "px"); |
panneauChargement.setWidth((this.getOffsetWidth() / 2) + "px"); |
panneauChargement.setVisible(true); |
} |
|
/** |
* Cache l'icone de début de chargement |
*/ |
@Override |
public void stopChargement() { |
panneauChargement.setVisible(false); |
} |
|
/** |
* Affiche un message indiquant qu'il n'y a aucun commentaire à présenter |
*/ |
@Override |
public void afficherAucuneDonnees() { |
aucuneDonnees.setVisible(true); |
} |
|
} |