Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 5 Rev 7
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
3
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
 
5
 
6
import com.google.gwt.user.client.DOM;
6
import com.google.gwt.user.client.DOM;
7
import com.google.gwt.user.client.Event;
7
import com.google.gwt.user.client.Event;
8
import com.google.gwt.user.client.ui.ClickListener;
8
import com.google.gwt.user.client.ui.ClickListener;
9
import com.google.gwt.user.client.ui.Image;
9
import com.google.gwt.user.client.ui.Image;
10
import com.google.gwt.user.client.ui.Widget;
10
import com.google.gwt.user.client.ui.Widget;
11
import com.gwtext.client.core.EventObject;
11
import com.gwtext.client.core.EventObject;
12
import com.gwtext.client.core.RegionPosition;
12
import com.gwtext.client.core.RegionPosition;
13
import com.gwtext.client.dd.DragData;
13
import com.gwtext.client.dd.DragData;
14
import com.gwtext.client.dd.DragSource;
14
import com.gwtext.client.dd.DragSource;
15
import com.gwtext.client.dd.DropTarget;
15
import com.gwtext.client.dd.DropTarget;
16
import com.gwtext.client.dd.DropTargetConfig;
16
import com.gwtext.client.dd.DropTargetConfig;
17
import com.gwtext.client.widgets.Container;
17
import com.gwtext.client.widgets.Container;
18
import com.gwtext.client.widgets.Panel;
18
import com.gwtext.client.widgets.Panel;
19
import com.gwtext.client.widgets.event.PanelListenerAdapter;
19
import com.gwtext.client.widgets.event.PanelListenerAdapter;
20
import com.gwtext.client.widgets.grid.GridDragData;
20
import com.gwtext.client.widgets.grid.GridDragData;
21
import com.gwtext.client.widgets.layout.BorderLayout;
21
import com.gwtext.client.widgets.layout.BorderLayout;
22
import com.gwtext.client.widgets.layout.BorderLayoutData;
22
import com.gwtext.client.widgets.layout.BorderLayoutData;
23
 
23
 
24
/**
24
/**
25
 * Panneau d'affichage d'une image avec des boutons précdents et suivant
25
 * Panneau d'affichage d'une image avec des boutons précdents et suivant
26
 * 
26
 * 
27
 * @author aurelien
27
 * @author aurelien
28
 * 
28
 * 
29
 */
29
 */
