Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1092 Rev 1095
Line 12... Line 12...
12
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback;
12
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback;
Line 13... Line 13...
13
 
13
 
14
import com.google.gwt.event.dom.client.ClickEvent;
14
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickHandler;
15
import com.google.gwt.event.dom.client.ClickHandler;
-
 
16
import com.google.gwt.event.dom.client.HasClickHandlers;
-
 
17
import com.google.gwt.event.dom.client.HasMouseMoveHandlers;
-
 
18
import com.google.gwt.event.dom.client.MouseMoveEvent;
16
import com.google.gwt.event.dom.client.HasClickHandlers;
19
import com.google.gwt.event.dom.client.MouseMoveHandler;
17
import com.google.gwt.user.client.Window;
20
import com.google.gwt.user.client.Window;
18
import com.google.gwt.user.client.ui.HasText;
21
import com.google.gwt.user.client.ui.HasText;
19
import com.google.gwt.user.client.ui.HasWidgets;
22
import com.google.gwt.user.client.ui.HasWidgets;
Line 45... Line 48...
45
		public void reinitialiserVotes();
48
		public void reinitialiserVotes();
Line 46... Line 49...
46
 
49
 
Line 47... Line 50...
47
		public void rafraichir(int moyenneVote, int nbVotes);
50
		public void rafraichir(int moyenneVote, int nbVotes);
48
 
51
 
49
		public void ajouterAuParent(HasWidgets composite);
52
		public void ajouterAuParent(HasWidgets composite);
50
		
53
 
51
		public void afficherVotePrisEnCompte();
54
		public void afficherVotePrisEnCompte();
52
		
55
 
53
		public HasWidgets getZoneFleur();
56
		public HasWidgets getZoneFleur();
54
		
57
 
55
		public HasText getZoneProtocole();
58
		public HasText getZoneProtocole();
56
		
59
 
57
		public void setNoteGenerale(int note);
60
		public void setNoteGenerale(int note);
-
 
61
 
-
 
62
		public void afficherVoteModifie();
-
 
63
 
58
		
64
		public HasMouseMoveHandlers getZoneVoter();
Line 59... Line 65...
59
		public void afficherVoteModifie();
65
		public void masquerZoneVoter();
60
	}
66
	}
61
 
67
 
Line 62... Line 68...
62
	private Vue vue;
68
	private Vue vue;
63
	private Protocole protocole;
69
	private Protocole protocole;
64
	private Image image;
70
	private Image image;
65
 
-
 
Line 66... Line 71...
66
	private int valeurVoteDefaut = -1;
71
 
67
	private int valeurVoteUtilisateur = -1;
72
	private int valeurVoteDefaut = -1;
Line 68... Line 73...
68
	private int valeurVoteTotal = 0;
73
	private int valeurVoteUtilisateur = -1;
-
 
74
	private int valeurVoteTotal = 0;
69
	
75
 
70
 
76
	// TODO: on devrait passer un conteneur qui permet d'accéder à ces services
71
	// TODO: on devrait passer un conteneur qui permet d'accéder à ces services
77
	private VoteProtocoleService voteProtocoleService;
72
	private VoteProtocoleService voteProtocoleService;
78
 
73
 
79
	public MoyenneVotePresenteur(Image image, Protocole protocole, Vue vue,
74
	public MoyenneVotePresenteur(Image image, Protocole protocole, Vue vue, VoteProtocoleService voteProtocoleService) {
80
			VoteProtocoleService voteProtocoleService) {
75
		this.vue = vue;
81
		this.vue = vue;
-
 
82
		this.protocole = protocole;
76
		this.protocole = protocole;
83
		this.image = image;
77
		this.image = image;
84
		this.voteProtocoleService = voteProtocoleService;
Line 78... Line 85...
78
		this.voteProtocoleService = voteProtocoleService;
85
 
79
		
86
		String nomProtocole = protocole.getNom();
80
		String nomProtocole = protocole.getNom();
87
		nomProtocole = nomProtocole.substring(0, 1).toUpperCase()
81
		nomProtocole = nomProtocole.substring(0, 1).toUpperCase()+ nomProtocole.substring(1).toLowerCase();
88
				+ nomProtocole.substring(1).toLowerCase();
82
		vue.getZoneProtocole().setText(nomProtocole);
89
		vue.getZoneProtocole().setText(nomProtocole);
Line 83... Line 90...
83
	}
90
	}
-
 
91
 
-
 
92
	public void go(HasWidgets composite) {
-
 
93
		vue.ajouterAuParent(composite);
-
 
94
		gererEvenements();
-
 
95
		rafraichirVue();
-
 
96
	}
-
 
97
 
-
 
