Subversion Repositories eFlore/Applications.del

Rev

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

Rev 882 Rev 939
Line 5... Line 5...
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.modeles.MoyenneVote;
6
import org.tela_botanica.del.client.modeles.MoyenneVote;
7
import org.tela_botanica.del.client.modeles.VoteDetermination;
7
import org.tela_botanica.del.client.modeles.VoteDetermination;
8
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
8
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
9
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
9
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
10
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
-
 
11
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
10
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
12
import org.tela_botanica.del.client.services.rest.VoteDeterminationService;
11
import org.tela_botanica.del.client.services.rest.VoteDeterminationService;
13
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret;
12
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret;
14
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback;
13
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback;
Line 15... Line 14...
15
 
14
 
16
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickEvent;
17
import com.google.gwt.event.dom.client.ClickHandler;
16
import com.google.gwt.event.dom.client.ClickHandler;
18
import com.google.gwt.event.dom.client.HasClickHandlers;
17
import com.google.gwt.event.dom.client.HasClickHandlers;
19
import com.google.gwt.user.client.Window;
18
import com.google.gwt.user.client.Window;
20
import com.google.gwt.user.client.ui.HasWidgets;
19
import com.google.gwt.user.client.ui.HasWidgets;
Line 21... Line 20...
21
import com.google.gwt.user.client.ui.IsWidget;
20
import com.google.gwt.user.client.ui.IsWidget;
22
 
21
 
23
public class BarreRepartitionVotePresenteur {
22
public class BarreRepartitionVotePresenteur {
24
	
23
 
-
 
24
	public interface Vue extends IsWidget {
25
	public interface Vue extends IsWidget {
25
		public void afficherVotes(int pourcentage, String NomTaxon);
-
 
26
 
26
		public void afficherVotes(int pourcentage, String NomTaxon);
27
		public HasClickHandlers getBoutonOui();
-
 
28
 
27
		public HasClickHandlers getBoutonOui();
29
		public HasClickHandlers getBoutonNon();
-
 
30
 
28
		public HasClickHandlers getBoutonNon();
31
		public void desactiverBoutons();
-
 
32
 
29
		public void desactiverBoutons();
33
		public void activerBoutons();
-
 
34
 
30
		public void activerBoutons();
35
		public void setVoteOuiEffectue();
-
 
36
 
31
		public void setVoteOuiEffectue();
37
		public void setVoteNonEffectue();
32
		public void setVoteNonEffectue();
38
 
33
		public void afficherVotePrisEnCompte(boolean b);
39
		public void afficherVotePrisEnCompte(boolean b);
34
	}
40
	}
35
	
41
 
36
	private Vue vue;
42
	private Vue vue;
37
	private MoyenneVote moyenneVote;
43
	private MoyenneVote moyenneVote;
38
	
44
 
39
	// TODO: classe conteneur qui est passé en paramètre au constructeur
45
	// TODO: classe conteneur qui est passé en paramètre au constructeur
40
	private VoteDeterminationService voteDeterminationService = new VoteDeterminationServiceConcret();
46
	private VoteDeterminationService voteDeterminationService = new VoteDeterminationServiceConcret();
41
	
47
 
42
	public BarreRepartitionVotePresenteur(Vue vue) {
48
	public BarreRepartitionVotePresenteur(Vue vue) {
43
		this.vue = vue;
49
		this.vue = vue;
44
		gererEvenements();
50
		gererEvenements();
45
	}
51
	}
46
	
52
 
47
	public void go(HasWidgets container) {
53
	public void go(HasWidgets container) {
Line 48... Line 54...
48
		container.add(vue.asWidget());
54
		container.add(vue.asWidget());
49
	}
55
	}
50
 
56
 
51
	public void afficherVotes(MoyenneVote moyenneVote) {
57
	public void afficherVotes(MoyenneVote moyenneVote) {
52
		this.moyenneVote = moyenneVote;
58
		this.moyenneVote = moyenneVote;
53
		int score = moyenneVote.getScore();
59
		int score = moyenneVote.getScore();
54
		String intitule =moyenneVote.getIntituleAssocie();
60
		String intitule = moyenneVote.getIntituleAssocie();
55
		vue.afficherVotes(score, intitule);
61
		vue.afficherVotes(score, intitule);
56
	}
62
	}
57
	
63
 
58
	public Vue getBarreRepartitionVoteVue() {
64
	public Vue getBarreRepartitionVoteVue() {
59
		return vue;
65
		return vue;
60
	}
66
	}
61
	
67
 
62
	public MoyenneVote getMoyenneVote() {
68
	public MoyenneVote getMoyenneVote() {
63
		return moyenneVote;
69
		return moyenneVote;
64
	}
70
	}
65
	
71
 
66
	public void gererEvenements() {
72
	public void gererEvenements() {
67
				
73
 
68
		vue.getBoutonOui().addClickHandler(new ClickHandler() {
74
		vue.getBoutonOui().addClickHandler(new ClickHandler() {
69
			@Override
75
			@Override
70
			public void onClick(ClickEvent event) {
76
			public void onClick(ClickEvent event) {
71
				voter(true);
77
				voter(true);
72
				vue.afficherVotePrisEnCompte(true);
78
				vue.afficherVotePrisEnCompte(true);
73
			}		
79
			}
74
		});
80
		});
75
		
81
 
76
		vue.getBoutonNon().addClickHandler(new ClickHandler() {
82
		vue.getBoutonNon().addClickHandler(new ClickHandler() {
77
			@Override
83
			@Override
78
			public void onClick(ClickEvent event) {
84
			public void onClick(ClickEvent event) {
79
				voter(false);
85
				voter(false);
80
				vue.afficherVotePrisEnCompte(false);
86
				vue.afficherVotePrisEnCompte(false);
81
			}		
87
			}
82
		});
88
		});
83
	}
89
	}
84
	
90
 
-
 
91
	private void surVoteDetermination(final VoteDetermination vd) {
-
 
92
		if (vd.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) {
-
 
93
			AjoutVoteDeterminationCallback vdc = new AjoutVoteDeterminationCallback() {
-
 
94
 
-
 
95
				@Override
-
 
96
				public void surErreur(String messageErreur) {
Line 85... Line 97...
85
	private void surVoteDetermination(final VoteDetermination vd) {
97
					Window.alert(messageErreur);
86
		if(vd.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) {
98
					vue.activerBoutons();
87
			VoteDeterminationCallback vdc = new VoteDeterminationCallback() {
99
				}
88
 
100
 
89
				@Override
101
				@Override
90
				public void surRetour(String messageRetour) {
102
				public void surRetour(Void objetRetour) {
91
					moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd);
103
					moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd);
92
					moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee());
104
					moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee());
93
					afficherVotes(moyenneVote);
105
					afficherVotes(moyenneVote);
94
					vue.activerBoutons();
-
 
95
					// l'évènement n'est lancé que si le vote est validé
-
 
96
					BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd));
-
 
97
				}
-
 
98
 
-
 
99
				@Override
-
 
100
				public void surErreur(String messageErreur) {
106
					vue.activerBoutons();
101
					Window.alert(messageErreur);
107
					// l'évènement n'est lancé que si le vote est validé
102
					vue.activerBoutons();
108
					BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd));
103
				}
109
				}
