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;
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
		void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
21
		void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
22
	}
23
 
24
	private Vue vue;
25
 
26
	private InterventionForum interventionForum;
27
 
28
	public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum) {
29
		this.vue = vue;
30
		this.interventionForum = interventionForum;
31
	}
32
 
33
	public void go(HasWidgets composite) {
34
		chargerIntervention();
35
		composite.add(vue.asWidget());
36
	}
37
 
38
	private void chargerIntervention() {
39
		if (interventionForum instanceof PropositionDetermination) {
40
			ajouterPropositionDetermination((PropositionDetermination) interventionForum);
41
		} else if (interventionForum instanceof Commentaire) {
42
			ajouterCommentaire((Commentaire) interventionForum);
43
		}
44
	}
45
 
46
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
959 benjamin 47
		BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue(), new VoteDeterminationServiceConcret());
966 gduche 48
		barreRepartitionVotePresenteur.toggleNomEspece();
663 benjamin 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
}