Subversion Repositories eFlore/Applications.del

Rev

Rev 1122 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
480 benjamin 1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations;
436 benjamin 2
 
1124 gduche 3
import java.util.HashMap;
436 benjamin 4
import java.util.List;
1124 gduche 5
import java.util.Map;
6
 
901 aurelien 7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
1122 gduche 8
import org.tela_botanica.del.client.composants.rss.RssPresenteur;
9
import org.tela_botanica.del.client.composants.rss.RssVue;
1124 gduche 10
import org.tela_botanica.del.client.modeles.MoyenneVote;
436 benjamin 11
import org.tela_botanica.del.client.modeles.PropositionDetermination;
882 aurelien 12
import org.tela_botanica.del.client.modeles.VoteDetermination;
13
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
14
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
15
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
480 benjamin 16
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationPresenteur;
17
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationVue;
1053 gduche 18
import com.google.gwt.user.client.Window;
436 benjamin 19
import com.google.gwt.user.client.ui.HTMLPanel;
20
import com.google.gwt.user.client.ui.HasWidgets;
21
import com.google.gwt.user.client.ui.IsWidget;
22
public class ObservationDeterminationPresenteur {
23
	public abstract interface Vue extends IsWidget {
652 aurelien 24
		public void viderTableau();
922 benjamin 25
 
1038 gduche 26
		public void viderTableauPropositionOriginale();
27
 
922 benjamin 28
		public HasWidgets getTableauPropositions();
29
 
1038 gduche 30
		public HasWidgets getTableauPropositionOriginale();
31
 
882 aurelien 32
		void setNbVotes(int index, int nbVotes);
922 benjamin 33
 
882 aurelien 34
		void setNbCommentaires(int index, int nbCommentaires);
922 benjamin 35
 
901 aurelien 36
		int getIndexLigneProposition(LignePropositionVue lignePropositionVue);
1038 gduche 37
 
38
		public void masquerPropositions();
1122 gduche 39
 
40
		public HasWidgets getZoneRss();
436 benjamin 41
	}
42
	private Vue vue;
43
	private List<PropositionDetermination> propositions;
901 aurelien 44
	FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
436 benjamin 45
 
46
	public ObservationDeterminationPresenteur(Vue vue, List<PropositionDetermination> propositions) {
47
		this.propositions = propositions;
48
		this.vue = vue;
49
	}
50
 
1053 gduche 51
	public void chargerPropositionOriginale(PropositionDetermination proposition) {
1038 gduche 52
		vue.viderTableauPropositionOriginale();
53
		// TODO: afficher nombre de votes total et mettre à jour en cas de
54
		// vote
55
		HTMLPanel panneau = new HTMLPanel("");
56
		DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition);
57
		presenteurVote.go(panneau);
58
		LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau);
59
		LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition);
60
		lignePropositionPresenteur.go(vue.getTableauPropositionOriginale());
1122 gduche 61
 
1124 gduche 62
		new RssPresenteur(new RssVue(), proposition.getObservation(), "").go(vue.getZoneRss());
1038 gduche 63
	}
1124 gduche 64
 
65
	public void classerPropositions(List<PropositionDetermination> propositions) {
66
		// Compter le nombre de votes total
67
		int nbVotants = 0;
68
		for (PropositionDetermination proposition : propositions) {
69
			nbVotants += proposition.getVotesDeterminations().size();
70
		}
71
 
72
		// calculer le score pour chaque proposition
73
		for (PropositionDetermination proposition : propositions) {
74
			Map<String, VoteDetermination> votes = proposition.getVotesDeterminations();
75
 
76
			//MoyenneVote moyenne = new MoyenneVote(score, propositionAssociee);
77
		}
78
	}
1038 gduche 79
 
436 benjamin 80
	public void chargerPropositions() {
652 aurelien 81
		vue.viderTableau();
1053 gduche 82
		int nbPropositions = 0;
1124 gduche 83
			//classerPropositions(propositions);
1038 gduche 84
			for (PropositionDetermination proposition : propositions) {
1053 gduche 85
					if (proposition.estPropositionInitiale()) {
86
						this.chargerPropositionOriginale(proposition);
87
					} else {
1124 gduche 88
 
1053 gduche 89
						nbPropositions++;
90
						// TODO: afficher nombre de votes total et mettre à jour en
91
						// cas de
92
						// vote
93
						HTMLPanel panneau = new HTMLPanel("");
94
						DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition);
95
						presenteurVote.go(panneau);
96
						LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau);
97
						LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition);
98
						lignePropositionPresenteur.go(vue.getTableauPropositions());
99
					}
1038 gduche 100
			}
1053 gduche 101
			if (nbPropositions > 0) {
1038 gduche 102
		} else {
103
			vue.masquerPropositions();
436 benjamin 104
		}
882 aurelien 105
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
106
			@Override
922 benjamin 107
			public void onVoteDetermination(VoteDetermination event) {
882 aurelien 108
				surVoteDetermination(event);
109
			}
110
		});
436 benjamin 111
	}
922 benjamin 112
 
602 aurelien 113
	public void setPropositions(List<PropositionDetermination> propositions) {
114
		this.propositions = propositions;
115
		chargerPropositions();
116
	}
436 benjamin 117
 
118
	public void go(HasWidgets composite) {
119
		composite.add(vue.asWidget());
120
		chargerPropositions();
121
	}
922 benjamin 122
 
882 aurelien 123
	public void surVoteDetermination(VoteDetermination voteDetermination) {
124
		int indexProposition = propositions.indexOf(voteDetermination.getPropositionDetermination());
922 benjamin 125
		if (indexProposition != -1) {
882 aurelien 126
			vue.setNbVotes(indexProposition, voteDetermination.getPropositionDetermination().getVotesDeterminations().size());
127
		}
128
	}
436 benjamin 129
}