Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
663 benjamin 1
package org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions;
2
 
3
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur;
4
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue;
5
import org.tela_botanica.del.client.modeles.Commentaire;
6
import org.tela_botanica.del.client.modeles.InterventionForum;
7
import org.tela_botanica.del.client.modeles.MoyenneVote;
8
import org.tela_botanica.del.client.modeles.PropositionDetermination;
9
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
10
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentairePresenteur;
11
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentaireVue;
12
 
13
import com.google.gwt.user.client.ui.HasWidgets;
14
import com.google.gwt.user.client.ui.IsWidget;
15
 
16
public class ForumInterventionPresenteur {
17
 
18
	public interface Vue extends IsWidget {
19
 
20
		void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
21
 
22
		void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
23
	}
24
 
25
	private Vue vue;
26
 
27
	private InterventionForum interventionForum;
28
 
29
	public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum) {
30
		this.vue = vue;
31
		this.interventionForum = interventionForum;
32
	}
33
 
34
	public void go(HasWidgets composite) {
35
		chargerIntervention();
36
		composite.add(vue.asWidget());
37
	}
38
 
39
	private void chargerIntervention() {
40
		if (interventionForum instanceof PropositionDetermination) {
41
			ajouterPropositionDetermination((PropositionDetermination) interventionForum);
42
		} else if (interventionForum instanceof Commentaire) {
43
			ajouterCommentaire((Commentaire) interventionForum);
44
		}
45
	}
46
 
47
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
48
		BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue());
49
		calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination);
50
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination);
51
		vue.ajouterInterventionDetermination(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue());
52
	}
53
 
54
	private void ajouterCommentaire(Commentaire proposition) {
55
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), proposition);
56
		vue.ajouterInterventionCommentaire(proposition, arbreCommentairePresenteur.getArbreCommentaireVue());
57
	}
58
 
59
	private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) {
60
		MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination);
61
		barreRepartitionVotePresenteur.afficherVotes(votes);
62
	}
63
}