/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ArbreCommentaireVue.java |
---|
1,5 → 1,6 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.List; |
9,27 → 10,32 |
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.HorizontalPanel; |
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(PossesseurDeCommentaires possesseurDeCommentaires) { |
TreeItem racineArbreCommentaires = new TreeItem(); |
addItem(racineArbreCommentaires); |
creerListeCommentaireRecursive(racineArbreCommentaires, possesseurDeCommentaires.getListeCommentaires()); |
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) { |
HorizontalPanel p = new HorizontalPanel(); |
String commentaireHTML = commentaire.getCommentaire() +" "+ commentaire.getAuteur() + "-"+formaterDatePourForum(commentaire.getDate()); |
String commentaireHTML = commentaire.getCommentaire() + " " + commentaire.getAuteur() + "-" + formaterDatePourForum(commentaire.getDate()); |
HTML commentaireWidget = new HTML(commentaireHTML); |
parentTreeItem.setWidget(commentaireWidget); |
if (commentaire.getListeCommentaires().size() != 0) { |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java |
---|
1,10 → 1,10 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur; |
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.InterventionForum; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
13,28 → 13,28 |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.vues.plateformedetermination.DeterminationPresenteur; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ForumPresenteur { |
public interface Vue extends IsWidget { |
public abstract void initialiserEntetesTableau(); |
public abstract void ajouterLigne(PropositionDetermination determination, |
IsWidget barreRepartition, IsWidget arbreCommentaires); |
public abstract void ajouterLigne(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires); |
public void ajouterLigne(Commentaire commentaire, IsWidget arbreCommentaires); |
public abstract HasWidgets getTable(); |
} |
private Vue vue; |
private List<PropositionDetermination> determinations; |
public ForumPresenteur(Vue vue) { |
this.vue = vue; |
} |
public void go(HasWidgets composite) { |
chargerDeterminations(); |
44,11 → 44,14 |
} |
private void chargerDeterminations() { |
determinations = CacheClient.getInstance().getObservationCourante().getPropositionsDetermination(); |
vue.initialiserEntetesTableau(); |
for (PropositionDetermination determination : determinations) { |
ajouterPropositionDetermination(determination); |
for (InterventionForum proposition : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) { |
if (proposition instanceof PropositionDetermination) { |
ajouterPropositionDetermination((PropositionDetermination) proposition); |
} else if (proposition instanceof Commentaire) { |
ajouterCommentaire((Commentaire) proposition); |
} |
} |
} |
60,26 → 63,29 |
ajouterPropositionDetermination(event.getPropositionDetermination()); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() { |
@Override |
public void onAjoutCommentaire(EvenementAjoutCommentaire event) { |
//TODO gérer l'ajout de commentaire |
ajouterCommentaire(event.getCommentaire()); |
} |
}); |
} |
private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) { |
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue()); |
calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination); |
ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination); |
vue.ajouterLigne(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue()); |
} |
private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) { |
private void ajouterCommentaire(Commentaire proposition) { |
ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), proposition); |
vue.ajouterLigne(proposition, arbreCommentairePresenteur.getArbreCommentaireVue()); |
} |
private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) { |
MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination); |
barreRepartitionVotePresenteur.afficherVotes(votes); |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.java |
---|
1,8 → 1,5 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.Date; |
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; |
9,19 → 6,13 |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur.Vue; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
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.FlexTable; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Tree; |
import com.google.gwt.user.client.ui.TreeItem; |
import com.google.gwt.user.client.ui.Widget; |
public class ForumVue extends Composite implements Vue { |
33,15 → 24,16 |
@UiField |
FlexTable htmlTableau; |
public ForumVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
/* (non-Javadoc) |
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue#initialiserEntetesTableau() |
/* |
* (non-Javadoc) |
* |
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue# |
* initialiserEntetesTableau() |
*/ |
@Override |
public void initialiserEntetesTableau() { |
52,17 → 44,25 |
htmlTableau.setHTML(1, 4, I18n.getVocabulary().date()); |
htmlTableau.setHTML(1, 5, I18n.getVocabulary().commentaire()); |
} |
@Override |
public void ajouterLigne(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires) { |
int ligne = htmlTableau.getRowCount() + 1; |
htmlTableau.setWidget(ligne, 1, barreRepartition); |
htmlTableau.setHTML(ligne, 2, determination.getContributeur()); |
htmlTableau.setHTML(ligne, 3, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(determination.getDate())); |
htmlTableau.setWidget(ligne, 4, arbreCommentaires); |
htmlTableau.setHTML(ligne, 2, determination.getAuteur()); |
htmlTableau.setHTML(ligne, 4, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(determination.getDate())); |
htmlTableau.setWidget(ligne, 5, arbreCommentaires); |
} |
public void ajouterLigne(Commentaire commentaire, IsWidget arbreCommentaires) { |
int ligne = htmlTableau.getRowCount() + 1; |
htmlTableau.setHTML(ligne, 2, commentaire.getAuteur()); |
htmlTableau.setHTML(ligne, 4, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(commentaire.getDate())); |
htmlTableau.setWidget(ligne, 5, arbreCommentaires); |
} |
@Override |
public FlexTable getTable() { |
return htmlTableau; |