104
			};
110
			};
105
			
111
 
106
			if(moyenneVote.getPropositionAssociee().utilisateurAVotePourDetermination(vd.getContributeur())) {
112
			if (moyenneVote.getPropositionAssociee().utilisateurAVotePourDetermination(vd.getContributeur())) {
107
				voteDeterminationService.modifierVote(vd, vdc);
113
				voteDeterminationService.modifierVote(vd, vdc);
108
			} else {
114
			} else {
109
				voteDeterminationService.ajouterVote(vd, vdc);
115
				voteDeterminationService.ajouterVote(vd, vdc);
110
			}
116
			}
111
		}	
117
		}
112
	}
118
	}
113
	
119
 
114
	public void voter(boolean oui) {
120
	public void voter(boolean oui) {
115
		
121
 
116
		VoteDetermination vd = new VoteDetermination();
122
		VoteDetermination vd = new VoteDetermination();
117
		vd.setPropositionDetermination(moyenneVote.getPropositionAssociee());
123
		vd.setPropositionDetermination(moyenneVote.getPropositionAssociee());
118
		vd.setContributeur(CacheClient.getInstance().getUtilisateur().getId());
124
		vd.setContributeur(CacheClient.getInstance().getUtilisateur().getId());
119
		vd.setDate(new Date());
125
		vd.setDate(new Date());
120
		
126
 
121
		int valeurVote = oui ? 1 : 0;
127
		int valeurVote = oui ? 1 : 0;
122
		vd.setVote(valeurVote);
128
		vd.setVote(valeurVote);
123
		vd.setId(CacheClient.getInstance().getUtilisateur().getId());
129
		vd.setId(CacheClient.getInstance().getUtilisateur().getId());
124
		
130
 
125
		if(oui) {
131
		if (oui) {
126
			vue.setVoteOuiEffectue();
132
			vue.setVoteOuiEffectue();