Subversion Repositories eFlore/Applications.del

Rev

Rev 1892 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1892 Rev 1927
1
package org.tela_botanica.del.client.vues.identiplante.resultats.observationdeterminations;
1
package org.tela_botanica.del.client.vues.identiplante.resultats.observationdeterminations;
2
 
2
 
3
import org.tela_botanica.del.client.composants.commentaires.DetailCommentairePresenteur;
3
import org.tela_botanica.del.client.composants.commentaires.DetailCommentairePresenteur;
4
import org.tela_botanica.del.client.composants.commentaires.DetailCommentaireVue;
4
import org.tela_botanica.del.client.composants.commentaires.DetailCommentaireVue;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
7
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur;
7
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur;
8
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue;
8
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue;
9
import org.tela_botanica.del.client.modeles.PropositionDetermination;
9
import org.tela_botanica.del.client.modeles.PropositionDetermination;
10
import org.tela_botanica.del.client.modeles.VoteDetermination;
10
import org.tela_botanica.del.client.modeles.VoteDetermination;
11
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
11
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
12
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
12
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
13
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
13
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
14
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
14
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
15
 
15
 
16
import com.google.gwt.event.dom.client.ClickEvent;
16
import com.google.gwt.event.dom.client.ClickEvent;
17
import com.google.gwt.event.dom.client.ClickHandler;
17
import com.google.gwt.event.dom.client.ClickHandler;
18
import com.google.gwt.event.dom.client.HasClickHandlers;
18
import com.google.gwt.event.dom.client.HasClickHandlers;
-
 
19
import com.google.gwt.user.client.Window;
19
import com.google.gwt.user.client.ui.HasWidgets;
20
import com.google.gwt.user.client.ui.HasWidgets;
20
import com.google.gwt.user.client.ui.IsWidget;
21
import com.google.gwt.user.client.ui.IsWidget;
21
 
22
 
