Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1672 Rev 1687
1
package org.tela_botanica.del.client.vues.pictoflora.resultats.images;
1
package org.tela_botanica.del.client.vues.pictoflora.resultats.images;
2
 
2
 
3
import java.util.HashMap;
3
import java.util.HashMap;
4
 
4
 
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
8
import org.tela_botanica.del.client.composants.images.DetailImagePresenteur;
8
import org.tela_botanica.del.client.composants.images.DetailImagePresenteur;
9
import org.tela_botanica.del.client.composants.images.DetailImageVue;
9
import org.tela_botanica.del.client.composants.images.DetailImageVue;
10
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
10
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
11
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
11
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
12
import org.tela_botanica.del.client.composants.motsclesimages.MotsClesImagePresenteur;
12
import org.tela_botanica.del.client.composants.motsclesimages.MotsClesImagePresenteur;
13
import org.tela_botanica.del.client.composants.motsclesimages.MotsClesImageVue;
13
import org.tela_botanica.del.client.composants.motsclesimages.MotsClesImageVue;
14
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImagePresenteur;
14
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImagePresenteur;
15
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImageVue;
15
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImageVue;
16
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
16
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
17
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
17
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
18
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue;
18
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue;
19
import org.tela_botanica.del.client.config.Config;
19
import org.tela_botanica.del.client.config.Config;
20
import org.tela_botanica.del.client.modeles.Commentaire;
20
import org.tela_botanica.del.client.modeles.Commentaire;
21
import org.tela_botanica.del.client.modeles.Image;
21
import org.tela_botanica.del.client.modeles.Image;
22
import org.tela_botanica.del.client.modeles.ModeRecherche;
22
import org.tela_botanica.del.client.modeles.ModeRecherche;
23
import org.tela_botanica.del.client.modeles.Observation;
23
import org.tela_botanica.del.client.modeles.Observation;
24
import org.tela_botanica.del.client.modeles.Protocole;
24
import org.tela_botanica.del.client.modeles.Protocole;
25
import org.tela_botanica.del.client.modeles.Utilisateur;
25
import org.tela_botanica.del.client.modeles.Utilisateur;
26
import org.tela_botanica.del.client.modeles.VoteProtocole;
26
import org.tela_botanica.del.client.modeles.VoteProtocole;
27
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
27
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
28
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
28
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
29
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
29
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
30
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
30
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
31
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole;
31
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole;
32
import org.tela_botanica.del.client.navigation.evenement.fermermotcleimage.EvenementFermerMotCleImage;
32
import org.tela_botanica.del.client.navigation.evenement.fermermotcleimage.EvenementFermerMotCleImage;
33
import org.tela_botanica.del.client.navigation.evenement.fermermotcleimage.GestionnaireEvenementFermerMotCleImage;
33
import org.tela_botanica.del.client.navigation.evenement.fermermotcleimage.GestionnaireEvenementFermerMotCleImage;
34
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementVoirDetailsImage;
34
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementVoirDetailsImage;
35
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.GestionnaireEvenementVoirDetailsImage;
35
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.GestionnaireEvenementVoirDetailsImage;
36
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire;
36
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire;
37
import org.tela_botanica.del.client.navigation.evenement.supprimerImage.EvenementSupprimerImage;
37
import org.tela_botanica.del.client.navigation.evenement.supprimerImage.EvenementSupprimerImage;
38
import org.tela_botanica.del.client.navigation.evenement.supprimerImage.GestionnaireEvenementSupprimerImage;
38
import org.tela_botanica.del.client.navigation.evenement.supprimerImage.GestionnaireEvenementSupprimerImage;
39
import org.tela_botanica.del.client.navigation.evenement.validationobservationpictoflora.EvenementValidationPictoflora;
39
import org.tela_botanica.del.client.navigation.evenement.validationobservationpictoflora.EvenementValidationPictoflora;
40
import org.tela_botanica.del.client.services.rest.ImageService;
40
import org.tela_botanica.del.client.services.rest.ImageService;
41
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret;
41
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret;
42
import org.tela_botanica.del.client.services.rest.VoteProtocoleServiceConcret;
42
import org.tela_botanica.del.client.services.rest.VoteProtocoleServiceConcret;
43
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
43
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
44
import org.tela_botanica.del.client.services.rest.async.SuppressionImageCallback;
44
import org.tela_botanica.del.client.services.rest.async.SuppressionImageCallback;
45
 
