Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 6 | Rev 12 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 aperonnet 1
 
2
package org.tela_botanica.client.vues;
3
 
4
 
5
import org.tela_botanica.client.image.ImageMediateur;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
 
8
 
6 aperonnet 9
import com.google.gwt.user.client.Window;
5 aperonnet 10
import com.gwtext.client.data.ArrayReader;
4 aperonnet 11
import com.gwtext.client.data.FieldDef;
5 aperonnet 12
import com.gwtext.client.data.MemoryProxy;
4 aperonnet 13
import com.gwtext.client.data.Record;
14
import com.gwtext.client.data.RecordDef;
15
import com.gwtext.client.data.Store;
16
import com.gwtext.client.data.StoreMgr;
17
import com.gwtext.client.data.StringFieldDef;
5 aperonnet 18
import com.gwtext.client.widgets.Component;
6 aperonnet 19
import com.gwtext.client.widgets.event.ContainerListener;
5 aperonnet 20
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
21
import com.gwtext.client.widgets.event.PanelListener;
22
import com.gwtext.client.widgets.event.PanelListenerAdapter;
4 aperonnet 23
import com.gwtext.client.widgets.grid.CellMetadata;
24
import com.gwtext.client.widgets.grid.ColumnConfig;
25
import com.gwtext.client.widgets.grid.ColumnModel;
26
import com.gwtext.client.widgets.grid.GridPanel;
6 aperonnet 27
import com.gwtext.client.widgets.grid.GridView;
4 aperonnet 28
import com.gwtext.client.widgets.grid.Renderer;
29
import com.gwtextux.client.data.BufferedStore;
30
 
31
public class ListeImageVue extends GridPanel implements Rafraichissable {
32
 
33
 
34
 
35
	// instance du médiateur
36
	private ImageMediateur iMediateur = null;
37
 
38
 
39
	private ColumnConfig numImage ;
40
	private ColumnConfig urlImage ;
41
	private ColumnModel modeleColonnes ;
42
 
43
 
44
 
45
	// données locales
46
	// store qui gère les données de la liste d'images
47
	private Store st = null ;
48
	private ColumnConfig cl = null ;
49
 
50
 
51
	public ListeImageVue(ImageMediateur im) {
52
 
53
		this.iMediateur = im ;
54
 
55
 
7 aperonnet 56
		/*setAutoWidth(true);
57
		setAutoHeight(true);*/
4 aperonnet 58
 
7 aperonnet 59
		numImage = new ColumnConfig("numéro d'image","num_image",150,true);
60
		numImage.setId("expCol");
4 aperonnet 61
		urlImage = new ColumnConfig("Image","url_image",150,true,new Renderer() {
62
 
63
			public String render(Object value, CellMetadata cellMetadata,
64
					Record record, int rowIndex, int colNum, Store store) {
65
 
5 aperonnet 66
				String ImgUrl = record.getAsString("url_image");
6 aperonnet 67
				return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='example'> </div>";
4 aperonnet 68
			}
69
 
70
		});
71
 
72
		ColumnConfig[] cm = {numImage,urlImage};
73
		modeleColonnes = new ColumnModel(cm);
74
		this.setColumnModel(modeleColonnes);
7 aperonnet 75
		this.setAutoExpandColumn("expCol");
6 aperonnet 76
		this.setAutoScroll(true);
7 aperonnet 77
		this.setAutoWidth(true);
78
		this.setAutoHeight(true);
4 aperonnet 79
 
80
 
81
		FieldDef defNumImage = new StringFieldDef("num_image");
82
		FieldDef defUrlImage = new StringFieldDef("url_image");
83
		FieldDef[] defTab = {defNumImage,defUrlImage};
84
		RecordDef rd = new RecordDef(defTab) ;
85
		st = new Store(rd) ;
86
		this.setStore(st);
87
 
5 aperonnet 88
		ajouterListeners() ;
6 aperonnet 89
 
4 aperonnet 90
	}
91
 
92
 
5 aperonnet 93
	// role : configurer les colonnes affichées dans la grille
94
	private void initialiser() {
4 aperonnet 95
 
6 aperonnet 96
		getIMediateur().obtenirPhotoGalerie(this);
4 aperonnet 97
 
98
 
99
	}
5 aperonnet 100
 
101
	public void ajouterListeners()
102
	{
103
		this.addListener(new ContainerListenerAdapter() {
4 aperonnet 104
 
105
 
6 aperonnet 106
			public boolean doBeforeRender(Component component)
107
			{
108
				initialiser();
109
				return true ;
110
			}
111
 
5 aperonnet 112
			public void onHide(Component component) {
113
				// TODO Auto-generated method stub
114
 
115
			}
116
 
117
 
118
			public void onRender(Component component) {
119
				// TODO Auto-generated method stub
120
 
121
			}
122
 
123
 
124
			public void onShow(Component component) {
125
 
126
			}
127
 
128
		});
129
	}
130
 
131
 
4 aperonnet 132
	public void rafraichir(Object nouvelleDonnees) {
133
 
5 aperonnet 134
		Object[][] photoData = (Object[][])nouvelleDonnees ;
6 aperonnet 135
 
5 aperonnet 136
		final MemoryProxy dataProxy = new MemoryProxy(photoData);
137
		final ArrayReader reader = new ArrayReader(new RecordDef(
138
				new FieldDef[]{new StringFieldDef("num_image"),
139
						new StringFieldDef("url_image")}));
140
 
141
		final Store photoStore = new Store(dataProxy, reader);
142
 
143
		st = photoStore;
6 aperonnet 144
		this.reconfigure(st, this.getColumnModel());
145
		photoStore.load();
4 aperonnet 146
	}
5 aperonnet 147
 
148
 
149
	public ImageMediateur getIMediateur() {
150
		return iMediateur;
151
	}
152
 
153
 
154
	public ColumnConfig getNumImage() {
155
		return numImage;
156
	}
157
 
158
 
159
	public ColumnConfig getUrlImage() {
160
		return urlImage;
161
	}
162
 
163
 
164
	public ColumnModel getModeleColonnes() {
165
		return modeleColonnes;
166
	}
167
 
168
 
169
	public Store getSt() {
170
		return st;
171
	}
172
 
173
 
174
	public ColumnConfig getCl() {
175
		return cl;
176
	}
4 aperonnet 177
 
178
 
179
 
180
}