30
public class ZoomImageVue extends Panel implements Rafraichissable {
30
public class ZoomImageVue extends Panel implements Rafraichissable {
31
 
31
 
32
	/**
32
	/**
33
	 * Le médiateur associé à la vue
33
	 * Le médiateur associé à la vue
34
	 */
34
	 */
35
	private ImageMediateur iMediateur = null;
35
	private ImageMediateur iMediateur = null;
36
 
36
 
37
	/**
37
	/**
38
	 * Panneau conteneur pour l'image
38
	 * Panneau conteneur pour l'image
39
	 */
39
	 */
40
	private Panel imageConteneur = null;
40
	private Panel imageConteneur = null;
41
	/**
41
	/**
42
	 * l'image à afficher
42
	 * l'image à afficher
43
	 */
43
	 */
44
	private Image image = new Image("vide.jpg");
44
	private Image image = new Image("vide.jpg");
45
	/**
45
	/**
46
	 * Bouton précédent
46
	 * Bouton précédent
47
	 */
47
	 */
48
	private final com.google.gwt.user.client.ui.Button prev = new com.google.gwt.user.client.ui.Button();
48
	private final com.google.gwt.user.client.ui.Button prev = new com.google.gwt.user.client.ui.Button();
49
	/**
49
	/**
50
	 * Bouton suivant
50
	 * Bouton suivant
51
	 */
51
	 */
52
	private final com.google.gwt.user.client.ui.Button suiv = new com.google.gwt.user.client.ui.Button();
52
	private final com.google.gwt.user.client.ui.Button suiv = new com.google.gwt.user.client.ui.Button();
53
 
53
 
54
	/**
54
	/**
55
	 * Taille originale Y de l'image
55
	 * Taille originale Y de l'image
56
	 */
56
	 */
57
	private int imageHeight = 0;
57
	private int imageHeight = 0;
58
 
58
 
59
	/**
59
	/**
60
	 * Taille originale X de l'image
60
	 * Taille originale X de l'image
61
	 */
61
	 */
62
	private int imageWidth = 0;
62
	private int imageWidth = 0;
63
	
63
	
64
	/**
64
	/**
65
	 * Identifiant de l'image
65
	 * Identifiant de l'image
66
	 */
66
	 */
67
	private String idImage = "0" ;
67
	private String idImage = "0" ;
68
 
68
 
69
	/**
69
	/**
70
	 * Booleen d'initalisation général
70
	 * Booleen d'initalisation général
71
	 */
71
	 */
72
	private boolean initialise = false;
72
	private boolean initialise = false;
73
 
73
 
74
	/**
74
	/**
75
	 * Booleen d'initalisation du conteneur d'image
75
	 * Booleen d'initalisation du conteneur d'image
76
	 */
76
	 */
77
	private boolean conteneurInitialise = false;
77
	private boolean conteneurInitialise = false;
78
 
78
 
79
	/**
79
	/**
80
	 * Constructeur sans argument (privé car ne doit être utilisé)
80
	 * Constructeur sans argument (privé car ne doit être utilisé)
81
	 */
81
	 */
82
	@SuppressWarnings("unused")
82
	@SuppressWarnings("unused")
83
	private ZoomImageVue() {
83
	private ZoomImageVue() {
84
		super();
84
		super();
85
	}
85
	}
86
 
86
 
87
	/**
87
	/**
88
	 * Constructeur avec argument
88
	 * Constructeur avec argument
89
	 * 
89
	 * 
90
	 * @param im
90
	 * @param im
91
	 *            le médiateur à associer à la vue
91
	 *            le médiateur à associer à la vue
92
	 */
92
	 */
93
	public ZoomImageVue(ImageMediateur im) {
93
	public ZoomImageVue(ImageMediateur im) {
94
		super("Zoom");
94
		super("Zoom");
95
		setId("x-view-zoom-panel");
95
		setId("x-view-zoom-panel");
96
		// on associe le médiateur
96
		// on associe le médiateur
97
		iMediateur = im;
97
		iMediateur = im;
98
 
98
 
99
		prev.setStylePrimaryName("x-view-zoom-button-p");
99
		prev.setStylePrimaryName("x-view-zoom-button-p");
100
		suiv.setStylePrimaryName("x-view-zoom-button-s");
100
		suiv.setStylePrimaryName("x-view-zoom-button-s");
101
 
101
 
102
		// on crée une image qui gère le double clic et la roulette de la souris
102
		// on crée une image qui gère le double clic et la roulette de la souris
103
		image = new Image() {
103
		image = new Image() {
104
 
104
 
105
			public void onBrowserEvent(Event event) {
105
			public void onBrowserEvent(Event event) {
106
 
106
 
107
				// lors du double clic
107
				// lors du double clic
108
				if (Event.ONDBLCLICK == DOM.eventGetType(event)) {
108
				if (Event.ONDBLCLICK == DOM.eventGetType(event)) {
109
 
109
 
110
					// on notifie le médiateur
110
					// on notifie le médiateur
111
					getIMediateur().doubleClicZoomImage();
111
					getIMediateur().doubleClicZoomImage();
112
				}
112
				}
113
 
113
 
114
				// lors d'un déplacement de la roulette
114
				// lors d'un déplacement de la roulette
115
				if (Event.ONMOUSEWHEEL == DOM.eventGetType(event)) {
115
				if (Event.ONMOUSEWHEEL == DOM.eventGetType(event)) {
116
 
116
 
117
					// on simule un clic sur le bouton précédent
117
					// on simule un clic sur le bouton précédent
118
					if (event.getMouseWheelVelocityY() >= 1) {
118
					if (event.getMouseWheelVelocityY() >= 1) {
119
						prev.click();
119
						prev.click();
120
					}
120
					}
121
 
121
 
122
					// ou suivant
122
					// ou suivant
123
					if (event.getMouseWheelVelocityY() <= -1) {
123
					if (event.getMouseWheelVelocityY() <= -1) {
124
						suiv.click();
124
						suiv.click();
125
					}
125
					}
126
				}
126
				}
127
			}
127
			}
128
			
128
			
129
		};
129
		};
130
 
130
 
131
		this.setHeader(false);
131
		this.setHeader(false);
132
 
132
 
133
		imageConteneur = new Panel() ;
133
		imageConteneur = new Panel() ;
134
		imageConteneur.setBorder(false);
134
		imageConteneur.setBorder(false);
135
 
135
 
136
		imageConteneur.add(image);
136
		imageConteneur.add(image);
137
		imageConteneur.setId("x-view-zoom-img");
137
		imageConteneur.setId("x-view-zoom-img");
138
 
138
 
139
		// il n'existe pas de méthode pour ajouter un listener pour le double
139
		// il n'existe pas de méthode pour ajouter un listener pour le double
140
		// clic sur une image
140
		// clic sur une image
141
		// alors on lui dit manuellement de capter l'évènement double clic
141
		// alors on lui dit manuellement de capter l'évènement double clic
142
		image.sinkEvents(Event.ONDBLCLICK);
142
		image.sinkEvents(Event.ONDBLCLICK);
143
		image.sinkEvents(Event.ONMOUSEWHEEL);
143
		image.sinkEvents(Event.ONMOUSEWHEEL);
144
 
144
 
145
		// l'image de base est vide
145
		// l'image de base est vide
146
		image.setUrl("vide.jpg");
146
		image.setUrl("vide.jpg");
147
 
147
 
148
		this.setLayout(new BorderLayout());
148
		this.setLayout(new BorderLayout());
149
 
149
 
150
		prev.setWidth("60px");
150
		prev.setWidth("60px");
151
		suiv.setWidth("60px");
151
		suiv.setWidth("60px");
152
 
152
 
153
		this.add(prev, new BorderLayoutData(RegionPosition.WEST));
153
		this.add(prev, new BorderLayoutData(RegionPosition.WEST));
154
		this.add(imageConteneur, new BorderLayoutData(RegionPosition.CENTER));
154
		this.add(imageConteneur, new BorderLayoutData(RegionPosition.CENTER));
155
		this.add(suiv, new BorderLayoutData(RegionPosition.EAST));
155
		this.add(suiv, new BorderLayoutData(RegionPosition.EAST));
156
 
156
 
157
		imageConteneur.setMaskDisabled(true);
157
		imageConteneur.setMaskDisabled(true);
158
		this.setBorder(false);
158
		this.setBorder(false);
159
 
159
 
160
		conteneurInitialise = true;
160
		conteneurInitialise = true;
161
		initialise = true;
161
		initialise = true;
162
		
162
		
163
		configDragAndDrop() ;
163
		configDragAndDrop() ;
164
 
164
 
165
		// on ajoute les listeners
165
		// on ajoute les listeners
166
		ajouterListeners();
166
		ajouterListeners();
167
 
167
 
168
	}
168
	}
169
 
169
 
170
	/**
170
	/**
171
	 * Méthode héritée de l'interface rafraichissable
171
	 * Méthode héritée de l'interface rafraichissable
172
	 * 
172
	 * 
173
	 * @param nouvelleDonnees
173
	 * @param nouvelleDonnees
174
	 *            les nouvelles données
174
	 *            les nouvelles données
175
	 * @param repandreRafraichissement
175
	 * @param repandreRafraichissement
176
	 *            le booleen qui dit si on doit répnadre l'évènement
176
	 *            le booleen qui dit si on doit répnadre l'évènement
177
	 */
177
	 */
178
	public void rafraichir(Object nouvelleDonnees,
178
	public void rafraichir(Object nouvelleDonnees,
179
			boolean repandreRafraichissement) {
179
			boolean repandreRafraichissement) {
180
 
180
 
181
		// si on reçoit une string
181
		// si on reçoit une string
182
		if (nouvelleDonnees instanceof String[] && initialise
182
		if (nouvelleDonnees instanceof String[] && initialise
183
				&& conteneurInitialise) {
183
				&& conteneurInitialise) {
184
			String[] infos = (String[]) nouvelleDonnees;
184
			String[] infos = (String[]) nouvelleDonnees;
185
			// c'est l'url de l'image qu'on associe à la vue
185
			// c'est l'url de l'image qu'on associe à la vue
186
			if (infos[0] != null && infos[1] != null && infos[2] != null && infos[3] != null) {
186
			if (infos[0] != null && infos[1] != null && infos[2] != null && infos[3] != null) {
187
				getImage().setUrl(infos[0]);
187
				getImage().setUrl(infos[0]);
188
				int x = Integer.parseInt(infos[1]);
188
				int x = Integer.parseInt(infos[1]);
189
				int y = Integer.parseInt(infos[2]);
189
				int y = Integer.parseInt(infos[2]);
190
 
190
 
191
				setTailleImage(x, y);
191
				setTailleImage(x, y);
192
				
192
				
193
				setIdImage(infos[3]) ;
193
				setIdImage(infos[3]) ;
194
 
194
 
195
				verifierEtRetaillerImage();
195
				verifierEtRetaillerImage();
196
			}
196
			}
197
		} else {
197
		} else {
198
			// sinon on met une image vide
198
			// sinon on met une image vide
199
			getImage().setUrl("vide.jpeg");
199
			getImage().setUrl("vide.jpeg");
200
		}
200
		}
201
	}
201
	}
202
 
202
 
203
	/**
203
	/**
204
	 * Desactive visuellement le panneau et les boutons
204
	 * Desactive visuellement le panneau et les boutons
205
	 */
205
	 */
206
	public void desactiverPanneau() {
206
	public void desactiverPanneau() {
207
		getImage().setUrl("vide.jpeg");
207
		getImage().setUrl("vide.jpeg");
208
		prev.setEnabled(false);
208
		prev.setEnabled(false);
209
		suiv.setEnabled(false);
209
		suiv.setEnabled(false);
210
	}
210
	}
211
 
211
 
212
	/**
212
	/**
213
	 * Active visuellement le panneau et les boutons
213
	 * Active visuellement le panneau et les boutons
214
	 */
214
	 */
215
	public void activerPanneau() {
215
	public void activerPanneau() {
216
		prev.setEnabled(true);
216
		prev.setEnabled(true);
217
		suiv.setEnabled(true);
217
		suiv.setEnabled(true);
218
	}
218
	}
219
 
219
 
220
	/**
220
	/**
221
	 * Ajoute les listeners pour la gestions d'évènement
221
	 * Ajoute les listeners pour la gestions d'évènement
222
	 */
222
	 */
223
	public void ajouterListeners() {
223
	public void ajouterListeners() {
224
 
224
 
225
		// gestion du clic sur le bouton précedent
225
		// gestion du clic sur le bouton précedent
226
		prev.addClickListener(new ClickListener() {
226
		prev.addClickListener(new ClickListener() {
227
 
227
 
228
			// en cas de clic
228
			// en cas de clic
229
			public void onClick(Widget sender) {
229
			public void onClick(Widget sender) {
230
				// on notifie le médiateur
230
				// on notifie le médiateur
231
				getIMediateur().clicBoutonZoomImage("prev");
231
				getIMediateur().clicBoutonZoomImage("prev");
232
			}
232
			}
233
 
233
 
234
		});
234
		});
235
 
235
 
236
		// gestion du clic sur le bouton suivant
236
		// gestion du clic sur le bouton suivant
237
		suiv.addClickListener(new ClickListener() {
237
		suiv.addClickListener(new ClickListener() {
238
 
238
 
239
			// en cas de clic
239
			// en cas de clic
240
			public void onClick(Widget sender) {
240
			public void onClick(Widget sender) {
241
				// on notifie le médiateur
241
				// on notifie le médiateur
242
				getIMediateur().clicBoutonZoomImage("suiv");
242
				getIMediateur().clicBoutonZoomImage("suiv");
243
			}
243
			}
244
 
244
 
245
		});
245
		});
246
 
246
 
247
		// gestion du redimensionnement
247
		// gestion du redimensionnement
248
		this.addListener(new PanelListenerAdapter() {
248
		this.addListener(new PanelListenerAdapter() {
249
 
249
 
250
			// lors d'un redimensionnement de l'application
250
			// lors d'un redimensionnement de l'application
251
 
251
 
252
			public void onBodyResize(Panel panel, java.lang.String width,
252
			public void onBodyResize(Panel panel, java.lang.String width,
253
					java.lang.String height) {
253
					java.lang.String height) {
254
				// on vérifie et on retaille l'image
254
				// on vérifie et on retaille l'image
255
				verifierEtRetaillerImage();
255
				verifierEtRetaillerImage();
256
			}
256
			}
257
		});
257
		});
258
 
258
 
259
		// gestion du redimensionnement lors de l'affichage du conteneur
259
		// gestion du redimensionnement lors de l'affichage du conteneur
260
		imageConteneur.addListener(new PanelListenerAdapter() {
260
		imageConteneur.addListener(new PanelListenerAdapter() {
261
 
261
 
262
			// avant de finir d'afficher
262
			// avant de finir d'afficher
263
 
263
 
264
			public void onAfterLayout(Container self) {
264
			public void onAfterLayout(Container self) {
265
				// on redimensionne
265
				// on redimensionne
266
				verifierEtRetaillerImage();
266
				verifierEtRetaillerImage();
267
			}
267
			}
268
		});
268
		});
269
 
269
 
270
	}
270
	}
271
 
271
 
272
	/**
272
	/**
273
	 * Verifie si l'image est plus grande que le conteneur et la retaille le cas
273
	 * Verifie si l'image est plus grande que le conteneur et la retaille le cas
274
	 * echeant
274
	 * echeant
275
	 */
275
	 */
276
	public void verifierEtRetaillerImage() {
276
	public void verifierEtRetaillerImage() {
277
		// si l'image est nulle
277
		// si l'image est nulle
278
		if (image == null) {
278
		if (image == null) {
279
			// on ne fait rien
279
			// on ne fait rien
280
			return;
280
			return;
281
		}
281
		}
282
 
282
 
283
		// on prend la taille originale de l'image
283
		// on prend la taille originale de l'image
284
		int originalX = getTailleImage()[0];
284
		int originalX = getTailleImage()[0];
285
		int originalY = getTailleImage()[1];
285
		int originalY = getTailleImage()[1];
286
 
286
 
287
		// on la transforme en float (la division entre entier donne de curieux
287
		// on la transforme en float (la division entre entier donne de curieux
288
		// résultats)
288
		// résultats)
289
		float fOriginalX = (new Float(originalX)).floatValue();
289
		float fOriginalX = (new Float(originalX)).floatValue();
290
		float fOriginalY = (new Float(originalY)).floatValue();
290
		float fOriginalY = (new Float(originalY)).floatValue();
291
 
291
 
292
		// et on fait le rapport longueur sur hauteur (pour connaitre le ratio)
292
		// et on fait le rapport longueur sur hauteur (pour connaitre le ratio)
293
		float rapportTaille = fOriginalX / fOriginalY;
293
		float rapportTaille = fOriginalX / fOriginalY;
294
 
294
 
295
		// la nouvelle taille est pour le moment égale à l'ancienne
295
		// la nouvelle taille est pour le moment égale à l'ancienne
296
		int nouvelleTailleX = originalX;
296
		int nouvelleTailleX = originalX;
297
		int nouvelleTailleY = originalY;
297
		int nouvelleTailleY = originalY;
298
 
298
 
299
		// on prend la taille du conteneur
299
		// on prend la taille du conteneur
300
		int tailleConteneurX = imageConteneur.getWidth();
300
		int tailleConteneurX = imageConteneur.getWidth();
301
		int tailleConteneurY = imageConteneur.getHeight();
301
		int tailleConteneurY = imageConteneur.getHeight();
302
 
302
 
303
		// si celle-ci est égale à 0 (conteneur mal initialisé)
303
		// si celle-ci est égale à 0 (conteneur mal initialisé)
304
		/*
304
		/*
305
		 * if(imageConteneur.getHeight() == 0 && tailleConteneurX == 0) { // on
305
		 * if(imageConteneur.getHeight() == 0 && tailleConteneurX == 0) { // on
306
		 * essaie de la calculer en fonction de la taille du parent et des
306
		 * essaie de la calculer en fonction de la taille du parent et des
307
		 * frères tailleConteneurY = this.getHeight() ; tailleConteneurX =
307
		 * frères tailleConteneurY = this.getHeight() ; tailleConteneurX =
308
		 * this.getWidth() - prev.getOffsetWidth() * 2 ;
308
		 * this.getWidth() - prev.getOffsetWidth() * 2 ;
309
		 *  }
309
		 *  }
310
		 */
310
		 */
311
 
311
 
312
		// si l'image ne rentre pas telle quelle (longueur ou hauteur trop
312
		// si l'image ne rentre pas telle quelle (longueur ou hauteur trop
313
		// grande)
313
		// grande)
314
		if (originalY > tailleConteneurY || originalX > tailleConteneurX) {
314
		if (originalY > tailleConteneurY || originalX > tailleConteneurX) {
315
			// si la longueur de l'image est la plus grande des deux
315
			// si la longueur de l'image est la plus grande des deux
316
			if (originalX > originalY) {
316
			if (originalX > originalY) {
317
				// on prend la longueur comme taille de référence, qu'on met à
317
				// on prend la longueur comme taille de référence, qu'on met à
318
				// la longueur du conteneur
318
				// la longueur du conteneur
319
				nouvelleTailleX = tailleConteneurX;
319
				nouvelleTailleX = tailleConteneurX;
320
				// et on recalcule la hauteur, par rapport à la nouvelle
320
				// et on recalcule la hauteur, par rapport à la nouvelle
321
				// longueur, en gardant le format de 'limage
321
				// longueur, en gardant le format de 'limage
322
				nouvelleTailleY = (int) Math.floor(nouvelleTailleX * 1
322
				nouvelleTailleY = (int) Math.floor(nouvelleTailleX * 1
323
						/ rapportTaille);
323
						/ rapportTaille);
324
			} else {
324
			} else {
325
				// si la hauteur est la plus grande, on fait le même genre
325
				// si la hauteur est la plus grande, on fait le même genre
326
				// d'opération en prenant la hauteur comme référence
326
				// d'opération en prenant la hauteur comme référence
327
				nouvelleTailleY = tailleConteneurY;
327
				nouvelleTailleY = tailleConteneurY;
328
				nouvelleTailleX = (int) Math.floor(nouvelleTailleY
328
				nouvelleTailleX = (int) Math.floor(nouvelleTailleY
329
						* rapportTaille);
329
						* rapportTaille);
330
			}
330
			}
331
		}
331
		}
332
 
332
 
333
		// on modifie enfin la taille de l'image pour qu'elle soit affichée
333
		// on modifie enfin la taille de l'image pour qu'elle soit affichée
334
		getImage().setSize("" + nouvelleTailleX + "px",
334
		getImage().setSize("" + nouvelleTailleX + "px",
335
				"" + nouvelleTailleY + "px");
335
				"" + nouvelleTailleY + "px");
336
	}
336
	}
337
	
337
	
338
	public void configDragAndDrop()
338
	public void configDragAndDrop()
339
	{
339
	{
340
 
340
 
341
		// on fabrique la nouvelle configuration
341
		// on fabrique la nouvelle configuration
342
		// les éléments sur lesquels on fait du drag 'n drop doivent tous avoir le même ddGroup
342
		// les éléments sur lesquels on fait du drag 'n drop doivent tous avoir le même ddGroup
343
		DropTargetConfig dtc = new DropTargetConfig();
343
		DropTargetConfig dtc = new DropTargetConfig();
344
		dtc.setdDdGroup("DragGroupName");
344
		dtc.setdDdGroup("DragGroupName");
345
 
345
 
346
		//La drop target permet de gérer l'évenement onDrop sur l'élement courant
346
		//La drop target permet de gérer l'évenement onDrop sur l'élement courant
347
		@SuppressWarnings("unused")
347
		@SuppressWarnings("unused")
348
		DropTarget tg = new DropTarget(this, dtc)
348
		DropTarget tg = new DropTarget(this, dtc)
349
		{
349
		{
350
			public boolean notifyDrop(DragSource source, EventObject e, DragData data){		
350
			public boolean notifyDrop(DragSource source, EventObject e, DragData data){		
351
				
351
				
352
				// si on reçoit des données provenant d'une grille
352
				// si on reçoit des données provenant d'une grille
353
				if(data instanceof GridDragData)
353
				if(data instanceof GridDragData)
354
		    	  {
354
		    	  {
355
		    		  		// on appelle le médiateur
355
		    		  		// on appelle le médiateur
356
		    		  		return iMediateur.lierObsDD(source, e, data,getId()) ;   
356
		    		  		return iMediateur.lierObsDD(source, e, data,getId()) ;   
357
		    	  }
357
		    	  }
358
				return false ;
358
				return false ;
359
			}
359
			}
360
			
360
			
361
			public String notifyOver(DragSource source, EventObject e, DragData data){
361
			public String notifyOver(DragSource source, EventObject e, DragData data){
362
			    return "x-dd-drop-ok";
362
			    return "x-dd-drop-ok";
363
			}
363
			}
364
		};
364
		};
365
        
365
        
366
	}
366
	}
367
 
367
 
368
	/**
368
	/**
369
	 * Accesseur pour le médiateur
369
	 * Accesseur pour le médiateur
370
	 * 
370
	 * 
371
	 * @return le médiateur associé à la vue
371
	 * @return le médiateur associé à la vue
372
	 */
372
	 */
373
	public ImageMediateur getIMediateur() {
373
	public ImageMediateur getIMediateur() {
374
		return iMediateur;
374
		return iMediateur;
375
	}
375
	}
376
 
376
 
377
	/**
377
	/**
378
	 * Accesseur au conteneur de l'image
378
	 * Accesseur au conteneur de l'image
379
	 * 
379
	 * 
380
	 * @return le conteneur de l'image
380
	 * @return le conteneur de l'image
381
	 */
381
	 */
382
	public Image getImage() {
382
	public Image getImage() {
383
		return image;
383
		return image;
384
	}
384
	}
385
	
385
	
386
	/**
386
	/**
387
	 * Acesseurs pour l'identifiant de l'image
387
	 * Acesseurs pour l'identifiant de l'image
388
	 * @return l'id de l'image
388
	 * @return l'id de l'image
389
	 */
389
	 */
390
	public String getIdImage()
390
	public String getIdImage()
391
	{
391
	{
392
		return idImage ;
392
		return idImage ;
393
	}
393
	}
394
 
394
 
395
	/**
395
	/**
396
	 * Accesseur pour le bouton précédent
396
	 * Accesseur pour le bouton précédent
397
	 * 
397
	 * 
398
	 * @return le bouton précédent
398
	 * @return le bouton précédent
399
	 */
399
	 */
400
	public com.google.gwt.user.client.ui.Button getPrev() {
400
	public com.google.gwt.user.client.ui.Button getPrev() {
401
		return prev;
401
		return prev;
402
	}
402
	}
403
 
403
 
404
	/**
404
	/**
405
	 * Accesseur pour le bouton suivant
405
	 * Accesseur pour le bouton suivant
406
	 * 
406
	 * 
407
	 * @return le bouton suivant
407
	 * @return le bouton suivant
408
	 */
408
	 */
409
	public com.google.gwt.user.client.ui.Button getSuiv() {
409
	public com.google.gwt.user.client.ui.Button getSuiv() {
410
		return suiv;
410
		return suiv;
411
	}
411
	}
412
 
412
 
413
	/**
413
	/**
414
	 * Setter pour la taille de l'image
414
	 * Setter pour la taille de l'image
415
	 * 
415
	 * 
416
	 * @param X
416
	 * @param x
417
	 *            la largeur en pixels
417
	 *            la largeur en pixels
418
	 * @param Y
418
	 * @param y
419
	 *            la hauteur en pixels
419
	 *            la hauteur en pixels
420
	 */
420
	 */
421
	public void setTailleImage(int x, int y) {
421
	public void setTailleImage(int x, int y) {
422
		imageHeight = y;
422
		imageHeight = y;
423
		imageWidth = x;
423
		imageWidth = x;
424
	}
424
	}
425
	
425
	
426
	/**
426
	/**
427
	 * Setteur pour l'identifiant de l'image
427
	 * Setteur pour l'identifiant de l'image
428
	 * @param id le nouvel identifiant
428
	 * @param id le nouvel identifiant
429
	 */
429
	 */
430
	public void setIdImage(String id)
430
	public void setIdImage(String id)
431
	{
431
	{
432
		idImage = id ;
432
		idImage = id ;
433
	}
433
	}
434
 
434
 
435
	/**
435
	/**
436
	 * renvoie la taille originale de l'image
436
	 * renvoie la taille originale de l'image
437
	 * 
437
	 * 
438
	 * @return un tableau de deux entiers contenant la largeur puis la hauteur
438
	 * @return un tableau de deux entiers contenant la largeur puis la hauteur
439
	 */
439
	 */
440
	public int[] getTailleImage() {
440
	public int[] getTailleImage() {
441
		int[] taille = { imageHeight, imageWidth };
441
		int[] taille = { imageHeight, imageWidth };
442
 
442
 
443
		return taille;
443
		return taille;
444
	}
444
	}
445
	
445
	
446
	/**
446
	/**
447
	 * Accesseur pour le conteneur de l'image
447
	 * Accesseur pour le conteneur de l'image
448
	 * @return le conteur de l'image
448
	 * @return le conteur de l'image
449
	 */
449
	 */
450
	public Panel getImageConteneur() {
450
	public Panel getImageConteneur() {
451
 
451
 
452
		return imageConteneur;
452
		return imageConteneur;
453
 
453
 
454
	}
454
	}
455
}
455
}