Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1437 Rev 1531
1
package org.tela_botanica.del.client.composants.forum.interventions;
1
package org.tela_botanica.del.client.composants.forum.interventions;
2
 
2
 
3
import org.tela_botanica.del.client.cache.CacheClient;
3
import org.tela_botanica.del.client.cache.CacheClient;
4
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
4
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
6
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
6
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
7
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
7
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
8
import org.tela_botanica.del.client.composants.forum.ArbreCommentairePresenteur;
8
import org.tela_botanica.del.client.composants.forum.ArbreCommentairePresenteur;
9
import org.tela_botanica.del.client.composants.forum.ArbreCommentaireVue;
9
import org.tela_botanica.del.client.composants.forum.ArbreCommentaireVue;
10
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur;
10
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur;
11
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue;
11
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue;
12
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur;
12
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur;
13
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue;
13
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue;
14
import org.tela_botanica.del.client.config.Config;
14
import org.tela_botanica.del.client.config.Config;
15
import org.tela_botanica.del.client.i18n.I18n;
15
import org.tela_botanica.del.client.i18n.I18n;
16
import org.tela_botanica.del.client.modeles.Commentaire;
16
import org.tela_botanica.del.client.modeles.Commentaire;
17
import org.tela_botanica.del.client.modeles.InterventionForum;
17
import org.tela_botanica.del.client.modeles.InterventionForum;
18
import org.tela_botanica.del.client.modeles.MoyenneVote;
18
import org.tela_botanica.del.client.modeles.MoyenneVote;
19
import org.tela_botanica.del.client.modeles.PropositionDetermination;
19
import org.tela_botanica.del.client.modeles.PropositionDetermination;
20
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
20
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
21
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
21
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
22
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
22
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
23
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
23
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
24
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
24
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
25
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire;
25
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire;
26
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.EvenementSuppressionDetermination;
26
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.EvenementSuppressionDetermination;
27
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
27
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
28
import org.tela_botanica.del.client.services.rest.CommentaireService;
28
import org.tela_botanica.del.client.services.rest.CommentaireService;
29
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
29
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
30
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService;
30
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService;
31
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret;
31
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret;
32
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
32
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
33
import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback;
33
import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback;
34
 
34
 
35
import com.google.gwt.event.dom.client.ClickEvent;
35
import com.google.gwt.event.dom.client.ClickEvent;
36
import com.google.gwt.event.dom.client.ClickHandler;
36
import com.google.gwt.event.dom.client.ClickHandler;
37
import com.google.gwt.event.dom.client.HasClickHandlers;
37
import com.google.gwt.event.dom.client.HasClickHandlers;
38
import com.google.gwt.event.dom.client.HasMouseOutHandlers;
38
import com.google.gwt.event.dom.client.HasMouseOutHandlers;
39
import com.google.gwt.event.dom.client.HasMouseOverHandlers;
39
import com.google.gwt.event.dom.client.HasMouseOverHandlers;
40
import com.google.gwt.event.dom.client.MouseOutEvent;
40
import com.google.gwt.event.dom.client.MouseOutEvent;
41
import com.google.gwt.event.dom.client.MouseOutHandler;
41
import com.google.gwt.event.dom.client.MouseOutHandler;
42
import com.google.gwt.event.dom.client.MouseOverEvent;
42
import com.google.gwt.event.dom.client.MouseOverEvent;
43
import com.google.gwt.event.dom.client.MouseOverHandler;
43
import com.google.gwt.event.dom.client.MouseOverHandler;
44
import com.google.gwt.user.client.Window;
44
import com.google.gwt.user.client.Window;
45
import com.google.gwt.user.client.ui.HasWidgets;
45
import com.google.gwt.user.client.ui.HasWidgets;
46
import com.google.gwt.user.client.ui.IsWidget;
46
import com.google.gwt.user.client.ui.IsWidget;
47
 
47
 