45
 
46
import com.google.gwt.core.shared.GWT;
46
import com.google.gwt.core.shared.GWT;
47
import com.google.gwt.event.dom.client.ClickEvent;
47
import com.google.gwt.event.dom.client.ClickEvent;
48
import com.google.gwt.event.dom.client.ClickHandler;
48
import com.google.gwt.event.dom.client.ClickHandler;
49
import com.google.gwt.event.dom.client.HasClickHandlers;
49
import com.google.gwt.event.dom.client.HasClickHandlers;
50
import com.google.gwt.user.client.Window;
50
import com.google.gwt.user.client.Window;
51
import com.google.gwt.user.client.ui.HasWidgets;
51
import com.google.gwt.user.client.ui.HasWidgets;
52
import com.google.gwt.user.client.ui.IsWidget;
52
import com.google.gwt.user.client.ui.IsWidget;
53
 
53
 
54
public class ImagePresenteur extends Presenteur {
54
public class ImagePresenteur extends Presenteur {
55
 
55
 
56
	public interface Vue extends IsWidget {
56
	public interface Vue extends IsWidget {
57
		public abstract void loadImage(Image image);
57
		public abstract void loadImage(Image image);
58
 
58
 
59
		public abstract HasClickHandlers getImagePrincipale();
59
		public abstract HasClickHandlers getImagePrincipale();
60
 
60
 
61
		public IsWidget getImagePrincipaleWidget();
61
		public IsWidget getImagePrincipaleWidget();
62
 
62
 
63
		public void setUrlImagePrincipale(String url);
63
		public void setUrlImagePrincipale(String url);
64
 
64
 
65
		public void setTitreImagePrincipale(String titre);
65
		public void setTitreImagePrincipale(String titre);
66
 
66
 
67
		public void setAltTextImagePrincipale(String altText);
67
		public void setAltTextImagePrincipale(String altText);
68
 
68
 
69
		public String getUrlImagePrincipale();
69
		public String getUrlImagePrincipale();
70
 
70
 
71
		public String getTitreImagePrincipale();
71
		public String getTitreImagePrincipale();
72
 
72
 
73
		public String getAltTextImagePrincipale();
73
		public String getAltTextImagePrincipale();
74
 
74
 
75
		public abstract HasClickHandlers getEnSavoirPlus();
75
		public abstract HasClickHandlers getEnSavoirPlus();
76
 
76
 
77
		public abstract void cacherZoneCache();
77
		public abstract void cacherZoneCache();
78
 
78
 
79
		public abstract void afficherZoneCache();
79
		public abstract void afficherZoneCache();
80
 
80
 
81
		public abstract HasWidgets getZoneVoter();
81
		public abstract HasWidgets getZoneVoter();
82
 
82
 
83
		public HasClickHandlers getNomAuteur();
83
		public HasClickHandlers getNomAuteur();
84
 
84
 
85
		public HasClickHandlers getNomEspece();
85
		public HasClickHandlers getNomEspece();
86
 
86
 
87
		public HasWidgets getMetadonnees();
87
		public HasWidgets getMetadonnees();
88
 
88
 
89
		public HasClickHandlers getVoirMotsCles();
89
		public HasClickHandlers getVoirMotsCles();
90
		
90
		
91
		public HasWidgets getZoneMotsCles();
91
		public HasWidgets getZoneMotsCles();
92
 
92
 
93
		public void cacherZoneMotsCles();
93
		public void cacherZoneMotsCles();
94
 
94
 
95
		public void afficherZoneMotsCles();
95
		public void afficherZoneMotsCles();
96
		
96
		
97
		public HasClickHandlers getBoutonFermer();
97
		public HasClickHandlers getBoutonFermer();
98
		
98
		
99
		public void ajouterStyleLienAuteur();
99
		public void ajouterStyleLienAuteur();
100
		
100
		
101
		public HasClickHandlers getBoutonSupprimerImage();
101
		public HasClickHandlers getBoutonSupprimerImage();
102
		public void cacherZoneActionsImage();
102
		public void cacherZoneActionsImage();
103
		public void afficherZoneActionsImage();
103
		public void afficherZoneActionsImage();
104
	}
104
	}
105
 
105
 
106
	private Vue vue;
106
	private Vue vue;
107
 
107
 
108
	private final Image image;
108
	private final Image image;
109
	private ImageService imageService;
109
	private ImageService imageService;
110
	private boolean detailsOuverts = false;
110
	private boolean detailsOuverts = false;
111
 
111
 
112
	private Protocole protocole;
112
	private Protocole protocole;
113
 
113
 
114
	private boolean motsClesOuverts = false;
114
	private boolean motsClesOuverts = false;
115
	
115
	
116
	private MotsClesImagePresenteur motsClesImagePresenteur;
116
	private MotsClesImagePresenteur motsClesImagePresenteur;
117
 
117
 
118
	final FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
118
	final FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
119
	
119
	
120
	public ImagePresenteur(Image image, ImageService imageService, Protocole protocole, Vue vue) {
120
	public ImagePresenteur(Image image, ImageService imageService, Protocole protocole, Vue vue) {
121
		this.image = image;
121
		this.image = image;
122
		this.imageService = imageService;
122
		this.imageService = imageService;
123
		this.protocole = protocole;
123
		this.protocole = protocole;
124
		this.vue = vue;
124
		this.vue = vue;
125
	}
125
	}
126
 
126
 
127
	public void go(HasWidgets composite) {
127
	public void go(HasWidgets composite) {
128
		composite.add(vue.asWidget());
128
		composite.add(vue.asWidget());
129
		vue.loadImage(image);
129
		vue.loadImage(image);
130
		try {
130
		try {
131
			// pas de profil pour les non inscrits
131
			// pas de profil pour les non inscrits
132
			Integer.parseInt(image.getObservation().getIdAuteur());
132
			Integer.parseInt(image.getObservation().getIdAuteur());
133
			vue.ajouterStyleLienAuteur();
133
			vue.ajouterStyleLienAuteur();
134
			vue.getNomAuteur().addClickHandler(new ClickHandler() {
134
			vue.getNomAuteur().addClickHandler(new ClickHandler() {
135
				
135
				
136
				@Override
136
				@Override
137
				public void onClick(ClickEvent event) {
137
				public void onClick(ClickEvent event) {
-
 
138
					Config config = new Config();
138
					Window.open(new Config().getUrl("profil") + image.getObservation().getIdAuteur(), "Profil utilisateur", null);
139
					Window.open(new Config().getUrl("profil") + image.getObservation().getIdAuteur(), "Profil utilisateur", config.getInfo("popupOptions"));
139
				}
140
				}
140
			});
141
			});
141
		} catch(Exception e) {
142
		} catch(Exception e) {
142
			// pas de bol mon coco
143
			// pas de bol mon coco
143
		}
144
		}
144
		new MetadonneesPresenteur(new MetadonneesVue(), image.getObservation(), ModeRecherche.MODE_IMAGE, true).go(vue.getMetadonnees());
145
		new MetadonneesPresenteur(new MetadonneesVue(), image.getObservation(), ModeRecherche.MODE_IMAGE, true).go(vue.getMetadonnees());
145
		chargerDonneesValidation();
146
		chargerDonneesValidation();
146
		afficherZoneActionsImage();
147
		afficherZoneActionsImage();
147
		gererEvenements();
148
		gererEvenements();
148
	}
149
	}
149
 
150
 
150
	private void chargerDonneesValidation() {
151
	private void chargerDonneesValidation() {
151
		vue.getZoneVoter().clear();
152
		vue.getZoneVoter().clear();
152
		if (protocole != null) {
153
		if (protocole != null) {
153
			HashMap<String, VoteProtocole> observationValidationDatas = image.getVotesProtocoles(protocole.getId());
154
			HashMap<String, VoteProtocole> observationValidationDatas = image.getVotesProtocoles(protocole.getId());
154
			if (observationValidationDatas != null) {
155
			if (observationValidationDatas != null) {
155
				new MoyenneVotePresenteur(image, protocole, new MoyenneVoteVue(), new VoteProtocoleServiceConcret()).go(vue.getZoneVoter());
156
				new MoyenneVotePresenteur(image, protocole, new MoyenneVoteVue(), new VoteProtocoleServiceConcret()).go(vue.getZoneVoter());
156
			}
157
			}
157
		}
158
		}
158
	}
159
	}
159
 
160
 
160
	private void lancerEvenementValidation() {
161
	private void lancerEvenementValidation() {
161
		CacheClient.getInstance().setImageCourante(image);
162
		CacheClient.getInstance().setImageCourante(image);
162
		final Observation obs = image.getObservation();
163
		final Observation obs = image.getObservation();
163
		BusEvenementiel.getInstance().fireEvent(new EvenementValidationPictoflora(obs));
164
		BusEvenementiel.getInstance().fireEvent(new EvenementValidationPictoflora(obs));
164
	}
165
	}
165
 
166
 
166
	protected void gererEvenements() {
167
	protected void gererEvenements() {
167
		ClickHandler zoomeur = new ClickHandler() {
168
		ClickHandler zoomeur = new ClickHandler() {
168
			public void onClick(ClickEvent event) {
169
			public void onClick(ClickEvent event) {
169
				FenetreOverlaySimplePresenteur presenteurGalerie = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
170
				FenetreOverlaySimplePresenteur presenteurGalerie = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
170
				presenteurGalerie.ouvrirFenetreModaleDefilante(0, new DetailImagePresenteur(image, new DetailImageVue()));
171
				presenteurGalerie.ouvrirFenetreModaleDefilante(0, new DetailImagePresenteur(image, new DetailImageVue()));
171
				presenteurGalerie.afficherBoutonsSuivantsPrecedents(false);
172
				presenteurGalerie.afficherBoutonsSuivantsPrecedents(false);
172
			}};
173
			}};
173
			
174
			
174
		vue.getImagePrincipale().addClickHandler(zoomeur);
175
		vue.getImagePrincipale().addClickHandler(zoomeur);
175
 
176
 
176
		vue.getEnSavoirPlus().addClickHandler(new ClickHandler() {
177
		vue.getEnSavoirPlus().addClickHandler(new ClickHandler() {
177
			@Override
178
			@Override
178
			public void onClick(ClickEvent event) {
179
			public void onClick(ClickEvent event) {
179
				BusEvenementiel.getInstance().fireEvent(new EvenementVoirDetailsImage(image));
180
				BusEvenementiel.getInstance().fireEvent(new EvenementVoirDetailsImage(image));
180
			}
181
			}
181
		});
182
		});
182
		
183
		
183
		vue.getVoirMotsCles().addClickHandler(new ClickHandler() {
184
		vue.getVoirMotsCles().addClickHandler(new ClickHandler() {
184
			@Override
185
			@Override
185
			public void onClick(ClickEvent event) {
186
			public void onClick(ClickEvent event) {
186
				CacheClient.getInstance().setImageCourante(image);
187
				CacheClient.getInstance().setImageCourante(image);
187
				motsClesImagePresenteur = new MotsClesImagePresenteur(
188
				motsClesImagePresenteur = new MotsClesImagePresenteur(
188
					image, 
189
					image, 
189
					new MotsClesServiceConcret(), 
190
					new MotsClesServiceConcret(), 
190
					new FormulaireSaisieMotsClesImagePresenteur(
191
					new FormulaireSaisieMotsClesImagePresenteur(
191
						image.getIdImage(), 
192
						image.getIdImage(), 
192
						new MotsClesServiceConcret(), 
193
						new MotsClesServiceConcret(), 
193
						new FormulaireSaisieMotsClesImageVue()), 
194
						new FormulaireSaisieMotsClesImageVue()), 
194
					new MotsClesImageVue());
195
					new MotsClesImageVue());
195
				motsClesImagePresenteur.chargerMotsCles();
196
				motsClesImagePresenteur.chargerMotsCles();
196
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(motsClesImagePresenteur);
197
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(motsClesImagePresenteur);
197
			}
198
			}
198
		});
199
		});
199
		
200
		
200
		vue.getBoutonFermer().addClickHandler(new ClickHandler() {
201
		vue.getBoutonFermer().addClickHandler(new ClickHandler() {
201
			@Override
202
			@Override
202
			public void onClick(ClickEvent event) {
203
			public void onClick(ClickEvent event) {
203
				cacherPanneauMotsCles();
204
				cacherPanneauMotsCles();
204
			}
205
			}
205
		});
206
		});
206
		BusEvenementiel.getInstance().addHandler(EvenementVoirDetailsImage.TYPE, new GestionnaireEvenementVoirDetailsImage() {
207
		BusEvenementiel.getInstance().addHandler(EvenementVoirDetailsImage.TYPE, new GestionnaireEvenementVoirDetailsImage() {
207
			@Override
208
			@Override
208
			public void onVoirDetailsImage(EvenementVoirDetailsImage event) {
209
			public void onVoirDetailsImage(EvenementVoirDetailsImage event) {
209
				if (image.getIdImage().equals(event.getImage().getIdImage())) {
210
				if (image.getIdImage().equals(event.getImage().getIdImage())) {
210
					if (!detailsOuverts) {
211
					if (!detailsOuverts) {
211
						afficherDetails();
212
						afficherDetails();
212
					} else {
213
					} else {
213
						cacherDetails();
214
						cacherDetails();
214
					}
215
					}
215
				} else {
216
				} else {
216
					cacherDetails();
217
					cacherDetails();
217
				}
218
				}
218
			}
219
			}
219
		});
220
		});
220
 
221
 
221
		BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {
222
		BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {
222
			@Override
223
			@Override
223
			public void onChangementProtocole(EvenementChangementProtocole event) {
224
			public void onChangementProtocole(EvenementChangementProtocole event) {
224
				setProtocole(event.getProtocole());
225
				setProtocole(event.getProtocole());
225
				chargerDonneesValidation();
226
				chargerDonneesValidation();
226
			}
227
			}
227
		});
228
		});
228
		
229
		
229
		BusEvenementiel.getInstance().addHandler(EvenementFermerMotCleImage.TYPE, new GestionnaireEvenementFermerMotCleImage() {
230
		BusEvenementiel.getInstance().addHandler(EvenementFermerMotCleImage.TYPE, new GestionnaireEvenementFermerMotCleImage() {
230
			@Override
231
			@Override
231
			public void onFermerMotCleImage(EvenementFermerMotCleImage evenementFermerMotCleImage) {
232
			public void onFermerMotCleImage(EvenementFermerMotCleImage evenementFermerMotCleImage) {
232
				if (evenementFermerMotCleImage.getIdImage().equals(image.getIdImage())) {
233
				if (evenementFermerMotCleImage.getIdImage().equals(image.getIdImage())) {
233
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
234
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
234
				}
235
				}
235
			}
236
			}
236
		});
237
		});
237
		
238
		
238
		
239
		
239
		BusEvenementiel.getInstance().addHandler(EvenementSupprimerImage.TYPE, new GestionnaireEvenementSupprimerImage() {
240
		BusEvenementiel.getInstance().addHandler(EvenementSupprimerImage.TYPE, new GestionnaireEvenementSupprimerImage() {
240
			@Override
241
			@Override
241
			public void onSuppressionImage(EvenementSupprimerImage event) {
242
			public void onSuppressionImage(EvenementSupprimerImage event) {
242
				GWT.log("Attraper evnt : EvenementSupprimerImage (img:"+image.getIdImage()+")");
243
				GWT.log("Attraper evnt : EvenementSupprimerImage (img:"+image.getIdImage()+")");
243
				if (event.getIdImage().equals(image.getIdImage())) {
244
				if (event.getIdImage().equals(image.getIdImage())) {
244
					supprimerImg();
245
					supprimerImg();
245
				}
246
				}
246
			}
247
			}
247
		});
248
		});
248
		vue.getBoutonSupprimerImage().addClickHandler(new ClickHandler() {
249
		vue.getBoutonSupprimerImage().addClickHandler(new ClickHandler() {
249
			@Override
250
			@Override
250
			public void onClick(ClickEvent event) {
251
			public void onClick(ClickEvent event) {
251
				GWT.log("Lancer evnt : EvenementSupprimerImage");
252
				GWT.log("Lancer evnt : EvenementSupprimerImage");
252
				BusEvenementiel.getInstance().fireEvent(new EvenementSupprimerImage(image.getIdImage()));
253
				BusEvenementiel.getInstance().fireEvent(new EvenementSupprimerImage(image.getIdImage()));
253
			}
254
			}
254
		});
255
		});
255
		
256
		
256
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
257
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
257
			@Override
258
			@Override
258
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
259
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
259
				afficherZoneActionsImage();
260
				afficherZoneActionsImage();
260
			}
261
			}
