Subversion Repositories eFlore/Applications.del

Rev

Rev 978 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 978 Rev 1001
Line 1... Line 1...
1
package org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions;
1
package org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions;
Line -... Line 2...
-
 
2
 
2
 
3
import org.tela_botanica.del.client.cache.CacheClient;
3
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
4
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
4
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
5
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
6
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
6
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
7
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
7
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur;
8
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur;
-
 
9
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue;
8
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue;
10
import org.tela_botanica.del.client.i18n.I18n;
9
import org.tela_botanica.del.client.modeles.Commentaire;
11
import org.tela_botanica.del.client.modeles.Commentaire;
10
import org.tela_botanica.del.client.modeles.InterventionForum;
12
import org.tela_botanica.del.client.modeles.InterventionForum;
11
import org.tela_botanica.del.client.modeles.MoyenneVote;
13
import org.tela_botanica.del.client.modeles.MoyenneVote;
-
 
14
import org.tela_botanica.del.client.modeles.PropositionDetermination;
-
 
15
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
-
 
16
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
-
 
17
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
-
 
18
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
-
 
19
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
-
 
20
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire;
12
import org.tela_botanica.del.client.modeles.PropositionDetermination;
21
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.EvenementSuppressionDetermination;
-
 
22
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
13
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
23
import org.tela_botanica.del.client.services.rest.CommentaireService;
-
 
24
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
14
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
25
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService;
-
 
26
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret;
-
 
27
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
15
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret;
28
import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback;
16
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentairePresenteur;
29
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentairePresenteur;
Line 17... Line 30...
17
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentaireVue;
30
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentaireVue;
18
 
31
 
19
import com.google.gwt.event.dom.client.ClickEvent;
32
import com.google.gwt.event.dom.client.ClickEvent;
-
 
33
import com.google.gwt.event.dom.client.ClickHandler;
-
 
34
import com.google.gwt.event.dom.client.HasClickHandlers;
-
 
35
import com.google.gwt.event.dom.client.HasMouseOutHandlers;
-
 
36
import com.google.gwt.event.dom.client.HasMouseOverHandlers;
-
 
37
import com.google.gwt.event.dom.client.MouseOutEvent;
-
 
38
import com.google.gwt.event.dom.client.MouseOutHandler;
20
import com.google.gwt.event.dom.client.ClickHandler;
39
import com.google.gwt.event.dom.client.MouseOverEvent;
21
import com.google.gwt.event.dom.client.HasClickHandlers;
40
import com.google.gwt.event.dom.client.MouseOverHandler;
22
import com.google.gwt.user.client.Window;
41
import com.google.gwt.user.client.Window;
Line 23... Line 42...
23
import com.google.gwt.user.client.ui.HasWidgets;
42
import com.google.gwt.user.client.ui.HasWidgets;
Line 28... Line 47...
28
	public interface Vue extends IsWidget {
47
	public interface Vue extends IsWidget {
29
		void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
48
		void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
30
		void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
49
		void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
31
		HasClickHandlers getRepondre();
50
		HasClickHandlers getRepondre();
32
		HasWidgets getEnfants();
51
		HasWidgets getEnfants();
-
 
52
		HasClickHandlers getLienSuppression();
-
 
53
		void afficherLienSuppression();
-
 
54
		void cacherLienSuppression();
-
 
55
		HasMouseOverHandlers getConteneurInterventionMouseOver();
-
 
56
		HasMouseOutHandlers getConteneurInterventionMouseOut();
33
	}
57
	}
Line 34... Line 58...
34
 
58
 
Line 35... Line 59...
35
	private Vue vue;
59
	private Vue vue;
-
 
60
 
-
 
61
	private InterventionForum interventionForum;
-
 
62
	
-
 
63
	private CommentaireService commentaireService;
-
 
64
	
-
 
65
	private PropositionDeterminationService propositionDeterminationService;
Line 36... Line 66...
36
 
66
	
37
	private InterventionForum interventionForum;
67
	private FenetreOverlaySimplePresenteur overlay;
38
 
68
 
-
 
69
	public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum, CommentaireService commentaireService, PropositionDeterminationService propositionDeterminationService) {
-
 
70
		this.vue = vue;
39
	public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum) {
71
		this.interventionForum = interventionForum;
Line 40... Line 72...
40
		this.vue = vue;
72
		this.commentaireService = commentaireService;
41
		this.interventionForum = interventionForum;
73
		this.propositionDeterminationService = propositionDeterminationService;
42
	}