48
public class ForumInterventionPresenteur {
48
public class ForumInterventionPresenteur {
49
 
49
 
50
	public interface Vue extends IsWidget {
50
	public interface Vue extends IsWidget {
51
		void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
51
		void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
52
		void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
52
		void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
53
		HasClickHandlers getRepondre();
53
		HasClickHandlers getRepondre();
54
		HasWidgets getEnfants();
54
		HasWidgets getEnfants();
55
		HasClickHandlers getLienSuppression();
55
		HasClickHandlers getLienSuppression();
56
		void afficherLienSuppression();
56
		void afficherLienSuppression();
57
		void cacherLienSuppression();
57
		void cacherLienSuppression();
58
		HasMouseOverHandlers getConteneurInterventionMouseOver();
58
		HasMouseOverHandlers getConteneurInterventionMouseOver();
59
		HasMouseOutHandlers getConteneurInterventionMouseOut();
59
		HasMouseOutHandlers getConteneurInterventionMouseOut();
60
		HasClickHandlers getEspece();
60
		HasClickHandlers getEspece();
61
		void ajouterLienEspece();
61
		void ajouterLienEspece();
62
		HasClickHandlers getAuteur();
62
		HasClickHandlers getAuteur();
63
		void ajouterLienAuteur();
63
		void ajouterLienAuteur();
64
		void cacherDeterminationProposee();
64
		void cacherDeterminationProposee();
65
		void ajouterLienVotes();
65
		void ajouterLienVotes();
66
		void masquerLienVotes();
66
		void masquerLienVotes();
67
		void setNbVotes(int votes);
67
		void setNbVotes(int votes);
68
		public HasClickHandlers getZoneNbVotes();
68
		public HasClickHandlers getZoneNbVotes();
69
	}
69
	}
70
 
70
 
71
	private Vue vue;
71
	private Vue vue;
72
 
72
 
73
	private InterventionForum interventionForum;
73
	private InterventionForum interventionForum;
74
	
74
	
75
	private CommentaireService commentaireService;
75
	private CommentaireService commentaireService;
76
	
76
	
77
	private PropositionDeterminationService propositionDeterminationService;
77
	private PropositionDeterminationService propositionDeterminationService;
78
	
78
	
79
	private FenetreOverlaySimplePresenteur overlay;
79
	private FenetreOverlaySimplePresenteur overlay;
80
 
80
 
81
	private int nbVotes;
81
	private int nbVotes;
82
	
82
	
83
	public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum, CommentaireService commentaireService, PropositionDeterminationService propositionDeterminationService) {
83
	public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum, CommentaireService commentaireService, PropositionDeterminationService propositionDeterminationService) {
84
		this.vue = vue;
84
		this.vue = vue;
85
		this.interventionForum = interventionForum;
85
		this.interventionForum = interventionForum;
86
		this.commentaireService = commentaireService;
86
		this.commentaireService = commentaireService;
87
		this.propositionDeterminationService = propositionDeterminationService;
87
		this.propositionDeterminationService = propositionDeterminationService;
88
	}
88
	}
89
 
89
 
90
	public void go(HasWidgets composite) {
90
	public void go(HasWidgets composite) {
91
		chargerIntervention();
91
		chargerIntervention();
92
		composite.add(vue.asWidget());
92
		composite.add(vue.asWidget());
93
		gererEvenements();
93
		gererEvenements();
94
	}
94
	}
95
	
95
	
96
	public void ajouterEnfant(ForumInterventionPresenteur presenteur) {
96
	public void ajouterEnfant(ForumInterventionPresenteur presenteur) {
97
		presenteur.go(vue.getEnfants());
97
		presenteur.go(vue.getEnfants());
98
	}
98
	}
99
 
99
 
100
	private void chargerIntervention() {
100
	private void chargerIntervention() {
101
		if (interventionForum instanceof PropositionDetermination) {
101
		if (interventionForum instanceof PropositionDetermination) {
102
			ajouterPropositionDetermination((PropositionDetermination) interventionForum);
102
			ajouterPropositionDetermination((PropositionDetermination) interventionForum);
103
		} else if (interventionForum instanceof Commentaire) {
103
		} else if (interventionForum instanceof Commentaire) {
104
			ajouterCommentaire((Commentaire) interventionForum);
104
			ajouterCommentaire((Commentaire) interventionForum);
105
			vue.cacherDeterminationProposee();
105
			vue.cacherDeterminationProposee();
106
		}
106
		}
107
	}
107
	}
