Subversion Repositories eFlore/Applications.del

Rev

Rev 921 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 921 Rev 922
Line 1... Line 1...
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations;
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations;
Line 2... Line 2...
2
 
2
 
Line 3... Line -...
3
import java.util.List;
-
 
4
 
3
import java.util.List;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
-
 
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
-
 
7
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur;
4
 
8
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
9
import org.tela_botanica.del.client.modeles.PropositionDetermination;
6
import org.tela_botanica.del.client.modeles.PropositionDetermination;
10
import org.tela_botanica.del.client.modeles.VoteDetermination;
7
import org.tela_botanica.del.client.modeles.VoteDetermination;
11
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
8
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
12
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
9
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
13
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
10
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
Line 14... Line -...
14
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationPresenteur;
-
 
15
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationVue;
-
 
16
 
11
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationPresenteur;
17
import com.google.gwt.event.dom.client.ClickEvent;
12
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.votes.DetailVoteObservationVue;
18
import com.google.gwt.event.dom.client.ClickHandler;
13
 
Line 19... Line 14...
19
import com.google.gwt.user.client.ui.HTMLPanel;
14
import com.google.gwt.user.client.ui.HTMLPanel;
Line 20... Line 15...
20
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.HasWidgets;
21
import com.google.gwt.user.client.ui.IsWidget;
16
import com.google.gwt.user.client.ui.IsWidget;
-
 
17
 
22
 
18
public class ObservationDeterminationPresenteur {
-
 
19
 
23
public class ObservationDeterminationPresenteur {
20
	public abstract interface Vue extends IsWidget {
-
 
21
		public void viderTableau();
24
 
22
 
-
 
23
		public HasWidgets getTableauPropositions();
25
	public abstract interface Vue extends IsWidget {
24
 
26
		public void viderTableau();
25
		void setNbVotes(int index, int nbVotes);
Line 27... Line 26...
27
		public void ajouterElementAuTableauProposition(LignePropositionVue vue);
26
 
Line 41... Line 40...
41
	}
40
	}
Line 42... Line 41...
42
 
41
 
43
	public void chargerPropositions() {
42
	public void chargerPropositions() {
44
		vue.viderTableau();
43
		vue.viderTableau();
45
		for (PropositionDetermination proposition : propositions) {
44
		for (PropositionDetermination proposition : propositions) {
-
 
45
			// TODO: afficher nombre de votes total et mettre à jour en cas de
46
			//TODO: afficher nombre de votes total et mettre à jour en cas de vote
46
			// vote
47
			HTMLPanel panneau = new HTMLPanel("");
47
			HTMLPanel panneau = new HTMLPanel("");
48
			DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition);
48
			DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition);
-
 
49
			presenteurVote.go(panneau);
-
 
50
			
49
			presenteurVote.go(panneau);
51
 
-
 
52
			LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau);
50
			int nbCommentaires = proposition.getTotalCommentaires();
53
			LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition);
Line 51... Line -...
51
			int nbVotes = proposition.getVotesDeterminations().size();
-
 
52
 
-
 
53
			LignePropositionVue ligneProposition = new LignePropositionVue(panneau, nbVotes, nbCommentaires);
-
 
54
			gererEvenementClicNbVotes(ligneProposition);
-
 
55
			gererEvenementClicNbCommentaires(ligneProposition);
54
			lignePropositionPresenteur.go(vue.getTableauPropositions());
56
			vue.ajouterElementAuTableauProposition(ligneProposition);
55
 
57
		}
56
		}
58
		
57
 
59
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
58
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
60
			@Override
59
			@Override
61
			public void onVoteDetermination(VoteDetermination event) {					
60
			public void onVoteDetermination(VoteDetermination event) {
62
				surVoteDetermination(event);
61
				surVoteDetermination(event);
63
			}
62
			}
64
		});
63
		});
65
	}
-
 
66
	
-
 
67
	public void gererEvenementClicNbVotes(final LignePropositionVue lignePropositionVue) {
-
 
68
		lignePropositionVue.getZoneNbVotes().addClickHandler(new ClickHandler() {			
-
 
69
			@Override
-
 
70
			public void onClick(ClickEvent event) {
-
 
71
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
72
				DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur(new DetailListeVotesDeterminationVue());
-
 
73
				int indexProposition = vue.getIndexLigneProposition(lignePropositionVue);
-
 
74
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur);
-
 
75
				detailListeVotesDeterminationPresenteur.afficherVotes(propositions.get(indexProposition));
-
 
76
			}
-
 
77
		});
-
 
78
	}
-
 
79
	
-
 
80
	public void gererEvenementClicNbCommentaires(final LignePropositionVue lignePropositionVue) {
-
 
81
		lignePropositionVue.getZoneNbCommentaires().addClickHandler(new ClickHandler() {			
-
 
82
			@Override
-
 
83
			public void onClick(ClickEvent event) {
-
 
84
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
85
				int indexProposition = vue.getIndexLigneProposition(lignePropositionVue);
-
 
86
				PropositionDetermination propositionCliquee = propositions.get(indexProposition);
-
 
87
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
88
				
-
 
89
				// TODO: appeler methode ouvrirFenetreModale de fenetreOverlaySimplePresenteur
-
 
90
				// avec un objet héritant de la classe présenteur et pouvant afficher le détails des commentaires
-
 
91
				// grâce à la proposition récupérée
-
 
92
			}
-
 
93
		});
-
 
94
	}
64
	}
95
	
65
 
96
	public void setPropositions(List<PropositionDetermination> propositions) {
66
	public void setPropositions(List<PropositionDetermination> propositions) {
97
		this.propositions = propositions;
67
		this.propositions = propositions;
Line 98... Line 68...
98
		chargerPropositions();
68
		chargerPropositions();
99
	}
69
	}
100
 
70
 
101
	public void go(HasWidgets composite) {
71
	public void go(HasWidgets composite) {
102
		composite.add(vue.asWidget());
72
		composite.add(vue.asWidget());
103
		chargerPropositions();
73
		chargerPropositions();
104
	}
74
	}
105
	
75
 
106
	public void surVoteDetermination(VoteDetermination voteDetermination) {
76
	public void surVoteDetermination(VoteDetermination voteDetermination) {
107
		int indexProposition = propositions.indexOf(voteDetermination.getPropositionDetermination());
77
		int indexProposition = propositions.indexOf(voteDetermination.getPropositionDetermination());
108
		if(indexProposition != -1) {
78
		if (indexProposition != -1) {
109
			vue.setNbVotes(indexProposition, voteDetermination.getPropositionDetermination().getVotesDeterminations().size());
79
			vue.setNbVotes(indexProposition, voteDetermination.getPropositionDetermination().getVotesDeterminations().size());