74
	}
Line 80... Line 112...
80
	private void gererEvenements() {
112
	private void gererEvenements() {
81
		vue.getRepondre().addClickHandler(new ClickHandler() {
113
		vue.getRepondre().addClickHandler(new ClickHandler() {
82
			@Override
114
			@Override
83
			public void onClick(ClickEvent event) {
115
			public void onClick(ClickEvent event) {
84
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(interventionForum, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
116
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(interventionForum, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
85
				FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
117
				overlay = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
86
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
118
				overlay.ouvrirFenetreModale(commentairePresenteur);
-
 
119
			}
-
 
120
		});
-
 
121
		
-
 
122
		vue.getConteneurInterventionMouseOver().addMouseOverHandler(new MouseOverHandler() {		
-
 
123
			@Override
-
 
124
			public void onMouseOver(MouseOverEvent event) {
-
 
125
				if(peutSupprimerIntervention()) {
-
 
126
					vue.afficherLienSuppression();
-
 
127
				}
-
 
128
			}
-
 
129
		});
-
 
130
		
-
 
131
		vue.getConteneurInterventionMouseOut().addMouseOutHandler(new MouseOutHandler() {
-
 
132
			@Override
-
 
133
			public void onMouseOut(MouseOutEvent event) {
-
 
134
				if(peutSupprimerIntervention()) {
-
 
135
					vue.cacherLienSuppression();
-
 
136
				}
-
 
137
			}		
-
 
138
		});
-
 
139
 
-
 
140
		vue.getLienSuppression().addClickHandler(new ClickHandler() {		
-
 
141
			@Override
-
 
142
			public void onClick(ClickEvent event) {
-
 
143
				
-
 
144
				String message = "";
-
 
145
				if (interventionForum instanceof PropositionDetermination) {
-
 
146
					message = I18n.getVocabulary().confirmationSuppressionDetermination();
-
 
147
				} else if (interventionForum instanceof Commentaire) {
-
 
148
					message = I18n.getVocabulary().confirmationSuppressionCommentaire();
-
 
149
				}
-
 
150
				
-
 
151
				if(Window.confirm(message)) {
-
 
152
					supprimerIntervention();
-
 
153
				}
87
			}
154
			}
88
		});
155
		});
-
 
156
		vue.cacherLienSuppression();
-
 
157
		
-
 
158
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
-
 
159
			@Override
-
 
160
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
-
 
161
				if(overlay != null && overlay.fenetreModaleEstOuverte()) {
-
 
162
					overlay.fermerFenetreModale();
-
 
163
				}
-
 
164
			}
-
 
165
		});
-
 
166
 
-
 
167
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
-
 
168
			@Override
-
 
169
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
-
 
170
				if(overlay != null && overlay.fenetreModaleEstOuverte()) {
-
 
171
					overlay.fermerFenetreModale();
-
 
172
				}
-
 
173
			}
-
 
174
		});
-
 
175
	}
-
 
176
	
-
 
177
	private boolean peutSupprimerIntervention() {
-
 
178
		return (!interventionForum.aDesCommentaires() && interventionForum.getContributeur().getId().equals(CacheClient.getInstance().getUtilisateur().getId()));
-
 
179
	}
-
 
180
	
-
 
181
	private void supprimerIntervention() {
-
 
182
		if(interventionForum instanceof PropositionDetermination) {
-
 
183
			propositionDeterminationService.supprimerProposition((PropositionDetermination)interventionForum, new SuppressionPropositionDeterminationCallback() {	
-
 
184
				@Override
-
 
185
				public void surRetour(String objetRetour) {
-
 
186
					CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum);
-
 
187
					BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionDetermination((PropositionDetermination)interventionForum));
-
 
188
				}
-
 
189
			});
-
 
190
		}
-
 
191
		
-
 
192
		if(interventionForum instanceof Commentaire) {
-
 
193
			commentaireService.supprimerCommentaire((Commentaire)interventionForum, new SuppressionCommentaireCallback() {			
-
 
194
				@Override
-
 
195
				public void surRetour(String objetRetour) {
-
 
196
					CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum);
-
 
197
					BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionCommentaire((Commentaire)interventionForum));
-
 
198
				}
-
 
199
			});
-
 
200
		}
89
	}
201
	}
90
}
202
}