Subversion Repositories eFlore/Archives.cel-v2

Rev

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