/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/observationdeterminations/ObservationDeterminationPresenteur.java |
---|
2,10 → 2,7 |
import java.util.List; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur; |
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur; |
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
14,8 → 11,6 |
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationVue; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
24,9 → 19,13 |
public abstract interface Vue extends IsWidget { |
public void viderTableau(); |
public void ajouterElementAuTableauProposition(LignePropositionVue vue); |
public HasWidgets getTableauPropositions(); |
void setNbVotes(int index, int nbVotes); |
void setNbCommentaires(int index, int nbCommentaires); |
int getIndexLigneProposition(LignePropositionVue lignePropositionVue); |
} |
43,56 → 42,27 |
public void chargerPropositions() { |
vue.viderTableau(); |
for (PropositionDetermination proposition : propositions) { |
//TODO: afficher nombre de votes total et mettre à jour en cas de vote |
// TODO: afficher nombre de votes total et mettre à jour en cas de |
// vote |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
int nbCommentaires = proposition.getTotalCommentaires(); |
int nbVotes = proposition.getVotesDeterminations().size(); |
LignePropositionVue ligneProposition = new LignePropositionVue(panneau, nbVotes, nbCommentaires); |
gererEvenementClicNbVotes(ligneProposition); |
gererEvenementClicNbCommentaires(ligneProposition); |
vue.ajouterElementAuTableauProposition(ligneProposition); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositions()); |
} |
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() { |
@Override |
public void onVoteDetermination(VoteDetermination event) { |
public void onVoteDetermination(VoteDetermination event) { |
surVoteDetermination(event); |
} |
}); |
} |
public void gererEvenementClicNbVotes(final LignePropositionVue lignePropositionVue) { |
lignePropositionVue.getZoneNbVotes().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue()); |
DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur(new DetailListeVotesDeterminationVue()); |
int indexProposition = vue.getIndexLigneProposition(lignePropositionVue); |
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur); |
detailListeVotesDeterminationPresenteur.afficherVotes(propositions.get(indexProposition)); |
} |
}); |
} |
public void gererEvenementClicNbCommentaires(final LignePropositionVue lignePropositionVue) { |
lignePropositionVue.getZoneNbCommentaires().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue()); |
int indexProposition = vue.getIndexLigneProposition(lignePropositionVue); |
PropositionDetermination propositionCliquee = propositions.get(indexProposition); |
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue()); |
// TODO: appeler methode ouvrirFenetreModale de fenetreOverlaySimplePresenteur |
// avec un objet héritant de la classe présenteur et pouvant afficher le détails des commentaires |
// grâce à la proposition récupérée |
} |
}); |
} |
public void setPropositions(List<PropositionDetermination> propositions) { |
this.propositions = propositions; |
chargerPropositions(); |
102,10 → 72,10 |
composite.add(vue.asWidget()); |
chargerPropositions(); |
} |
public void surVoteDetermination(VoteDetermination voteDetermination) { |
int indexProposition = propositions.indexOf(voteDetermination.getPropositionDetermination()); |
if(indexProposition != -1) { |
if (indexProposition != -1) { |
vue.setNbVotes(indexProposition, voteDetermination.getPropositionDetermination().getVotesDeterminations().size()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/observationdeterminations/ObservationDeterminationVue.java |
---|
25,28 → 25,25 |
public ObservationDeterminationVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
@Override |
public void ajouterElementAuTableauProposition(LignePropositionVue ligneProposition) { |
tableauPropositions.add(ligneProposition); |
} |
@Override |
public int getIndexLigneProposition(LignePropositionVue lignePropositionVue) { |
return tableauPropositions.getWidgetIndex(lignePropositionVue); |
} |
@Override |
@Override |
public void setNbVotes(int index, int nbVotes) { |
// cette conversion ne devrait jamais poser de problème, car le tableau ne doit contenir que ça |
LignePropositionVue lignePropositionVue = (LignePropositionVue)tableauPropositions.getWidget(index); |
// cette conversion ne devrait jamais poser de problème, car le tableau |
// ne doit contenir que ça |
LignePropositionVue lignePropositionVue = (LignePropositionVue) tableauPropositions.getWidget(index); |
lignePropositionVue.setNbVotes(nbVotes); |
} |
@Override |
@Override |
public void setNbCommentaires(int index, int nbCommentaires) { |
// cette conversion ne devrait jamais poser de problème, car le tableau ne doit contenir que ça |
LignePropositionVue lignePropositionVue = (LignePropositionVue)tableauPropositions.getWidget(index); |
// cette conversion ne devrait jamais poser de problème, car le tableau |
// ne doit contenir que ça |
LignePropositionVue lignePropositionVue = (LignePropositionVue) tableauPropositions.getWidget(index); |
lignePropositionVue.setNbVotes(nbCommentaires); |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/observationdeterminations/LignePropositionPresenteur.java |
---|
New file |
0,0 → 1,79 |
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations; |
import org.tela_botanica.del.client.composants.commentaires.DetailCommentairePresenteur; |
import org.tela_botanica.del.client.composants.commentaires.DetailCommentaireVue; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur; |
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur; |
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class LignePropositionPresenteur { |
public abstract interface Vue extends IsWidget { |
public HasClickHandlers getZoneNbVotes(); |
public HasClickHandlers getZoneNbCommentaires(); |
public void setNbVotes(int nbVotes); |
public void setNbCommentaires(int nbCommentaires); |
} |
private Vue vue; |
private PropositionDetermination propositionDetermination; |
public LignePropositionPresenteur(Vue vue, PropositionDetermination propositionDetermination) { |
this.vue = vue; |
this.propositionDetermination = propositionDetermination; |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
gererEvenements(); |
chargerPropositionDetermination(); |
} |
public void chargerPropositionDetermination() { |
int nbCommentaires = propositionDetermination.getTotalCommentaires(); |
int nbVotes = propositionDetermination.getVotesDeterminations().size(); |
vue.setNbCommentaires(nbCommentaires); |
vue.setNbVotes(nbVotes); |
} |
public void gererEvenements() { |
vue.getZoneNbVotes().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
int nbVotes = propositionDetermination.getVotesDeterminations().size(); |
if (nbVotes > 0) { |
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue()); |
DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur(new DetailListeVotesDeterminationVue()); |
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur); |
detailListeVotesDeterminationPresenteur.afficherVotes(propositionDetermination); |
} |
} |
}); |
vue.getZoneNbCommentaires().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
int nbCommentaires = propositionDetermination.getTotalCommentaires(); |
if (nbCommentaires > 0) { |
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue()); |
DetailCommentairePresenteur detailCommentairePresenteur = new DetailCommentairePresenteur(new DetailCommentaireVue(), propositionDetermination); |
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(detailCommentairePresenteur); |
detailCommentairePresenteur.afficherCommentaires(); |
} |
} |
}); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/observationdeterminations/LignePropositionVue.java |
---|
13,8 → 13,8 |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Widget; |
public class LignePropositionVue extends Composite { |
public class LignePropositionVue extends Composite implements LignePropositionPresenteur.Vue { |
// Gestion d'UiBinder |
interface MyUiBinder extends UiBinder<Widget, LignePropositionVue> { |
} |
22,37 → 22,33 |
private static MyUiBinder uibinder = GWT.create(MyUiBinder.class); |
@UiField |
HTMLPanel conteneurPanneauDeterminations; |
@UiField |
@UiField |
FocusPanel conteneurPanneauVotes, conteneurPanneauCommentaires; |
@UiField |
@UiField |
HTML nbVotesHtml, nbCommentairesHtml; |
public LignePropositionVue(IsWidget panneauDeterminations, int nbVotes, int nbCommentaires) { |
public LignePropositionVue(IsWidget panneauDeterminations) { |
initWidget(uibinder.createAndBindUi(this)); |
conteneurPanneauDeterminations.add(panneauDeterminations); |
nbVotesHtml.setHTML(nbVotes+""); |
nbCommentairesHtml.setHTML(nbCommentaires+""); |
conteneurPanneauVotes.setTitle(I18n.getVocabulary().voirDetailVotes()); |
conteneurPanneauCommentaires.setTitle(I18n.getVocabulary().voirDetailCommentaires()); |
} |
public HasClickHandlers getZoneNbVotes() { |
return conteneurPanneauVotes; |
} |
public HasClickHandlers getZoneNbCommentaires() { |
return conteneurPanneauCommentaires; |
} |
public void setNbVotes(int nbVotes) { |
nbVotesHtml.setHTML(nbVotes+""); |
nbVotesHtml.setHTML(nbVotes + ""); |
} |
public void setNbCommentaires(int nbCommentaires) { |
nbCommentairesHtml.setHTML(nbCommentaires+""); |
nbCommentairesHtml.setHTML(nbCommentaires + ""); |
} |
} |