Subversion Repositories eFlore/Applications.del

Rev

Blame | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.composants.forum;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.InterventionForum;

import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;

public class ArbreCommentaireVue extends Tree implements ArbreCommentairePresenteur.Vue {

        public ArbreCommentaireVue() {
                super();
        }

        public void creerArbreCommentaire(InterventionForum possesseurDeCommentaires) {
                TreeItem racineArbreCommentaires = new TreeItem();
                addItem(racineArbreCommentaires);

                if (possesseurDeCommentaires instanceof Commentaire) {
                        List<Commentaire> commentaires = new ArrayList<Commentaire>();
                        commentaires.add((Commentaire) possesseurDeCommentaires);
                        creerListeCommentaireRecursive(racineArbreCommentaires, commentaires);
                } else {
                        creerListeCommentaireRecursive(racineArbreCommentaires, possesseurDeCommentaires.getListeCommentaires());
                }
        }

        private void creerListeCommentaireRecursive(TreeItem parentTreeItem, List<Commentaire> commentaires) {

                for (Commentaire commentaire : commentaires) {
                        String commentaireHTML = commentaire.getCommentaire();
                        HTML commentaireWidget = new HTML(commentaireHTML);
                        parentTreeItem.setWidget(commentaireWidget);
                        if (commentaire.getListeCommentaires().size() != 0) {
                                TreeItem childTreeItem = new TreeItem();
                                parentTreeItem.addItem(childTreeItem);
                                creerListeCommentaireRecursive(childTreeItem, commentaire.getListeCommentaires());
                        }
                }
                parentTreeItem.setState(true);

        }
}