Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 59 Rev 60
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.ListePaginable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.interfaces.VueListable;
6
import org.tela_botanica.client.interfaces.VueListable;
6
 
7
 
7
import com.gwtext.client.core.EventObject;
8
import com.gwtext.client.core.EventObject;
8
import com.gwtext.client.data.FieldDef;
9
import com.gwtext.client.data.FieldDef;
9
import com.gwtext.client.data.IntegerFieldDef;
10
import com.gwtext.client.data.IntegerFieldDef;
10
import com.gwtext.client.data.Record;
11
import com.gwtext.client.data.Record;
11
import com.gwtext.client.data.RecordDef;
12
import com.gwtext.client.data.RecordDef;
12
import com.gwtext.client.data.Store;
13
import com.gwtext.client.data.Store;
13
import com.gwtext.client.data.StringFieldDef;
14
import com.gwtext.client.data.StringFieldDef;
14
import com.gwtext.client.dd.DragData;
15
import com.gwtext.client.dd.DragData;
15
import com.gwtext.client.dd.DragSource;
16
import com.gwtext.client.dd.DragSource;
16
import com.gwtext.client.dd.DropTarget;
17
import com.gwtext.client.dd.DropTarget;
17
import com.gwtext.client.dd.DropTargetConfig;
18
import com.gwtext.client.dd.DropTargetConfig;
18
import com.gwtext.client.widgets.Component;
19
import com.gwtext.client.widgets.Component;
19
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
20
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
20
import com.gwtext.client.widgets.grid.CellMetadata;
21
import com.gwtext.client.widgets.grid.CellMetadata;
21
import com.gwtext.client.widgets.grid.ColumnConfig;
22
import com.gwtext.client.widgets.grid.ColumnConfig;
22
import com.gwtext.client.widgets.grid.ColumnModel;
23
import com.gwtext.client.widgets.grid.ColumnModel;
23
import com.gwtext.client.widgets.grid.GridDragData;
24
import com.gwtext.client.widgets.grid.GridDragData;
24
import com.gwtext.client.widgets.grid.GridPanel;
25
import com.gwtext.client.widgets.grid.GridPanel;
25
import com.gwtext.client.widgets.grid.Renderer;
26
import com.gwtext.client.widgets.grid.Renderer;
26
import com.gwtext.client.widgets.grid.RowSelectionModel;
27
import com.gwtext.client.widgets.grid.RowSelectionModel;
27
import com.gwtext.client.widgets.grid.event.GridRowListener;
28
import com.gwtext.client.widgets.grid.event.GridRowListener;
28
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
29
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
29
 
30
 
30
/**
31
/**
31
 * Liste d'image composée de miniatures et d'information sur l'image, implémente
32
 * Liste d'image composée de miniatures et d'information sur l'image, implémente
32
 * l'interface rafraichissable et l'interface vueListable
33
 * l'interface rafraichissable et l'interface vueListable
33
 * 
34
 * 
34
 * @author aurelien
35
 * @author aurelien
35
 */
36
 */