261
		});
262
		});
262
		
263
		
263
	}
264
	}
264
 
265
 
265
	private void supprimerImg() {
266
	private void supprimerImg() {
266
		GWT.log("supprimerImg :"+image.getIdImage());
267
		GWT.log("supprimerImg :"+image.getIdImage());
267
		imageService.supprimer(image, new SuppressionImageCallback() {
268
		imageService.supprimer(image, new SuppressionImageCallback() {
268
			@Override
269
			@Override
269
			public void surRetour(String suppressionOk) {
270
			public void surRetour(String suppressionOk) {
270
				GWT.log("Suppression image "+image.getIdImage()+" "+suppressionOk);
271
				GWT.log("Suppression image "+image.getIdImage()+" "+suppressionOk);
271
				if (suppressionOk.equals("OK")) {
272
				if (suppressionOk.equals("OK")) {
272
					vue.asWidget().removeFromParent();
273
					vue.asWidget().removeFromParent();
273
				}
274
				}
274
			}
275
			}
275
		});
276
		});
276
	}
277
	}
277
	
278
	
278
	protected void afficherPanneauMotsCles() {
279
	protected void afficherPanneauMotsCles() {
279
		vue.afficherZoneMotsCles();
280
		vue.afficherZoneMotsCles();
280
		motsClesOuverts = true;
281
		motsClesOuverts = true;
281
		motsClesImagePresenteur.chargerMotsCles();
282
		motsClesImagePresenteur.chargerMotsCles();
282
		motsClesImagePresenteur.focuserChampsSaisie();
283
		motsClesImagePresenteur.focuserChampsSaisie();
283
	}
284
	}
