Subversion Repositories eFlore/Archives.cel-v2

Rev

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

Rev 16 Rev 18
1
 
1
 
2
package org.tela_botanica.client.vues;
2
package org.tela_botanica.client.vues;
3
 
3
 
4
 
4
 
5
import java.util.Iterator;
5
import java.util.Iterator;
6
 
6
 
7
import org.tela_botanica.client.image.ImageMediateur;
7
import org.tela_botanica.client.image.ImageMediateur;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.modeles.ImageCarnet;
9
import org.tela_botanica.client.modeles.ImageCarnet;
10
import org.tela_botanica.client.modeles.ListeImage;
10
import org.tela_botanica.client.modeles.ListeImage;
11
 
11
 
12
 
12
 
13
import com.google.gwt.user.client.Window;
13
import com.google.gwt.user.client.Window;
14
import com.gwtext.client.data.ArrayReader;
14
import com.gwtext.client.data.ArrayReader;
15
import com.gwtext.client.data.FieldDef;
15
import com.gwtext.client.data.FieldDef;
16
import com.gwtext.client.data.IntegerFieldDef;
16
import com.gwtext.client.data.IntegerFieldDef;
17
import com.gwtext.client.data.MemoryProxy;
17
import com.gwtext.client.data.MemoryProxy;
18
import com.gwtext.client.data.Record;
18
import com.gwtext.client.data.Record;
19
import com.gwtext.client.data.RecordDef;
19
import com.gwtext.client.data.RecordDef;
20
import com.gwtext.client.data.Store;
20
import com.gwtext.client.data.Store;
21
import com.gwtext.client.data.StoreMgr;
21
import com.gwtext.client.data.StoreMgr;
22
import com.gwtext.client.data.StringFieldDef;
22
import com.gwtext.client.data.StringFieldDef;
23
import com.gwtext.client.widgets.Component;
23
import com.gwtext.client.widgets.Component;
24
import com.gwtext.client.widgets.event.ContainerListener;
24
import com.gwtext.client.widgets.event.ContainerListener;
25
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
25
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
26
import com.gwtext.client.widgets.event.PanelListener;
26
import com.gwtext.client.widgets.event.PanelListener;
27
import com.gwtext.client.widgets.event.PanelListenerAdapter;
27
import com.gwtext.client.widgets.event.PanelListenerAdapter;
28
import com.gwtext.client.widgets.grid.CellMetadata;
28
import com.gwtext.client.widgets.grid.CellMetadata;
29
import com.gwtext.client.widgets.grid.ColumnConfig;
29
import com.gwtext.client.widgets.grid.ColumnConfig;
30
import com.gwtext.client.widgets.grid.ColumnModel;
30
import com.gwtext.client.widgets.grid.ColumnModel;
31
import com.gwtext.client.widgets.grid.GridPanel;
31
import com.gwtext.client.widgets.grid.GridPanel;
32
import com.gwtext.client.widgets.grid.GridView;
32
import com.gwtext.client.widgets.grid.GridView;
33
import com.gwtext.client.widgets.grid.Renderer;
33
import com.gwtext.client.widgets.grid.Renderer;
34
import com.gwtext.client.widgets.layout.AnchorLayout;
34
import com.gwtext.client.widgets.layout.AnchorLayout;
35
import com.gwtext.client.widgets.layout.FitLayout;
35
import com.gwtext.client.widgets.layout.FitLayout;
36
import com.gwtextux.client.data.BufferedStore;
36
import com.gwtextux.client.data.BufferedStore;
37
 
37
 
38
/**
38
/**
39
 * Liste d'image composée de miniatures et d'information sur l'image
39
 * Liste d'image composée de miniatures et d'information sur l'image
40
 * @author aurelien
40
 * @author aurelien
41
 *
41
 *
42
 */
42
 */