108
 
108
 
109
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
109
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
110
		this.nbVotes = propositionDetermination.getVotesDeterminations().size();
110
		this.nbVotes = propositionDetermination.getVotesDeterminations().size();
111
		
111
		
112
		BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue(), new VoteDeterminationServiceConcret());
112
		BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue(), new VoteDeterminationServiceConcret());
113
		barreRepartitionVotePresenteur.toggleNomEspece();
113
		barreRepartitionVotePresenteur.toggleNomEspece();
114
		calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination);
114
		calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination);
115
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination);
115
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination);
116
		vue.ajouterInterventionDetermination(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue());
116
		vue.ajouterInterventionDetermination(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue());
117
		
117
		
118
		final String nn = propositionDetermination.getNumNomenclatural();
118
		final String nn = propositionDetermination.getNumNomenclatural();
119
		final String referentiel = propositionDetermination.getReferentiel();
119
		final String referentiel = propositionDetermination.getReferentiel();
-
 
120
		// @TODO harmoniser les valeurs qui veulent dire "y en n'a pas" plutôt que !equals("kedal") :-/
120
		if (nn != null && !nn.equals(0) && !nn.equals("0") && referentiel != null && !referentiel.equals("")) {
121
		if (nn != null && !nn.equals(0) && !nn.equals("0") && referentiel != null && !referentiel.equals("")) {
121
			vue.ajouterLienEspece();
122
			vue.ajouterLienEspece();
122
			vue.getEspece().addClickHandler(new ClickHandler() {
123
			vue.getEspece().addClickHandler(new ClickHandler() {
123
				
124
				
124
				@Override
125
				@Override
125
				public void onClick(ClickEvent event) {
126
				public void onClick(ClickEvent event) {
126
					Config config = new Config();
127
					Config config = new Config();
127
					String efloreUrlFicheTpl = config.getUrl("efloreTaxon");
128
					String efloreUrlFicheTpl = config.getUrl("efloreTaxon");
128
					String efloreUrlFiche = efloreUrlFicheTpl.replaceAll("referentiel-nn-num_nom", referentiel.substring(0,5)+"-nn-"+nn);
129
					String efloreUrlFiche = efloreUrlFicheTpl.replaceAll("referentiel-nn-num_nom", referentiel.substring(0,5)+"-nn-"+nn);
129
					Window.open(efloreUrlFiche, "Fiche eflore", null);
130
					Window.open(efloreUrlFiche, "Fiche eflore", null);
130
				}
131
				}
131
			});
132
			});
132
		}
133
		}
133
		
134
		
134
		final String idContributeur = propositionDetermination.getContributeur().getId();
135
		final String idContributeur = propositionDetermination.getContributeur().getId();
135
		if (idContributeur != null && !idContributeur.equals("0")) {
136
		if (idContributeur != null && !idContributeur.equals("0")) {
136
			vue.ajouterLienAuteur();
137
			vue.ajouterLienAuteur();
137
			vue.getAuteur().addClickHandler(new ClickHandler() {
138
			vue.getAuteur().addClickHandler(new ClickHandler() {
138
				@Override
139
				@Override
139
				public void onClick(ClickEvent event) {
140
				public void onClick(ClickEvent event) {
140
					Config config = new Config();
141
					Config config = new Config();
141
					Window.open(config.getUrl("annuaire") + idContributeur, "Consultation de l'annuaire", null);
142
					Window.open(config.getUrl("annuaire") + idContributeur, "Consultation de l'annuaire", null);
142
				}
143
				}
143
			});
144
			});
144
		}
145
		}
145
	}
146
	}
146
 
147
 
147
	private void ajouterCommentaire(Commentaire proposition) {
148
	private void ajouterCommentaire(Commentaire proposition) {
148
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), proposition);
149
		ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), proposition);
149
		vue.ajouterInterventionCommentaire(proposition, arbreCommentairePresenteur.getArbreCommentaireVue());
150
		vue.ajouterInterventionCommentaire(proposition, arbreCommentairePresenteur.getArbreCommentaireVue());
