Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 5 | Rev 7 | 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
 
56
		setAutoWidth(true);
5 aperonnet 57
		setAutoHeight(true);
4 aperonnet 58
 
59
		numImage = new ColumnConfig("numéro d'image","num_image",150,true);
60
		urlImage = new ColumnConfig("Image","url_image",150,true,new Renderer() {
61
 
62
			public String render(Object value, CellMetadata cellMetadata,
63
					Record record, int rowIndex, int colNum, Store store) {
64
 
5 aperonnet 65
				String ImgUrl = record.getAsString("url_image");
6 aperonnet 66
				return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='example'> </div>";
4 aperonnet 67
			}
68
 
69
		});
70
 
71
		ColumnConfig[] cm = {numImage,urlImage};
72
		modeleColonnes = new ColumnModel(cm);
73
		this.setColumnModel(modeleColonnes);
6 aperonnet 74
		this.setAutoScroll(true);
4 aperonnet 75
 
76
 
77
		FieldDef defNumImage = new StringFieldDef("num_image");
78
		FieldDef defUrlImage = new StringFieldDef("url_image");
79
		FieldDef[] defTab = {defNumImage,defUrlImage};
80
		RecordDef rd = new RecordDef(defTab) ;
81
		st = new Store(rd) ;
82
		this.setStore(st);
83
 
5 aperonnet 84
		ajouterListeners() ;
6 aperonnet 85
 
4 aperonnet 86
	}
87
 
88
 
5 aperonnet 89
	// role : configurer les colonnes affichées dans la grille
90
	private void initialiser() {
4 aperonnet 91
 
6 aperonnet 92
		getIMediateur().obtenirPhotoGalerie(this);
4 aperonnet 93
 
94
 
95
	}
5 aperonnet 96
 
97
	public void ajouterListeners()
98
	{
99
		this.addListener(new ContainerListenerAdapter() {
4 aperonnet 100
 
101
 
6 aperonnet 102
			public boolean doBeforeRender(Component component)
103
			{
104
				initialiser();
105
				return true ;
106
			}
107
 
5 aperonnet 108
			public void onHide(Component component) {
109
				// TODO Auto-generated method stub
110
 
111
			}
112
 
113
 
114
			public void onRender(Component component) {
115
				// TODO Auto-generated method stub
116
 
117
			}
118
 
119
 
120
			public void onShow(Component component) {
121
 
122
			}
123
 
124
		});
125
	}
126
 
127
 
4 aperonnet 128
	public void rafraichir(Object nouvelleDonnees) {
129
 
5 aperonnet 130
		Object[][] photoData = (Object[][])nouvelleDonnees ;
6 aperonnet 131
 
5 aperonnet 132
		final MemoryProxy dataProxy = new MemoryProxy(photoData);
133
		final ArrayReader reader = new ArrayReader(new RecordDef(
134
				new FieldDef[]{new StringFieldDef("num_image"),
135
						new StringFieldDef("url_image")}));
136
 
137
		final Store photoStore = new Store(dataProxy, reader);
138
 
139
		st = photoStore;
6 aperonnet 140
		this.reconfigure(st, this.getColumnModel());
141
		photoStore.load();
4 aperonnet 142
	}
5 aperonnet 143
 
144
 
145
	public ImageMediateur getIMediateur() {
146
		return iMediateur;
147
	}
148
 
149
 
150
	public ColumnConfig getNumImage() {
151
		return numImage;
152
	}
153
 
154
 
155
	public ColumnConfig getUrlImage() {
156
		return urlImage;
157
	}
158
 
159
 
160
	public ColumnModel getModeleColonnes() {
161
		return modeleColonnes;
162
	}
163
 
164
 
165
	public Store getSt() {
166
		return st;
167
	}
168
 
169
 
170
	public ColumnConfig getCl() {
171
		return cl;
172
	}
4 aperonnet 173
 
174
 
175
 
176
}