43
public class ListeImageVue extends GridPanel implements Rafraichissable {
43
public class ListeImageVue extends GridPanel implements Rafraichissable {
44
	
44
	
45
	
45
	
46
	
46
	
47
	// instance du médiateur
47
	// instance du médiateur
48
	private ImageMediateur iMediateur = null; 
48
	private ImageMediateur iMediateur = null; 
49
	
49
	
50
	
50
	
51
	private ColumnConfig numImage ;
51
	private ColumnConfig numImage ;
52
	private ColumnConfig urlImage ;
52
	private ColumnConfig urlImage ;
53
	private ColumnConfig lieImage ;
53
	private ColumnConfig lieImage ;
54
	private ColumnConfig datImage ;
54
	private ColumnConfig datImage ;
55
	private ColumnConfig appImage ;
55
	private ColumnConfig appImage ;
56
	private ColumnModel modeleColonnes ;
56
	private ColumnModel modeleColonnes ;
57
	
57
	
58
	private boolean estInstancie = false ;
58
	private boolean estInstancie = false ;
59
	
59
	
60
	
60
	
61
	
61
	
62
	// données locales
62
	// données locales
63
	// store qui gère les données de la liste d'images
63
	// store qui gère les données de la liste d'images
64
	private Store st = null ;
64
	private Store st = null ;
65
	private ColumnConfig cl = null ;
65
	private ColumnConfig cl = null ;
66
	
66
	
67
	
67
	
68
	public ListeImageVue(ImageMediateur im) {
68
	public ListeImageVue(ImageMediateur im) {
69
		
69
		
70
		super() ;
70
		super() ;
71
		
71
		
72
		this.setId("listeImageGrid") ;
72
		this.setId("listeImageGrid") ;
73
		
73
		
74
		this.iMediateur = im ;
74
		this.iMediateur = im ;
75
		
75
		
76
		numImage = new ColumnConfig("numéro","num_image",100,true);	
76
		numImage = new ColumnConfig("numéro","num_image",100,true);	
77
		datImage = new ColumnConfig("date","dat_image",120,true);	
77
		datImage = new ColumnConfig("date","dat_image",120,true);	
78
		lieImage = new ColumnConfig("lieu","lie_image",120,true);	
78
		lieImage = new ColumnConfig("lieu","lie_image",120,true);	
79
		appImage = new ColumnConfig("appareil","app_image",200,true);	
79
		appImage = new ColumnConfig("appareil","app_image",200,true);	
80
		urlImage = new ColumnConfig("Image","url_image",200,true,new Renderer() {
80
		urlImage = new ColumnConfig("Image","url_image",200,true,new Renderer() {
81
 
81
 
82
			public String render(Object value, CellMetadata cellMetadata,
82
			public String render(Object value, CellMetadata cellMetadata,
83
					Record record, int rowIndex, int colNum, Store store) {
83
					Record record, int rowIndex, int colNum, Store store) {
84
 
84
 
85
				String ImgUrl = record.getAsString("url_image");
85
				String ImgUrl = record.getAsString("url_image");
86
				String ImgNum = record.getAsString("num_image");
86
				String ImgNum = record.getAsString("num_image");
87
				return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='"+ImgNum+"'> </div>";
87
				return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='"+ImgNum+"'> </div>";
88
			}
88
			}
89
 
89
 
90
		});
90
		});
91
		
91
		
92
		ColumnConfig[] cm = {numImage,datImage,lieImage,appImage,urlImage};
92
		ColumnConfig[] cm = {numImage,datImage,lieImage,appImage,urlImage};
93
		modeleColonnes = new ColumnModel(cm);
93
		modeleColonnes = new ColumnModel(cm);
94
		this.setColumnModel(modeleColonnes);
94
		this.setColumnModel(modeleColonnes);
95
		this.setAutoScroll(true);
95
		this.setAutoScroll(true);
96
		this.setAutoWidth(true);
96
		this.setAutoWidth(true);
97
		
97
		
98
		
98
		
99
		FieldDef defNumImage = new StringFieldDef("num_image");
99
		FieldDef defNumImage = new StringFieldDef("num_image");
100
		FieldDef defDatImage = new StringFieldDef("dat_image");
100
		FieldDef defDatImage = new StringFieldDef("dat_image");
101
		FieldDef defLieImage = new StringFieldDef("lie_image");
101
		FieldDef defLieImage = new StringFieldDef("lie_image");
102
		FieldDef defAppImage = new StringFieldDef("app_image");
102
		FieldDef defAppImage = new StringFieldDef("app_image");
103
		FieldDef defUrlImage = new StringFieldDef("url_image");
103
		FieldDef defUrlImage = new StringFieldDef("url_image");
104
		FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
104
		FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
105
		RecordDef rd = new RecordDef(defTab) ;
105
		RecordDef rd = new RecordDef(defTab) ;
106
		st = new Store(rd) ;
106
		st = new Store(rd) ;
107
		this.setStore(st);
107
		this.setStore(st);
108
		this.getView().setAutoFill(true) ;
108
		this.getView().setAutoFill(true) ;
109
		
109
		
110
		ajouterListeners() ;
110
		ajouterListeners() ;
111
		
111
		
112
	}
112
	}
113
	
113
	
114
	
114
	
115
	// role : configurer les colonnes affichées dans la grille
115
	// role : configurer les colonnes affichées dans la grille
116
	private void initialiser() {
116
	private void initialiser() {
117
		
117
		
118
		getIMediateur().obtenirPhotoGalerie(this);
118
		getIMediateur().obtenirPhotoGalerie(this);
119
		estInstancie = true ;
119
		estInstancie = true ;
120
		
120
		
121
		
121
		
122
	}
122
	}
123
	
123
	
124
	public void ajouterListeners()
124
	public void ajouterListeners()
125
	{
125
	{
126
		this.addListener(new ContainerListenerAdapter() {
126
		this.addListener(new ContainerListenerAdapter() {
127
 
127
 
128
 
128
 
129
			public boolean doBeforeRender(Component component)
129
			public boolean doBeforeRender(Component component)
130
			{
130
			{
131
				initialiser();
131
				initialiser();
132
				return true ;
132
				return true ;
133
			}
133
			}
134
			
134
			
135
			public void onHide(Component component) {
135
			public void onHide(Component component) {
136
				// TODO Auto-generated method stub
136
				// TODO Auto-generated method stub
137
				
137
				
138
			}
138
			}
139
 
139
 
140
 
140
 
141
			public void onRender(Component component) {
141
			public void onRender(Component component) {
142
				// TODO Auto-generated method stub
142
				// TODO Auto-generated method stub
143
				
143
				
144
			}
144
			}
145
 
145
 
146
 
146
 
147
			public void onShow(Component component) {
147
			public void onShow(Component component) {
148
				
148
				
149
			}
149
			}
150
			
150
			
151
		});
151
		});
152
	}
152
	}
153
 
153
 
154
 
154
 
155
	public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
155
	public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
156
		
156
		
157
		if(nouvelleDonnees instanceof ListeImage && estInstancie)
157
		if(nouvelleDonnees instanceof ListeImage && estInstancie)
158
		{
158
		{
159
			ListeImage data = (ListeImage) nouvelleDonnees ;
159
			ListeImage data = (ListeImage) nouvelleDonnees ;
160
			Object[][] photoData = new Object[data.size()][5];
160
			Object[][] photoData = new Object[data.size()][5];
-
 
161
			int i = 0 ;
161
			for(int i = 0 ; i<data.size();i++)
162
			for (Iterator it = data.keySet().iterator(); it.hasNext();) 
162
			{
163
			{
163
				ImageCarnet im = (ImageCarnet) data.elementAt(i);
164
				ImageCarnet im = (ImageCarnet) data.get(it.next());
164
				photoData[i][0] = im.getOrdre() ;
165
				photoData[i][0] = im.getOrdre() ;
165
				photoData[i][1] = im.getDate() ;
166
				photoData[i][1] = im.getDate() ;
166
				photoData[i][2] = im.getIptcCity() ;
167
				photoData[i][2] = im.getIptcCity() ;
167
				photoData[i][3] = im.getMake()+" "+im.getModel() ;
168
				photoData[i][3] = im.getMake()+" "+im.getModel() ;
168
				photoData[i][4] = im.getUrl() ;
169
				photoData[i][4] = im.getUrl() ;
-
 
170
				
-
 
171
				i++ ;
169
			}
172
			}
170
	
173
	
171
			FieldDef defNumImage = new IntegerFieldDef("num_image");
174
			FieldDef defNumImage = new IntegerFieldDef("num_image");
172
			FieldDef defDatImage = new StringFieldDef("dat_image");
175
			FieldDef defDatImage = new StringFieldDef("dat_image");
173
			FieldDef defLieImage = new StringFieldDef("lie_image");
176
			FieldDef defLieImage = new StringFieldDef("lie_image");
174
			FieldDef defAppImage = new StringFieldDef("app_image");
177
			FieldDef defAppImage = new StringFieldDef("app_image");
175
			FieldDef defUrlImage = new StringFieldDef("url_image");
178
			FieldDef defUrlImage = new StringFieldDef("url_image");
176
			FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
179
			FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
177
			
180
			
178
			final MemoryProxy dataProxy = new MemoryProxy(photoData);
181
			final MemoryProxy dataProxy = new MemoryProxy(photoData);
179
			final ArrayReader reader = new ArrayReader(new RecordDef(defTab));
182
			final ArrayReader reader = new ArrayReader(new RecordDef(defTab));
180
	
183
	
181
			final Store photoStore = new Store(dataProxy, reader);
184
			final Store photoStore = new Store(dataProxy, reader);
182
	
185
	
183
			st = photoStore;
186
			st = photoStore;
184
			this.reconfigure(st, this.getColumnModel());
187
			this.reconfigure(st, this.getColumnModel());
185
			photoStore.load();
188
			photoStore.load();
186
		}
189
		}
187
		
190
		
188
		if(repandreRafraichissement)
191
		if(repandreRafraichissement)
189
		{
192
		{
190
			getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ;
193
			getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ;
191
		}
194
		}
192
	}
195
	}
