Subversion Repositories eFlore/Applications.cel

Rev

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

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