Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 5 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 aperonnet 1
package org.tela_botanica.client.vues;
2
 
3
 
4
import org.tela_botanica.client.image.ImageMediateur;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
 
7
 
8
import com.google.gwt.core.client.JavaScriptObject;
9
import com.google.gwt.user.client.Element;
10
import com.gwtext.client.core.EventObject;
11
import com.gwtext.client.core.XTemplate;
12
import com.gwtext.client.data.FieldDef;
13
import com.gwtext.client.data.RecordDef;
14
import com.gwtext.client.data.Store;
15
import com.gwtext.client.data.StringFieldDef;
16
import com.gwtext.client.util.Format;
17
import com.gwtext.client.widgets.BoxComponent;
18
import com.gwtext.client.widgets.Component;
19
import com.gwtext.client.widgets.DataView;
20
import com.gwtext.client.widgets.Panel;
21
import com.gwtext.client.widgets.DataView.Data;
22
import com.gwtext.client.widgets.event.DataViewListener;
23
import com.gwtext.client.widgets.event.DataViewListenerAdapter;
24
 
25
public class GalerieImageVue extends Panel implements Rafraichissable {
26
 
27
	// instance du médiateur
28
	private ImageMediateur iMediateur = null;
29
	private DataView dView = null ;
30
	private Store st = null ;
31
 
32
	public GalerieImageVue(ImageMediateur im)
33
	{
34
		super("Galerie");
35
		iMediateur = im ;
36
 
37
 
38
		// Preparation de la dataview et du template
39
		// le template va créer une div contenant une image
40
		// pour chacune des photos
41
		final XTemplate template = new XTemplate(
42
				new String[]{
43
						"<tpl for='.'>",
44
						"<div class='thumb-wrap' id='{nom}'>",
45
						"<div class='thumb'><img src='{url}' title='{nom}'></div>",
46
						"<span>{nom}</span></div>", "</tpl>",
47
						"<div class='x-clear'></div>"});
48
		template.compile();
49
 
50
		// la dataview affichera les images en accord avec le template
51
		// cree precedemment
52
		dView = new DataView("div.thumb-wrap") {
53
			public void prepareData(Data data) {
54
				data.setProperty("shortName", Format.ellipsis(data
55
						.getProperty("name"), 15));
56
			}
57
		};
58
		dView.setTpl(template);
59
 
60
		// parametre d'affichage de la dataview
61
		dView.setAutoHeight(true);
62
		dView.setMultiSelect(true);
63
		dView.setOverCls("x-view-over");
64
		dView.setEmptyText("Aucune image à afficher");
65
 
66
 
67
		// creation du store
68
		FieldDef defNumImage = new StringFieldDef("num_image");
69
		FieldDef defUrlImage = new StringFieldDef("url_image");
70
		FieldDef[] defTab = {defNumImage,defUrlImage};
71
		RecordDef rd = new RecordDef(defTab) ;
72
		st = new Store(rd) ;
73
		dView.setStore(st);
74
 
75
		// ajouts de la gestion des evenements pour la dataview
76
		ajouterListeners();
77
 
78
		this.add(dView);
79
 
80
	}
81
 
82
 
83
	public void ajouterListeners()
84
	{
85
		// ajout de listeners pour la gestion de la selection
86
		// dans la galerie
87
		dView.addListener(new DataViewListenerAdapter() {
88
 
89
 
90
 
91
			public void onClick(DataView source, int index, Element node,
92
					EventObject e) {
93
				//TODO: appeler le mediateur
94
 
95
			}
96
 
97
 
98
			public void onContainerClick(DataView source, EventObject e) {
99
				//TODO: appeler le mediateur
100
 
101
			}
102
 
103
 
104
			public void onContextMenu(DataView source, int index, Element node,
105
					EventObject e) {
106
				//TODO: appeler le mediateur
107
 
108
			}
109
 
110
 
111
			public void onDblClick(DataView source, int index, Element node,
112
					EventObject e) {
113
				//TODO: appeler le mediateur
114
 
115
			}
116
 
117
 
118
			public void onSelectionChange(DataView view, Element[] selections) {
119
				//TODO: appeler le mediateur
120
 
121
			}
122
 
123
		});
124
	}
125
 
126
 
127
 
128
	public void rafraichir(Object nouvelleDonnees) {
129
		// TODO Auto-generated method stub
130
 
131
	}
132
}