Subversion Repositories eFlore/Applications.del

Rev

Rev 1196 | Rev 1833 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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