98
	public void gererEvenements() {
-
 
99
		
84
 
100
		vue.getZoneVoter().addMouseMoveHandler(new MouseMoveHandler() {
85
	public void go(HasWidgets composite) {
101
			
86
		vue.ajouterAuParent(composite);
102
			@Override
87
		gererEvenements();
103
			public void onMouseMove(MouseMoveEvent event) {
88
		rafraichirVue();
104
				vue.masquerZoneVoter();
Line 128... Line 144...
128
 
144
 
129
	public void enregistrerVote() {
145
	public void enregistrerVote() {
130
		final VoteProtocole voteProtocole = new VoteProtocole();
146
		final VoteProtocole voteProtocole = new VoteProtocole();
131
		voteProtocole.setProtocole(this.protocole);
147
		voteProtocole.setProtocole(this.protocole);
132
		voteProtocole.setVote(valeurVoteUtilisateur);
148
		voteProtocole.setVote(valeurVoteUtilisateur);
-
 
149
		String idContributeur = CacheClient.getInstance().getUtilisateur()
133
		String idContributeur = CacheClient.getInstance().getUtilisateur().getId();
150
				.getId();
134
		voteProtocole.setContributeur(idContributeur);
151
		voteProtocole.setContributeur(idContributeur);
135
		// TODO: Mettre un message de chargement pendant l'envoi du vote ?
152
		// TODO: Mettre un message de chargement pendant l'envoi du vote ?
136
		// C'est très rapide mais bon
153
		// C'est très rapide mais bon
Line 143... Line 160...
143
				rafraichirVue();
160
				rafraichirVue();
144
			}
161
			}
Line 145... Line 162...
145
 
162
 
Line 146... Line 163...
146
		};
163
		};
-
 
164
 
147
 
165
		if (image.utilisateurAVotePourProtocole(this.protocole.getId() + "",
-
 
166
				idContributeur)) {
148
		if (image.utilisateurAVotePourProtocole(this.protocole.getId() + "", idContributeur)) {
167
			voteProtocoleService.modifierVote(image.getIdImage(),
149
			voteProtocoleService.modifierVote(image.getIdImage(), voteProtocole, vpc);
168
					voteProtocole, vpc);
150
			vue.afficherVoteModifie();
169
			vue.afficherVoteModifie();
-
 
170
		} else {
151
		} else {
171
			voteProtocoleService.ajouterVote(image.getIdImage(), voteProtocole,
152
			voteProtocoleService.ajouterVote(image.getIdImage(), voteProtocole, vpc);
172
					vpc);
153
			vue.afficherVotePrisEnCompte();
173
			vue.afficherVotePrisEnCompte();
Line 154... Line 174...
154
		}
174
		}
Line 162... Line 182...
162
		return vue;
182
		return vue;
163
	}
183
	}
Line 164... Line 184...
164
 
184
 
165
	private void rafraichirVue() {
185
	private void rafraichirVue() {
166
		valeurVoteTotal = calculerMoyenneVotes();
186
		valeurVoteTotal = calculerMoyenneVotes();
-
 
187
		VoteProtocole voteProtocole = image.getVotesProtocoles(
-
 
188
				protocole.getId()).get(
167
		VoteProtocole voteProtocole = image.getVotesProtocoles(protocole.getId()).get(CacheClient.getInstance().getUtilisateur().getId());
189
				CacheClient.getInstance().getUtilisateur().getId());
168
		int voteUtilisateur = 0;
190
		int voteUtilisateur = 0;
169
		if (voteProtocole != null) {
191
		if (voteProtocole != null) {
-
 
192
			voteUtilisateur = voteProtocole.getVote();
170
			voteUtilisateur = voteProtocole.getVote();
193
			vue.masquerZoneVoter();
171
		}
194
		}
172
		
195
 
-
 
196
		VoteFleurPresenteur presenteurFleur = new VoteFleurPresenteur(
173
		VoteFleurPresenteur presenteurFleur = new VoteFleurPresenteur(new VoteFleurVue());
197
				new VoteFleurVue());
174
		presenteurFleur.setNote(valeurVoteTotal);
198
		presenteurFleur.setNote(valeurVoteTotal);
175
		vue.setNoteGenerale(valeurVoteTotal);
199
		vue.setNoteGenerale(valeurVoteTotal);
-
 
200
		presenteurFleur.go(vue.getZoneFleur());
176
		presenteurFleur.go(vue.getZoneFleur());
201
		vue.rafraichir(voteUtilisateur,
177
		vue.rafraichir(voteUtilisateur, image.getVotesProtocoles(protocole.getId()).size());
202
				image.getVotesProtocoles(protocole.getId()).size());
Line 178... Line 203...
178
	}
203
	}
179
 
204
 
180
	public int calculerMoyenneVotes() {
205
	public int calculerMoyenneVotes() {
-
 
206
		double valeurVote = 0;
181
		double valeurVote = 0;
207
		int nbVote = 0;
-
 
208
		for (Iterator<String> iterator = image
182
		int nbVote = 0;
209
				.getVotesProtocoles(protocole.getId()).keySet().iterator(); iterator
-
 
210
				.hasNext();) {
183
		for (Iterator<String> iterator = image.getVotesProtocoles(protocole.getId()).keySet().iterator(); iterator.hasNext();) {
211
			VoteProtocole imageCelValidationData = image.getVotesProtocoles(
184
			VoteProtocole imageCelValidationData = image.getVotesProtocoles(protocole.getId()).get(iterator.next());
212
					protocole.getId()).get(iterator.next());
185
			valeurVote += (double) imageCelValidationData.getVote() / 5;
213
			valeurVote += (double) imageCelValidationData.getVote() / 5;
Line 186... Line 214...
186
			nbVote++;
214
			nbVote++;