Subversion Repositories eFlore/Applications.del

Rev

Rev 866 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 866 Rev 882
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations;
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations;
2
 
2
 
3
import java.util.List;
3
import java.util.List;
4
 
4
 
5
import org.tela_botanica.del.client.i18n.I18n;
5
import org.tela_botanica.del.client.i18n.I18n;
6
import org.tela_botanica.del.client.modeles.PropositionDetermination;
6
import org.tela_botanica.del.client.modeles.PropositionDetermination;
-
 
7
import org.tela_botanica.del.client.modeles.VoteDetermination;
-
 
8
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
-
 
9
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
-
 
10
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
7
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationPresenteur;
11
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationPresenteur;
8
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationVue;
12
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationVue;
9
 
13
 
10
import com.google.gwt.user.client.ui.HTMLPanel;
14
import com.google.gwt.user.client.ui.HTMLPanel;
11
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.HasWidgets;
12
import com.google.gwt.user.client.ui.IsWidget;
16
import com.google.gwt.user.client.ui.IsWidget;
13
 
17
 
14
public class ObservationDeterminationPresenteur {
18
public class ObservationDeterminationPresenteur {
15
 
19
 
16
	public abstract interface Vue extends IsWidget {
20
	public abstract interface Vue extends IsWidget {
17
		public void viderTableau();
21
		public void viderTableau();
18
		public void ajouterElementAuTableauProposition(IsWidget Element, String texte);
22
		public void ajouterElementAuTableauProposition(IsWidget Element, int nbVotes, int nbCommentaires);
-
 
23
		void setNbVotes(int index, int nbVotes);
-
 
24
		void setNbCommentaires(int index, int nbCommentaires);
19
	}
25
	}
20
 
26
 
21
	private Vue vue;
27
	private Vue vue;
22
 
28
 
23
	private List<PropositionDetermination> propositions;
29
	private List<PropositionDetermination> propositions;
24
 
30
 
25
	public ObservationDeterminationPresenteur(Vue vue, List<PropositionDetermination> propositions) {
31
	public ObservationDeterminationPresenteur(Vue vue, List<PropositionDetermination> propositions) {
26
		this.propositions = propositions;
32
		this.propositions = propositions;
27
		this.vue = vue;
33
		this.vue = vue;
28
	}
34
	}
29
 
35
 
30
	public void chargerPropositions() {
36
	public void chargerPropositions() {
31
		vue.viderTableau();
37
		vue.viderTableau();
32
		for (PropositionDetermination proposition : propositions) {
38
		for (PropositionDetermination proposition : propositions) {
33
			//TODO: afficher nombre de votes total et mettre à jour en cas de vote
39
			//TODO: afficher nombre de votes total et mettre à jour en cas de vote
34
			HTMLPanel panneau = new HTMLPanel("");
40
			HTMLPanel panneau = new HTMLPanel("");
35
			DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition);
41
			DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition);
36
			presenteurVote.go(panneau);
42
			presenteurVote.go(panneau);
-
 
43
			int nbCommentaires = proposition.getListeCommentaires().size();
-
 
44
			int nbVotes = proposition.getVotesDeterminations().size();
37
			vue.ajouterElementAuTableauProposition(panneau, String.valueOf(proposition.getListeCommentaires().size()));
45
			vue.ajouterElementAuTableauProposition(panneau, nbVotes, nbCommentaires);
38
		}
46
		}
-
 
47
		
-
 
48
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
-
 
49
			@Override
-
 
50
			public void onVoteDetermination(VoteDetermination event) {					
-
 
51
				surVoteDetermination(event);
-
 
52
			}
-
 
53
		});
39
	}
54
	}
40
	
55
	
41
	public void setPropositions(List<PropositionDetermination> propositions) {
56
	public void setPropositions(List<PropositionDetermination> propositions) {
42
		this.propositions = propositions;
57
		this.propositions = propositions;
43
		chargerPropositions();
58
		chargerPropositions();
44
	}
59
	}
45
 
60
 
46
	public void go(HasWidgets composite) {
61
	public void go(HasWidgets composite) {
47
		composite.add(vue.asWidget());
62
		composite.add(vue.asWidget());
48
		chargerPropositions();
63
		chargerPropositions();
49
	}
64
	}
-
 
65
	
-
 
66
	public void surVoteDetermination(VoteDetermination voteDetermination) {
-
 
67
		int indexProposition = propositions.indexOf(voteDetermination.getPropositionDetermination());
-
 
68
		if(indexProposition != -1) {
-
 
69
			vue.setNbVotes(indexProposition, voteDetermination.getPropositionDetermination().getVotesDeterminations().size());
-
 
70
		}
-
 
71
	}
50
 
72
 
51
}
73
}