150
	}
151
	}
151
 
152
 
152
	private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) {
153
	private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) {
153
		MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination);
154
		MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination);
154
		barreRepartitionVotePresenteur.afficherVotes(votes);
155
		barreRepartitionVotePresenteur.afficherVotes(votes);
155
	}
156
	}
156
	
157
	
157
	private void gererEvenements() {
158
	private void gererEvenements() {
158
		if (this.nbVotes > 0) {
159
		if (this.nbVotes > 0) {
159
			vue.setNbVotes(this.nbVotes);
160
			vue.setNbVotes(this.nbVotes);
160
			vue.ajouterLienVotes();
161
			vue.ajouterLienVotes();
161
			vue.getZoneNbVotes().addClickHandler(new ClickHandler() {
162
			vue.getZoneNbVotes().addClickHandler(new ClickHandler() {
162
				@Override
163
				@Override
163
				public void onClick(ClickEvent event) {
164
				public void onClick(ClickEvent event) {
164
					if (nbVotes > 0) {
165
					if (nbVotes > 0) {
165
						FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(
166
						FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(
166
								new FenetreOverlayDefilanteVue());
167
								new FenetreOverlayDefilanteVue());
167
						DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur(
168
						DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur(
168
								new DetailListeVotesDeterminationVue());
169
								new DetailListeVotesDeterminationVue());
169
						fenetreOverlaySimplePresenteur
170
						fenetreOverlaySimplePresenteur
170
								.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur);
171
								.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur);
171
						detailListeVotesDeterminationPresenteur
172
						detailListeVotesDeterminationPresenteur
172
								.afficherVotes((PropositionDetermination) interventionForum);
173
								.afficherVotes((PropositionDetermination) interventionForum);
173
					}
174
					}
174
				}
175
				}
175
			});
176
			});
176
		} else {
177
		} else {
177
			vue.masquerLienVotes();
178
			vue.masquerLienVotes();
178
		}
179
		}
179
		
180
		
180
		vue.getRepondre().addClickHandler(new ClickHandler() {
181
		vue.getRepondre().addClickHandler(new ClickHandler() {
181
			@Override
182
			@Override
182
			public void onClick(ClickEvent event) {
183
			public void onClick(ClickEvent event) {
183
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(interventionForum, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
184
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(interventionForum, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
184
				overlay = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
185
				overlay = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
185
				overlay.ouvrirFenetreModale(commentairePresenteur);
186
				overlay.ouvrirFenetreModale(commentairePresenteur);
186
			}
187
			}
187
		});
188
		});
188
		
189
		
189
		vue.getConteneurInterventionMouseOver().addMouseOverHandler(new MouseOverHandler() {		
190
		vue.getConteneurInterventionMouseOver().addMouseOverHandler(new MouseOverHandler() {		
190
			@Override
191
			@Override
191
			public void onMouseOver(MouseOverEvent event) {
192
			public void onMouseOver(MouseOverEvent event) {
192
				if(peutSupprimerIntervention()) {
193
				if(peutSupprimerIntervention()) {
193
					vue.afficherLienSuppression();
194
					vue.afficherLienSuppression();
194
				}
195
				}
195
			}
196
			}
196
		});
197
		});
197
		
198
		
198
		vue.getConteneurInterventionMouseOut().addMouseOutHandler(new MouseOutHandler() {
199
		vue.getConteneurInterventionMouseOut().addMouseOutHandler(new MouseOutHandler() {
199
			@Override
200
			@Override
200
			public void onMouseOut(MouseOutEvent event) {
201
			public void onMouseOut(MouseOutEvent event) {
201
				if(peutSupprimerIntervention()) {
202
				if(peutSupprimerIntervention()) {
202
					vue.cacherLienSuppression();
203
					vue.cacherLienSuppression();
203
				}
204
				}
204
			}		
205
			}		
205
		});
206
		});
206
 
207
 
207
		vue.getLienSuppression().addClickHandler(new ClickHandler() {		
208
		vue.getLienSuppression().addClickHandler(new ClickHandler() {		
208
			@Override
209
			@Override
209
			public void onClick(ClickEvent event) {
210
			public void onClick(ClickEvent event) {
210
				
211
				
211
				String message = "";
212
				String message = "";
212
				if (interventionForum instanceof PropositionDetermination) {
213
				if (interventionForum instanceof PropositionDetermination) {
213
					message = I18n.getVocabulary().confirmationSuppressionDetermination();
214
					message = I18n.getVocabulary().confirmationSuppressionDetermination();
214
				} else if (interventionForum instanceof Commentaire) {
215
				} else if (interventionForum instanceof Commentaire) {
215
					message = I18n.getVocabulary().confirmationSuppressionCommentaire();
216
					message = I18n.getVocabulary().confirmationSuppressionCommentaire();
216
				}
217
				}
217
				
218
				
218
				if(Window.confirm(message)) {
219
				if(Window.confirm(message)) {
219
					supprimerIntervention();
220
					supprimerIntervention();
220
				}
221
				}
221
			}
222
			}
222
		});
223
		});
223
		vue.cacherLienSuppression();
224
		vue.cacherLienSuppression();
224
		
225
		
225
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
226
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
226
			@Override
227
			@Override
227
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
228
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
228
				if(overlay != null && overlay.fenetreModaleEstOuverte()) {
229
				if(overlay != null && overlay.fenetreModaleEstOuverte()) {
229
					overlay.fermerFenetreModale();
230
					overlay.fermerFenetreModale();
230
				}
231
				}
231
			}
232
			}