284
	
285
	
285
	protected void cacherPanneauMotsCles() {
286
	protected void cacherPanneauMotsCles() {
286
		vue.cacherZoneMotsCles();
287
		vue.cacherZoneMotsCles();
287
		motsClesOuverts = false;
288
		motsClesOuverts = false;
288
	}
289
	}
289
 
290
 
290
	public void cacherDetails() {
291
	public void cacherDetails() {
291
		vue.cacherZoneCache();
292
		vue.cacherZoneCache();
292
		detailsOuverts = false;
293
		detailsOuverts = false;
293
	}
294
	}
294
 
295
 
295
	public void afficherDetails() {
296
	public void afficherDetails() {
296
		vue.afficherZoneCache();
297
		vue.afficherZoneCache();
297
		detailsOuverts = true;
298
		detailsOuverts = true;
298
	}
299
	}
299
 
300
 
300
	public boolean isDetailsOpen() {
301
	public boolean isDetailsOpen() {
301
		return detailsOuverts;
302
		return detailsOuverts;
302
	}
303
	}
303
 
304
 
304
	public Protocole getProtocole() {
305
	public Protocole getProtocole() {
305
		return protocole;
306
		return protocole;
306
	}
307
	}
307
 
308
 
308
	public void setProtocole(Protocole protocole) {
309
	public void setProtocole(Protocole protocole) {
309
		this.protocole = protocole;
310
		this.protocole = protocole;
310
	}
311
	}
311
	
312
	
312
	private void afficherZoneActionsImage() {
313
	private void afficherZoneActionsImage() {
313
		if (devoirAfficherZoneActionsImage()) {
314
		if (devoirAfficherZoneActionsImage()) {
314
			vue.afficherZoneActionsImage();
315
			vue.afficherZoneActionsImage();
315
		} else {
316
		} else {
316
			vue.cacherZoneActionsImage();
317
			vue.cacherZoneActionsImage();
317
		}
318
		}
318
	}
319
	}
319
	
320
	
320
	private boolean devoirAfficherZoneActionsImage() {
321
	private boolean devoirAfficherZoneActionsImage() {
321
		Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
322
		Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
322
		boolean etreAdmin = false;
323
		boolean etreAdmin = false;
323
		if (utilisateur != null) {
324
		if (utilisateur != null) {
324
			etreAdmin = utilisateur.estIdentifie() && utilisateur.etreAdmin();
325
			etreAdmin = utilisateur.estIdentifie() && utilisateur.etreAdmin();
325
		}
326
		}
326
		return etreAdmin;
327
		return etreAdmin;
327
	}
328
	}
328
}
329
}