22
public class LignePropositionPresenteur {
23
public class LignePropositionPresenteur {
23
 
24
 
24
	private int nbCommentaires, nbVotes;
25
	private int nbCommentaires, nbVotes;
25
 
26
 
26
	public abstract interface Vue extends IsWidget {
27
	public abstract interface Vue extends IsWidget {
27
		public HasClickHandlers getZoneNbVotes();
28
		public HasClickHandlers getZoneNbVotes();
28
 
29
 
29
		public HasClickHandlers getZoneNbCommentaires();
30
		public HasClickHandlers getZoneNbCommentaires();
30
 
31
 
31
		public void setNbVotes(int nbVotes);
32
		public void setNbVotes(int nbVotes);
32
 
33
 
33
		public void setNbCommentaires(int nbCommentaires);
34
		public void setNbCommentaires(int nbCommentaires);
34
 
35
 
35
		public void enleverLienCommentaires();
36
		public void enleverLienCommentaires();
36
 
37
 
37
		public void enleverLienVotes();
38
		public void enleverLienVotes();
38
		
39
		
39
		public void ajouterLienVotes();
40
		public void ajouterLienVotes();
40
		
41
		
41
		public void setPropositionRetenue(boolean propositionRetenue);
42
		public void setPropositionRetenue(boolean propositionRetenue);
42
	}
43
	}
43
 
44
 
44
	private Vue vue;
45
	private Vue vue;
45
 
46
 
46
	private PropositionDetermination propositionDetermination;
47
	private PropositionDetermination propositionDetermination;
47
 
48
 
48
	public LignePropositionPresenteur(Vue vue,
49
	public LignePropositionPresenteur(Vue vue,
49
			PropositionDetermination propositionDetermination) {
50
			PropositionDetermination propositionDetermination) {
50
		this.vue = vue;
51
		this.vue = vue;
51
		this.propositionDetermination = propositionDetermination;
52
		this.propositionDetermination = propositionDetermination;
52
	}
53
	}
53
 
54
 
54
	public void go(HasWidgets composite) {
55
	public void go(HasWidgets composite) {
55
		composite.add(vue.asWidget());
56
		composite.add(vue.asWidget());
56
		chargerPropositionDetermination();
57
		chargerPropositionDetermination();
57
		gererEvenements();
58
		gererEvenements();
58
	}
59
	}
59
 
60
 
60
	public void chargerPropositionDetermination() {
61
	public void chargerPropositionDetermination() {
61
		this.nbCommentaires = propositionDetermination.getTotalCommentaires();
62
		this.nbCommentaires = propositionDetermination.getTotalCommentaires();
62
		this.nbVotes = propositionDetermination.getVotesDeterminations().size();
63
		this.nbVotes = propositionDetermination.getVotesDeterminations().size();
63
		vue.setNbCommentaires(nbCommentaires);
64
		vue.setNbCommentaires(nbCommentaires);
64
		vue.setNbVotes(nbVotes);
65
		vue.setNbVotes(nbVotes);
65
		vue.setPropositionRetenue(propositionDetermination.estPropositionRetenue());
66
		vue.setPropositionRetenue(propositionDetermination.estPropositionRetenue());
66
	}
67
	}
67
 
68
 
68
	public void gererEvenements() {
69
	public void gererEvenements() {
69
		gererEvenementsVotes();
70
		gererEvenementsVotes();
70
		if (nbCommentaires > 0) {
71
		if (nbCommentaires > 0) {
71
			vue.getZoneNbCommentaires().addClickHandler(new ClickHandler() {
72
			vue.getZoneNbCommentaires().addClickHandler(new ClickHandler() {
72
				@Override
73
				@Override
73
				public void onClick(ClickEvent event) {
74
				public void onClick(ClickEvent event) {
74
					if (nbCommentaires > 0) {
75
					if (nbCommentaires > 0) {
75
						FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(
76
						FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(
76
								new FenetreOverlayDefilanteVue());
77
								new FenetreOverlayDefilanteVue());
77
						DetailCommentairePresenteur detailCommentairePresenteur = new DetailCommentairePresenteur(
78
						DetailCommentairePresenteur detailCommentairePresenteur = new DetailCommentairePresenteur(
78
								new DetailCommentaireVue(),
79
								new DetailCommentaireVue(),
79
								new CommentaireServiceConcret(),
80
								new CommentaireServiceConcret(),
80
								propositionDetermination);
81
								propositionDetermination);
81
						fenetreOverlaySimplePresenteur
82
						fenetreOverlaySimplePresenteur
82
								.ouvrirFenetreModale(detailCommentairePresenteur);
83
								.ouvrirFenetreModale(detailCommentairePresenteur);
83
						detailCommentairePresenteur.afficherCommentaires();
84
						detailCommentairePresenteur.afficherCommentaires();
84
					}
85
					}
85
				}
86
				}
86
			});
87
			});
87
		} else {
88
		} else {
88
			vue.enleverLienCommentaires();
89
			vue.enleverLienCommentaires();
89
		}
90
		}
90
		
91
		
91
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
92
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
92
			@Override
93
			@Override
93
			public void onVoteDetermination(VoteDetermination event) {
94
			public void onVoteDetermination(VoteDetermination event) {
94
				if(event.getPropositionDetermination() == propositionDetermination) {
95
				if(event.getPropositionDetermination() == propositionDetermination) {
95
					if(nbVotes == 0) {
96
					if(nbVotes == 0) {
96
						nbVotes++;
97
						nbVotes++;
97
						gererEvenementsVotes();
98
						gererEvenementsVotes();
98
					} 
99
					} 
99
					vue.setNbVotes(nbVotes);
100
					vue.setNbVotes(nbVotes);
100
				}
101
				}
101
				
102
				
102
			}
103
			}
103
		});
104
		});
104
	}
105
	}
105
 
106
 
106
	private void gererEvenementsVotes() {
107
	private void gererEvenementsVotes() {
107
		if (nbVotes > 0) {
108
		if (nbVotes > 0) {
108
			vue.getZoneNbVotes().addClickHandler(new ClickHandler() {
109
			vue.getZoneNbVotes().addClickHandler(new ClickHandler() {
109
				@Override
110
				@Override
110
				public void onClick(ClickEvent event) {
111
				public void onClick(ClickEvent event) {
111
					if (nbVotes > 0) {
112
					if (nbVotes > 0) {
112
						FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(
113
						FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(
113
								new FenetreOverlayDefilanteVue());
114
								new FenetreOverlayDefilanteVue());
114
						DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur(
115
						DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur(
115
								new DetailListeVotesDeterminationVue());
116
								new DetailListeVotesDeterminationVue());
116
						fenetreOverlaySimplePresenteur
117
						fenetreOverlaySimplePresenteur
117
								.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur);
118
								.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur);
118
						detailListeVotesDeterminationPresenteur
119
						detailListeVotesDeterminationPresenteur
119
								.afficherVotes(propositionDetermination);
120
								.afficherVotes(propositionDetermination);
120
					}
121
					}
121
				}
122
				}
122
			});
123
			});
123
			vue.ajouterLienVotes();
124
			vue.ajouterLienVotes();
124
		} else {
125
		} else {
125
			vue.enleverLienVotes();
126
			vue.enleverLienVotes();
126
		}
127
		}
127
	}
128
	}
128
}
129
}