Subversion Repositories eFlore/Applications.del

Rev

Rev 959 | Go to most recent revision | Details | Compare with Previous | 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;
959 benjamin 10
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret;
663 benjamin 11
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentairePresenteur;
12
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentaireVue;
13
 
14
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.IsWidget;
16
 
17
public class ForumInterventionPresenteur {
18
 
19
	public interface Vue extends IsWidget {
20
 
21
		void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
22
 
23
		void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
24
	}
25
 
26
	private Vue vue;
27
 
28
	private InterventionForum interventionForum;
29
 
30
	public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum) {
31
		this.vue = vue;
32
		this.interventionForum = interventionForum;
33
	}
34
 
35
	public void go(HasWidgets composite) {
36
		chargerIntervention();
37
		composite.add(vue.asWidget());
38
	}
39
 
40
	private void chargerIntervention() {
41
		if (interventionForum instanceof PropositionDetermination) {
42
			ajouterPropositionDetermination((PropositionDetermination) interventionForum);
43
		} else if (interventionForum instanceof Commentaire) {
44
			ajouterCommentaire((Commentaire) interventionForum);
45
		}
46
	}
47
 
48
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
959 benjamin 49
		BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue(), new VoteDeterminationServiceConcret());
966 gduche 50
		barreRepartitionVotePresenteur.toggleNomEspece();
663 benjamin 51
		calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination);
52
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination);
53
		vue.ajouterInterventionDetermination(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue());
54
	}
55
 
56
	private void ajouterCommentaire(Commentaire proposition) {
57
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), proposition);
58
		vue.ajouterInterventionCommentaire(proposition, arbreCommentairePresenteur.getArbreCommentaireVue());
59
	}
60
 
61
	private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) {
62
		MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination);
63
		barreRepartitionVotePresenteur.afficherVotes(votes);
64
	}
65
}