36
public class ListeImageVue extends GridPanel implements Rafraichissable,
37
public class ListeImageVue extends GridPanel implements Rafraichissable,
37
		VueListable {
38
		VueListable, ListePaginable {
38
 
39
 
39
	/**
40
	/**
40
	 * Le médiateur associé à la vue
41
	 * Le médiateur associé à la vue
41
	 */
42
	 */
42
	private ImageMediateur iMediateur = null;
43
	private ImageMediateur iMediateur = null;
43
 
44
 
44
	/**
45
	/**
45
	 * Config de colonne
46
	 * Config de colonne
46
	 */
47
	 */
47
	private ColumnConfig numImage;
48
	private ColumnConfig numImage;
48
	/**
49
	/**
49
	 * Config de colonne
50
	 * Config de colonne
50
	 */
51
	 */
51
	private ColumnConfig urlImage;
52
	private ColumnConfig urlImage;
52
	/**
53
	/**
53
	 * Config de colonne
54
	 * Config de colonne
54
	 */
55
	 */
55
	private ColumnConfig lieImage;
56
	private ColumnConfig lieImage;
56
	/**
57
	/**
57
	 * Config de colonne
58
	 * Config de colonne
58
	 */
59
	 */
59
	private ColumnConfig datImage;
60
	private ColumnConfig datImage;
60
	/**
61
	/**
61
	 * Config de colonne
62
	 * Config de colonne
62
	 */
63
	 */
63
	private ColumnConfig appImage;
64
	private ColumnConfig appImage;
64
	/**
65
	/**
65
	 * Config de colonne
66
	 * Config de colonne
66
	 */
67
	 */
67
	private ColumnConfig noteImage;
68
	private ColumnConfig noteImage;
68
	/**
69
	/**
69
	 * Modele de colonnes
70
	 * Modele de colonnes
70
	 */
71
	 */
71
	private ColumnModel modeleColonnes;
72
	private ColumnModel modeleColonnes;
72
 
73
 
73
	/**
74
	/**
74
	 * Booleen d'instanciation
75
	 * Booleen d'instanciation
75
	 */
76
	 */
76
	private boolean estInstancie = false;
77
	private boolean estInstancie = false;
77
 
78
 
78
	/**
79
	/**
79
	 * Store qui contient les données à afficher
80
	 * Store qui contient les données à afficher
80
	 */
81
	 */
81
	private Store st = null;
82
	private Store st = null;
82
	/**
83
	/**
83
	 * Configuration des colonnes du store
84
	 * Configuration des colonnes du store
84
	 */
85
	 */
85
	private ColumnConfig cl = null;
86
	private ColumnConfig cl = null;
86
 
87
 
87
	/**
88
	/**
88
	 * Barre de pagination
89
	 * Barre de pagination
89
	 */
90
	 */
90
	private BarrePaginationVue bt = null;
91
	private BarrePaginationVue bt = null;
91
 
92
 
92
	/**
93
	/**
93
	 * Constructeur sans arguments (privé car ne doit pas être utilisé)
94
	 * Constructeur sans arguments (privé car ne doit pas être utilisé)
94
	 */
95
	 */
95
	private ListeImageVue() {
96
	private ListeImageVue() {
96
		super();
97
		super();
97
	}
98
	}
98
 
99
 
99
	/**
100
	/**
100
	 * Constructeur avec argument
101
	 * Constructeur avec argument
101
	 * 
102
	 * 
102
	 * @param im
103
	 * @param im
103
	 *            le médiateur à associer
104
	 *            le médiateur à associer
104
	 */
105
	 */
105
	public ListeImageVue(ImageMediateur im) {
106
	public ListeImageVue(ImageMediateur im) {
106
 
107
 
107
		new ListeImageVue();
108
		new ListeImageVue();
108
 
109
 
109
		this.setId("listeImageGrid");
110
		this.setId("listeImageGrid");
110
		// on associe le médiateur
111
		// on associe le médiateur
111
		this.iMediateur = im;
112
		this.iMediateur = im;
112
 
113
 
113
		// on place la barre de pagination
114
		// on place la barre de pagination
114
		bt = new BarrePaginationVue(iMediateur);
115
		bt = new BarrePaginationVue(this);
115
		bt.setLabelElement("Images");
116
		bt.setLabelElement("Images");
116
		bt.setTaillePageParDefaut(50);
117
		bt.setTaillePageParDefaut(50);
117
		setBottomToolbar(bt);
118
		setBottomToolbar(bt);
118
 
119
 
119
		// on construit le modèle de colonnes
120
		// on construit le modèle de colonnes
120
		numImage = new ColumnConfig("numéro", "num_image", 30, true,
121
		numImage = new ColumnConfig("numéro", "num_image", 30, true,
121
				new Renderer() {
122
				new Renderer() {
122
 
123
 
123
					public String render(Object value,
124
					public String render(Object value,
124
							CellMetadata cellMetadata, Record record,
125
							CellMetadata cellMetadata, Record record,
125
							int rowIndex, int colNum, Store store) {
126
							int rowIndex, int colNum, Store store) {
126
 
127
 
127
						String ImgNum = record.getAsString("num_image");
128
						String ImgNum = record.getAsString("num_image");
128
						return "<div class=\"centered-list\">" + ImgNum
129
						return "<div class=\"centered-list\">" + ImgNum
129
								+ "</div>";
130
								+ "</div>";
130
					}
131
					}
131
 
132
 
132
				});
133
				});
133
 
134
 
134
		datImage = new ColumnConfig("date", "dat_image", 120, true,
135
		datImage = new ColumnConfig("date", "dat_image", 120, true,
135
				new Renderer() {
136
				new Renderer() {
136
 
137
 
137
					public String render(Object value,
138
					public String render(Object value,
138
							CellMetadata cellMetadata, Record record,
139
							CellMetadata cellMetadata, Record record,
139
							int rowIndex, int colNum, Store store) {
140
							int rowIndex, int colNum, Store store) {
140
 
141
 
141
						String ImgDat = record.getAsString("dat_image");
142
						String ImgDat = record.getAsString("dat_image");
142
						if (ImgDat == null) {
143
						if (ImgDat == null) {
143
							ImgDat = " ";
144
							ImgDat = " ";
144
						}
145
						}
145
						return "<div class=\"centered-list\">" + ImgDat
146
						return "<div class=\"centered-list\">" + ImgDat
146
								+ "</div>";
147
								+ "</div>";
147
					}
148
					}
148
 
149
 
149
				});
150
				});
150
		lieImage = new ColumnConfig("lieu", "lie_image", 120, true,
151
		lieImage = new ColumnConfig("lieu", "lie_image", 120, true,
151
				new Renderer() {
152
				new Renderer() {
152
 
153
 
153
					public String render(Object value,
154
					public String render(Object value,
154
							CellMetadata cellMetadata, Record record,
155
							CellMetadata cellMetadata, Record record,
155
							int rowIndex, int colNum, Store store) {
156
							int rowIndex, int colNum, Store store) {
156
 
157
 
157
						String ImgLie = record.getAsString("lie_image");
158
						String ImgLie = record.getAsString("lie_image");
158
						if (ImgLie == null) {
159
						if (ImgLie == null) {
159
							ImgLie = " ";
160
							ImgLie = " ";
160
						}
161
						}
161
						return "<div class=\"centered-list\">" + ImgLie
162
						return "<div class=\"centered-list\">" + ImgLie
162
								+ "</div>";
163
								+ "</div>";
163
					}
164
					}
164
 
165
 
165
				});
166
				});
166
		appImage = new ColumnConfig("appareil", "app_image", 120, true,
167
		appImage = new ColumnConfig("appareil", "app_image", 120, true,
167
				new Renderer() {
168
				new Renderer() {
168
 
169
 
169
					public String render(Object value,
170
					public String render(Object value,
170
							CellMetadata cellMetadata, Record record,
171
							CellMetadata cellMetadata, Record record,
171
							int rowIndex, int colNum, Store store) {
172
							int rowIndex, int colNum, Store store) {
172
 
173
 
173
						String ImgApp = record.getAsString("app_image");
174
						String ImgApp = record.getAsString("app_image");
174
						if (ImgApp == null) {
175
						if (ImgApp == null) {
175
							ImgApp = " ";
176
							ImgApp = " ";
176
						}
177
						}
177
						return "<div class=\"centered-list\">" + ImgApp
178
						return "<div class=\"centered-list\">" + ImgApp
178
								+ "</div>";
179
								+ "</div>";
179
					}
180
					}
180
 
181
 
181
				});
182
				});
182
		// la colonne url possède une méthode de rendu spéciale
183
		// la colonne url possède une méthode de rendu spéciale
183
		urlImage = new ColumnConfig("Image", "url_image_S", 30, true,
184
		urlImage = new ColumnConfig("Image", "url_image_S", 30, true,
184
				new Renderer() {
185
				new Renderer() {
185
 
186
 
186
					public String render(Object value,
187
					public String render(Object value,
187
							CellMetadata cellMetadata, Record record,
188
							CellMetadata cellMetadata, Record record,
188
							int rowIndex, int colNum, Store store) {
189
							int rowIndex, int colNum, Store store) {
189
						// on affiche une div contenant l'image pointée par
190
						// on affiche une div contenant l'image pointée par
190
						// l'url
191
						// l'url
191
						String ImgUrl = record.getAsString("url_image_S");
192
						String ImgUrl = record.getAsString("url_image_S");
192
						String ImgNum = record.getAsString("num_image");
193
						String ImgNum = record.getAsString("num_image");
193
						return "<div class=\"img-list centered-list\"> <img src=\""
194
						return "<div class=\"img-list centered-list\"> <img src=\""
194
								+ ImgUrl + "\" title='" + ImgNum + "'> </div>";
195
								+ ImgUrl + "\" title='" + ImgNum + "'> </div>";
195
					}
196
					}
196
 
197
 
197
				});
198
				});
198
 
199
 
199
		noteImage = new ColumnConfig("note", "note_image", 80, true,
200
		noteImage = new ColumnConfig("note", "note_image", 80, true,
200
				new Renderer() {
201
				new Renderer() {
201
					public String render(Object value,
202
					public String render(Object value,
202
							CellMetadata cellMetadata, Record record,
203
							CellMetadata cellMetadata, Record record,
203
							int rowIndex, int colNum, Store store) {
204
							int rowIndex, int colNum, Store store) {
204
 
205
 
205
						String htmlImage = "";
206
						String htmlImage = "";
206
 
207
 
207
						int noteImg = record.getAsInteger("note_image");
208
						int noteImg = record.getAsInteger("note_image");
208
						if (noteImg >= 0) {
209
						if (noteImg >= 0) {
209
							htmlImage += "<div class=\"img-note centered-list\">";
210
							htmlImage += "<div class=\"img-note centered-list\">";
210
							for (int i = 0; i <= noteImg; i++) {
211
							for (int i = 0; i <= noteImg; i++) {
211
								htmlImage += "<img src=\"note-on.gif\">";
212
								htmlImage += "<img src=\"note-on.gif\">";
212
							}
213
							}
213
							htmlImage += "</div>";
214
							htmlImage += "</div>";
214
						}
215
						}
215
 
216
 
216
						return htmlImage;
217
						return htmlImage;
217
 
218
 
218
					}
219
					}
219
 
220
 
220
				});
221
				});
221
 
222
 
222
		// on associe le modèle de colonnes
223
		// on associe le modèle de colonnes
223
		ColumnConfig[] cm = { numImage, urlImage, datImage, lieImage, appImage,
224
		ColumnConfig[] cm = { numImage, urlImage, datImage, lieImage, appImage,
224
				noteImage };
225
				noteImage };
225
		modeleColonnes = new ColumnModel(cm);
226
		modeleColonnes = new ColumnModel(cm);
226
		this.setColumnModel(modeleColonnes);
227
		this.setColumnModel(modeleColonnes);
227
		this.setAutoScroll(true);
228
		this.setAutoScroll(true);
228
		this.setAutoWidth(true);
229
		this.setAutoWidth(true);
229
		this.setEnableColumnResize(true);
230
		this.setEnableColumnResize(true);
230
 
231
 
231
		// creation du store
232
		// creation du store
232
		FieldDef defNumImage = new IntegerFieldDef("num_image");
233
		FieldDef defNumImage = new IntegerFieldDef("num_image");
233
		FieldDef defDatImage = new StringFieldDef("dat_image");
234
		FieldDef defDatImage = new StringFieldDef("dat_image");
234
		FieldDef defLieImage = new StringFieldDef("lie_image");
235
		FieldDef defLieImage = new StringFieldDef("lie_image");
235
		FieldDef defAppImage = new StringFieldDef("app_image");
236
		FieldDef defAppImage = new StringFieldDef("app_image");
236
		FieldDef defUrlImageS = new StringFieldDef("url_image_S");
237
		FieldDef defUrlImageS = new StringFieldDef("url_image_S");
237
		FieldDef defUrlImageM = new StringFieldDef("url_image_M");
238
		FieldDef defUrlImageM = new StringFieldDef("url_image_M");
238
		FieldDef defUrlImage = new StringFieldDef("url_image");
239
		FieldDef defUrlImage = new StringFieldDef("url_image");
239
		FieldDef defNoteImage = new StringFieldDef("note_image");
240
		FieldDef defNoteImage = new StringFieldDef("note_image");
240
		FieldDef[] defTab = { defNumImage, defDatImage, defLieImage,
241
		FieldDef[] defTab = { defNumImage, defDatImage, defLieImage,
241
				defAppImage, defUrlImageS, defUrlImageM, defUrlImage,
242
				defAppImage, defUrlImageS, defUrlImageM, defUrlImage,
242
				defNoteImage };
243
				defNoteImage };
243
		RecordDef rd = new RecordDef(defTab);
244
		RecordDef rd = new RecordDef(defTab);
244
		st = new Store(rd);
245
		st = new Store(rd);
245
		// on associe le store
246
		// on associe le store
246
		this.setStore(st);
247
		this.setStore(st);
247
		this.getView().setAutoFill(true);
248
		this.getView().setAutoFill(true);
248
 
249
 
249
 
250
 
250
		// on crée un masque de chargement qui s'affichera lors des mises à jour
251
		// on crée un masque de chargement qui s'affichera lors des mises à jour
251
		this.setLoadMask("chargement");
252
		this.setLoadMask("chargement");
252
		
253
		
253
		//Enable drag and drop
254
		//Enable drag and drop
254
		this.setEnableDragDrop(true);
255
		this.setEnableDragDrop(true);
255
		//You need to set the same group for both grids
256
		//You need to set the same group for both grids
256
		this.setDdGroup("DragGroupName");
257
		this.setDdGroup("DragGroupName");
257
 
258
 
258
		// on ajoute les listeners
259
		// on ajoute les listeners
259
		ajouterListeners();
260
		ajouterListeners();
260
 
261
 
261
	}
262
	}
262
	
263
	
263
 
264
 
264
	/**
265
	/**
265
	 * Ajoute les listeners pour la gestion des évènements
266
	 * Ajoute les listeners pour la gestion des évènements
266
	 */
267
	 */
267
	private void ajouterListeners() {
268
	private void ajouterListeners() {
268
		this.addListener(new ContainerListenerAdapter() {
269
		this.addListener(new ContainerListenerAdapter() {
269
 
270
 
270
			public void onHide(Component component) {
271
			public void onHide(Component component) {
271
 
272
 
272
			}
273
			}
273
 
274
 
274
			// lors du premier rendu on demande les données qui sont déjà
275
			// lors du premier rendu on demande les données qui sont déjà
275
			// contenues dans la galerie qui est le premier élément affiché
276
			// contenues dans la galerie qui est le premier élément affiché
276
 
277
 
277
			public void onRender(Component component) {
278
			public void onRender(Component component) {
278
 
279
 
279
				if (!isEstInstancie()) {
280
				if (!isEstInstancie()) {
280
					setEstInstancie(true);
281
					setEstInstancie(true);
281
					setDragDropText("Glissez les images sur la liste d'observation pour les lier") ;
282
					setDragDropText("Glissez les images sur la liste d'observation pour les lier") ;
282
					getIMediateur().synchroniserSelection("galerie");
283
					getIMediateur().synchroniserSelection("galerie");
283
				}
284
				}
284
			}
285
			}
285
 
286
 
286
			public void onShow(Component component) {
287
			public void onShow(Component component) {
287
 
288
 
288
			}
289
			}
289
 
290
 
290
		});
291
		});
291
 
292
 
292
		this.addGridRowListener(new GridRowListener() {
293
		this.addGridRowListener(new GridRowListener() {
293
 
294
 
294
			// gestion du clic sur une ligne
295
			// gestion du clic sur une ligne
295
			public void onRowClick(GridPanel grid, int rowIndex, EventObject e) {
296
			public void onRowClick(GridPanel grid, int rowIndex, EventObject e) {
296
 
297
 
297
				// on notifie le médiateur et on lui passe le nuémro de ligne
298
				// on notifie le médiateur et on lui passe le nuémro de ligne
298
				getIMediateur().clicListeImage(rowIndex);
299
				getIMediateur().clicListeImage(rowIndex);
299
			}
300
			}
300
 
301
 
301
			// gestion du clic droit
302
			// gestion du clic droit
302
			public void onRowContextMenu(GridPanel grid, int rowIndex,
303
			public void onRowContextMenu(GridPanel grid, int rowIndex,
303
					EventObject e) {
304
					EventObject e) {
304
				// on stoppe l'évenement pour empecher le navigateur d'afficher
305
				// on stoppe l'évenement pour empecher le navigateur d'afficher
305
				// son propre menu
306
				// son propre menu
306
				e.stopEvent();
307
				e.stopEvent();
307
				// on notifie le médiateur en lui passant l'évenement
308
				// on notifie le médiateur en lui passant l'évenement
308
				getIMediateur().montrerContextMenu(e);
309
				getIMediateur().montrerContextMenu(e);
309
			}
310
			}
310
 
311
 
311
			// gestion du double clic
312
			// gestion du double clic
312
			public void onRowDblClick(GridPanel grid, int rowIndex,
313
			public void onRowDblClick(GridPanel grid, int rowIndex,
313
					EventObject e) {
314
					EventObject e) {
314
				// on notifie le médiateur en lui passant le numéro de ligne
315
				// on notifie le médiateur en lui passant le numéro de ligne
315
				getIMediateur().doubleClicListeImage(rowIndex);
316
				getIMediateur().doubleClicListeImage(rowIndex);
316
			}
317
			}
317
		});
318
		});
318
 
319
 
319
		this.getSelectionModel().addListener(new RowSelectionListenerAdapter() {
320
		this.getSelectionModel().addListener(new RowSelectionListenerAdapter() {
320
 
321
 
321
			// gestion de la sélection
322
			// gestion de la sélection
322
 
323
 
323
			public void onSelectionChange(RowSelectionModel sm) {
324
			public void onSelectionChange(RowSelectionModel sm) {
324
 
325
 
325
				// si on a rien de sélectionné
326
				// si on a rien de sélectionné
326
				if (sm.getCount() <= 0) {
327
				if (sm.getCount() <= 0) {
327
					// on notifie le médiateur (qui désactive notamment l'accès
328
					// on notifie le médiateur (qui désactive notamment l'accès
328
					// à certaines infos)
329
					// à certaines infos)
329
					getIMediateur().aucuneSelection();
330
					getIMediateur().aucuneSelection();
330
				} else {
331
				} else {
331
					// sinon on notifie le médiateur
332
					// sinon on notifie le médiateur
332
					getIMediateur().selection();
333
					getIMediateur().selection();
333
					// et on lui demande de synchroniser la selection avec les
334
					// et on lui demande de synchroniser la selection avec les
334
					// autres vues
335
					// autres vues
335
					getIMediateur().synchroniserSelection("liste");
336
					getIMediateur().synchroniserSelection("liste");
336
				}
337
				}
337
			}
338
			}
338
		});
339
		});
339
		
340
		
340
		//Enable drag and drop
341
		//Enable drag and drop
341
		this.setEnableDragDrop(true);
342
		this.setEnableDragDrop(true);
342
 
343
 
343
		//Same name in destination
344
		//Same name in destination
344
		this.setDdGroup("DragGroupName");
345
		this.setDdGroup("DragGroupName");
345
		DropTargetConfig dtc = new DropTargetConfig();
346
		DropTargetConfig dtc = new DropTargetConfig();
346
		dtc.setdDdGroup("DragGroupName");
347
		dtc.setdDdGroup("DragGroupName");
347
 
348
 
348
		//Now this is the important part, you need a drop target
349
		//Now this is the important part, you need a drop target
349
		@SuppressWarnings("unused")
350
		@SuppressWarnings("unused")
350
		DropTarget tg = new DropTarget(this, dtc)
351
		DropTarget tg = new DropTarget(this, dtc)
351
		{
352
		{
352
			public boolean notifyDrop(DragSource source, EventObject e, DragData data){
353
			public boolean notifyDrop(DragSource source, EventObject e, DragData data){
353
			
354
			
354
				if(data instanceof GridDragData)
355
				if(data instanceof GridDragData)
355
				{
356
				{
356
					GridDragData gdd = (GridDragData)data ;
357
					GridDragData gdd = (GridDragData)data ;
357
	    		  	if(gdd.getGrid().getId().equals("listeImageGrid"))
358
	    		  	if(gdd.getGrid().getId().equals("listeImageGrid"))
358
	    		  	{
359
	    		  	{
359
	    		  		return false ;
360
	    		  		return false ;
360
	    		  	}
361
	    		  	}
361
	    		  	else
362
	    		  	else
362
	    		  	{
363
	    		  	{
363
	    		  		return iMediateur.lierObsDD(source, e, data, getId()) ;   
364
	    		  		return iMediateur.lierObsDD(source, e, data, getId()) ;   
364
	    		  	}
365
	    		  	}
365
				}
366
				}
366
				else
367
				else
367
				{
368
				{
368
					return false ;
369
					return false ;
369
				}
370
				}
370
				
371
				
371
				
372
				
372
			}
373
			}
373
			
374
			
374
			public String notifyOver(DragSource source, EventObject e, DragData data){
375
			public String notifyOver(DragSource source, EventObject e, DragData data){
375
			    return "x-dd-drop-ok";
376
			    return "x-dd-drop-ok";
376
			}
377
			}
377
		};
378
		};
378
	}
379
	}
379
 
380
 
380
	/**
381
	/**
381
	 * Méthode héritée de l'interface VueListable Sélectionne les images dans la
382
	 * Méthode héritée de l'interface VueListable Sélectionne les images dans la
382
	 * galerie suivant les identifiants donnés en paramètres
383
	 * galerie suivant les identifiants donnés en paramètres
383
	 */
384
	 */
384
	public String[] getIdSelectionnees() {
385
	public String[] getIdSelectionnees() {
385
		Record[] selection = this.getSelectionModel().getSelections();
386
		Record[] selection = this.getSelectionModel().getSelections();
386
		int taille = selection.length;
387
		int taille = selection.length;
387
		String id_selection[] = new String[taille];
388
		String id_selection[] = new String[taille];
388
 
389
 
389
		for (int i = 0; i < selection.length; i++) {
390
		for (int i = 0; i < selection.length; i++) {
390
 
391
 
391
			id_selection[i] = selection[i].getAsString("num_image");
392
			id_selection[i] = selection[i].getAsString("num_image");
392
		}
393
		}
393
 
394
 
394
		return id_selection;
395
		return id_selection;
395
	}
396
	}
396
 
397
 
397
	/**
398
	/**
398
	 * Accesseur pour la config de colonnes
399
	 * Accesseur pour la config de colonnes
399
	 * 
400
	 * 
400
	 * @return la config de colonnes
401
	 * @return la config de colonnes
401
	 */
402
	 */
402
	public ColumnConfig getCl() {
403
	public ColumnConfig getCl() {
403
		return cl;
404
		return cl;
404
	}
405
	}
405
 
406
 
406
	/**
407
	/**
407
	 * Accesseur pour le médiateur
408
	 * Accesseur pour le médiateur
408
	 * 
409
	 * 
409
	 * @return le médiateur associé
410
	 * @return le médiateur associé
410
	 */
411
	 */
411
	public ImageMediateur getIMediateur() {
412
	public ImageMediateur getIMediateur() {
412
		return iMediateur;
413
		return iMediateur;
413
	}
414
	}
414
 
415
 
415
	/**
416
	/**
416
	 * Accesseur pour le modèle de colonnes
417
	 * Accesseur pour le modèle de colonnes
417
	 * 
418
	 * 
418
	 * @return le modèle de colonnes
419
	 * @return le modèle de colonnes
419
	 */
420
	 */
420
	public ColumnModel getModeleColonnes() {
421
	public ColumnModel getModeleColonnes() {
421
		return modeleColonnes;
422
		return modeleColonnes;
422
	}
423
	}
423
 
424
 
424
	/**
425
	/**
425
	 * Accesseur pour le store
426
	 * Accesseur pour le store
426
	 * 
427
	 * 
427
	 * @return le store contenant les données
428
	 * @return le store contenant les données
428
	 */
429
	 */
429
	public Store getSt() {
430
	public Store getSt() {
430
		return st;
431
		return st;
431
	}
432
	}
432
 
433
 
433
	/**
434
	/**
434
	 * Accesseur pour le booleen d'instanciation
435
	 * Accesseur pour le booleen d'instanciation
435
	 * 
436
	 * 
436
	 * @return le booleen d'instanciation
437
	 * @return le booleen d'instanciation
437
	 */
438
	 */
438
	public boolean isEstInstancie() {
439
	public boolean isEstInstancie() {
439
		return estInstancie;
440
		return estInstancie;
440
	}
441
	}
441
 
442
 
442
	/**
443
	/**
443
	 * Méthode héritée de l'interface rafraichissable
444
	 * Méthode héritée de l'interface rafraichissable
444
	 * 
445
	 * 
445
	 * @param nouvelleDonnees
446
	 * @param nouvelleDonnees
446
	 *            les nouvelles données
447
	 *            les nouvelles données
447
	 * @param repandreRafraichissement
448
	 * @param repandreRafraichissement
448
	 *            le booleen de notification du rafraichissement
449
	 *            le booleen de notification du rafraichissement
449
	 */
450
	 */
450
	public void rafraichir(Object nouvelleDonnees,
451
	public void rafraichir(Object nouvelleDonnees,
451
			boolean repandreRafraichissement) {
452
			boolean repandreRafraichissement) {
452
 
453
 
453
		// si on reçoit un store
454
		// si on reçoit un store
454
		if (nouvelleDonnees instanceof Store) {
455
		if (nouvelleDonnees instanceof Store) {
455
 
456
 
456
			// on affecte celui-ci comme gestionnaire de données
457
			// on affecte celui-ci comme gestionnaire de données
457
			st = (Store) nouvelleDonnees;
458
			st = (Store) nouvelleDonnees;
458
			st.load();
459
			st.load();
459
			// et on reconfigure et rafraichit la vue
460
			// et on reconfigure et rafraichit la vue
460
			this.reconfigure(st, this.getColumnModel());
461
			this.reconfigure(st, this.getColumnModel());
461
 
462
 
462
		}
463
		}
463
 
464
 
464
		// si on doit répandre l'évenement
465
		// si on doit répandre l'évenement
465
		if (repandreRafraichissement) {
466
		if (repandreRafraichissement) {
466
			// on notifie le médiateur avec une copie des données
467
			// on notifie le médiateur avec une copie des données
467
			getIMediateur().synchroniserDonneesZoomListeGalerie(
468
			getIMediateur().synchroniserDonneesZoomListeGalerie(
468
					nouvelleDonnees, this);
469
					nouvelleDonnees, this);
469
		}
470
		}
470
	}
471
	}
471
 
472
 
472
	/**
473
	/**
473
	 * Sélectionne des enregistrements donné
474
	 * Sélectionne des enregistrements donné
474
	 * 
475
	 * 
475
	 * @param sel
476
	 * @param sel
476
	 *            un tableau d'enregistrement à selectionner
477
	 *            un tableau d'enregistrement à selectionner
477
	 */
478
	 */
478
	public void selectionnerEnregistrements(Record[] sel) {
479
	public void selectionnerEnregistrements(Record[] sel) {
479
 
480
 
480
		if (isEstInstancie()) {
481
		if (isEstInstancie()) {
481
			getSelectionModel().clearSelections();
482
			getSelectionModel().clearSelections();
482
			getSelectionModel().selectRecords(sel);
483
			getSelectionModel().selectRecords(sel);
483
		}
484
		}
484
	}
485
	}
485
 
486
 
486
	/**
487
	/**
487
	 * Accesseur pour la toolbar de pagination
488
	 * Accesseur pour la toolbar de pagination
488
	 * 
489
	 * 
489
	 * @return la toolbar de pagination
490
	 * @return la toolbar de pagination
490
	 */
491
	 */
491
	public BarrePaginationVue getToolBarVue() {
492
	public BarrePaginationVue getToolBarVue() {
492
		return bt;
493
		return bt;
493
	}
494
	}
494
 
495
 
495
	/**
496
	/**
496
	 * Setteur pour le booleen d'instanciation
497
	 * Setteur pour le booleen d'instanciation
497
	 * 
498
	 * 
498
	 * @param estInstancie
499
	 * @param estInstancie
499
	 *            la nouvelle valeur du booleen
500
	 *            la nouvelle valeur du booleen
500
	 */
501
	 */
501
	public void setEstInstancie(boolean estInstancie) {
502
	public void setEstInstancie(boolean estInstancie) {
502
		this.estInstancie = estInstancie;
503
		this.estInstancie = estInstancie;
503
	}
504
	}
504
 
505
 
505
	public void mettreAjourInfos(String commentaires, String date, String note) {
506
	public void mettreAjourInfos(String commentaires, String date, String note) {
506
 
507
 
507
		for (int i = 0; i < getSelectionModel().getCount(); i++) {
508
		for (int i = 0; i < getSelectionModel().getCount(); i++) {
508
 
509
 
509
			getSelectionModel().getSelections()[i].set("note_image", note);
510
			getSelectionModel().getSelections()[i].set("note_image", note);
510
			getSelectionModel().getSelections()[i].set("dat_image", date);
511
			getSelectionModel().getSelections()[i].set("dat_image", date);
511
 
512
 
512
		}
513
		}
513
 
514
 
514
	}
515
	}
-
 
516
	
-
 
517
	public void changerNumeroPage(int pageCourante) {
-
 
518
		
-
 
519
		iMediateur.changerNumeroPage(pageCourante) ;
-
 
520
		
-
 
521
	}
-
 
522
 
-
 
523
	public void changerTaillePage(int nouvelleTaillePage) {
-
 
524
		
-
 
525
		iMediateur.changerTaillePage(nouvelleTaillePage) ;
-
 
526
	}
515
 
527
 
516
}
528
}