232
		});
233
		});
233
 
234
 
234
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
235
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
235
			@Override
236
			@Override
236
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
237
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
237
				if(overlay != null && overlay.fenetreModaleEstOuverte()) {
238
				if(overlay != null && overlay.fenetreModaleEstOuverte()) {
238
					overlay.fermerFenetreModale();
239
					overlay.fermerFenetreModale();
239
				}
240
				}
240
			}
241
			}
241
		});
242
		});
242
	}
243
	}
243
	
244
	
244
	private boolean peutSupprimerIntervention() {
245
	private boolean peutSupprimerIntervention() {
245
		return (!interventionForum.aDesCommentaires() && interventionForum.getContributeur() != null && interventionForum.getContributeur().getId().equals(CacheClient.getInstance().getUtilisateur().getId()));
246
		return (!interventionForum.aDesCommentaires() && interventionForum.getContributeur() != null && interventionForum.getContributeur().getId().equals(CacheClient.getInstance().getUtilisateur().getId()));
246
	}
247
	}
247
	
248
	
248
	private void supprimerIntervention() {
249
	private void supprimerIntervention() {
249
		if(interventionForum instanceof PropositionDetermination) {
250
		if(interventionForum instanceof PropositionDetermination) {
250
			propositionDeterminationService.supprimerProposition((PropositionDetermination)interventionForum, new SuppressionPropositionDeterminationCallback() {	
251
			propositionDeterminationService.supprimerProposition((PropositionDetermination)interventionForum, new SuppressionPropositionDeterminationCallback() {	
251
				@Override
252
				@Override
252
				public void surRetour(String objetRetour) {
253
				public void surRetour(String objetRetour) {
253
					CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum);
254
					CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum);
254
					BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionDetermination((PropositionDetermination)interventionForum));
255
					BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionDetermination((PropositionDetermination)interventionForum));
255
				}
256
				}
256
			});
257
			});
257
		}
258
		}
258
		
259
		
259
		if(interventionForum instanceof Commentaire) {
260
		if(interventionForum instanceof Commentaire) {
260
			commentaireService.supprimerCommentaire((Commentaire)interventionForum, new SuppressionCommentaireCallback() {			
261
			commentaireService.supprimerCommentaire((Commentaire)interventionForum, new SuppressionCommentaireCallback() {			
261
				@Override
262
				@Override
262
				public void surRetour(String objetRetour) {
263
				public void surRetour(String objetRetour) {
263
					CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum);
264
					CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum);
264
					BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionCommentaire((Commentaire)interventionForum));
265
					BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionCommentaire((Commentaire)interventionForum));
265
				}
266
				}
266
			});
267
			});
267
		}
268
		}
268
	}
269
	}
269
}
270
}