Subversion Repositories eFlore/Applications.cel

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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