New file |
0,0 → 1,89 |
package org.tela_botanica.del.client.vues.identiplante.resultats.observationdeterminations; |
|
import java.util.Collections; |
import java.util.List; |
|
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur; |
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; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.utils.ComparateurPropositionDetermination; |
import org.tela_botanica.del.client.vues.identiplante.resultats.votes.DetailVoteObservationPresenteur; |
import org.tela_botanica.del.client.vues.identiplante.resultats.votes.DetailVoteObservationVue; |
|
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
|
public class ObservationDeterminationPresenteur { |
public abstract interface Vue extends IsWidget { |
public void viderTableau(); |
|
public HasWidgets getTableauPropositions(); |
|
void setNbVotes(int index, int nbVotes); |
|
void setNbCommentaires(int index, int nbCommentaires); |
|
int getIndexLigneProposition(LignePropositionVue lignePropositionVue); |
|
public void masquerPropositions(); |
} |
private Vue vue; |
private List<PropositionDetermination> propositions; |
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur; |
|
public ObservationDeterminationPresenteur(Vue vue, List<PropositionDetermination> propositions) { |
this.propositions = propositions; |
this.vue = vue; |
} |
|
public void classerPropositions(List<PropositionDetermination> propositions) { |
Collections.sort(propositions, new ComparateurPropositionDetermination()); |
} |
|
public void chargerPropositions() { |
vue.viderTableau(); |
int nbPropositions = 0; |
classerPropositions(propositions); |
for (PropositionDetermination proposition : propositions) { |
nbPropositions++; |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositions()); |
} |
|
if (nbPropositions <= 0) { |
vue.masquerPropositions(); |
} |
|
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() { |
@Override |
public void onVoteDetermination(VoteDetermination event) { |
surVoteDetermination(event); |
} |
}); |
} |
|
public void setPropositions(List<PropositionDetermination> propositions) { |
this.propositions = propositions; |
chargerPropositions(); |
} |
|
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
chargerPropositions(); |
} |
|
public void surVoteDetermination(VoteDetermination voteDetermination) { |
int indexProposition = propositions.indexOf(voteDetermination.getPropositionDetermination()); |
if (indexProposition != -1) { |
chargerPropositions(); |
} |
} |
} |