193
 
196
 
194
 
197
 
195
	public ImageMediateur getIMediateur() {
198
	public ImageMediateur getIMediateur() {
196
		return iMediateur;
199
		return iMediateur;
197
	}
200
	}
198
 
201
 
199
 
202
 
200
	public ColumnConfig getNumImage() {
203
	public ColumnConfig getNumImage() {
201
		return numImage;
204
		return numImage;
202
	}
205
	}
203
 
206
 
204
 
207
 
205
	public ColumnConfig getUrlImage() {
208
	public ColumnConfig getUrlImage() {
206
		return urlImage;
209
		return urlImage;
207
	}
210
	}
208
 
211
 
209
 
212
 
210
	public ColumnModel getModeleColonnes() {
213
	public ColumnModel getModeleColonnes() {
211
		return modeleColonnes;
214
		return modeleColonnes;
212
	}
215
	}
213
 
216
 
214
 
217
 
215
	public Store getSt() {
218
	public Store getSt() {
216
		return st;
219
		return st;
217
	}
220
	}
218
 
221
 
219
 
222
 
220
	public ColumnConfig getCl() {
223
	public ColumnConfig getCl() {
221
		return cl;
224
		return cl;
222
	}
225
	}
223
	
226
	
224
	
227
	
225
 
228
 
226
}
229
}