Subversion Repositories eFlore/Archives.cel-v2

Rev

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

Rev 12 Rev 16
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
	
-
 
58
	private boolean estInstancie = false ;
57
	
59
	
58
	
60
	
59
	
61
	
60
	// données locales
62
	// données locales
61
	// 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
62
	private Store st = null ;
64
	private Store st = null ;
63
	private ColumnConfig cl = null ;
65
	private ColumnConfig cl = null ;
64
	
66
	
65
	
67
	
66
	public ListeImageVue(ImageMediateur im) {
68
	public ListeImageVue(ImageMediateur im) {
67
		
69
		
68
		super() ;
70
		super() ;
-
 
71
		
-
 
72
		this.setId("listeImageGrid") ;
69
		
73
		
70
		this.iMediateur = im ;
74
		this.iMediateur = im ;
71
		
75
		
72
		numImage = new ColumnConfig("numéro","num_image",100,true);	
76
		numImage = new ColumnConfig("numéro","num_image",100,true);	
73
		datImage = new ColumnConfig("date","dat_image",120,true);	
77
		datImage = new ColumnConfig("date","dat_image",120,true);	
74
		lieImage = new ColumnConfig("lieu","lie_image",120,true);	
78
		lieImage = new ColumnConfig("lieu","lie_image",120,true);	
75
		appImage = new ColumnConfig("appareil","app_image",200,true);	
79
		appImage = new ColumnConfig("appareil","app_image",200,true);	
76
		urlImage = new ColumnConfig("Image","url_image",200,true,new Renderer() {
80
		urlImage = new ColumnConfig("Image","url_image",200,true,new Renderer() {
77
 
81
 
78
			public String render(Object value, CellMetadata cellMetadata,
82
			public String render(Object value, CellMetadata cellMetadata,
79
					Record record, int rowIndex, int colNum, Store store) {
83
					Record record, int rowIndex, int colNum, Store store) {
80
 
84
 
81
				String ImgUrl = record.getAsString("url_image");
85
				String ImgUrl = record.getAsString("url_image");
82
				String ImgNum = record.getAsString("num_image");
86
				String ImgNum = record.getAsString("num_image");
83
				return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='"+ImgNum+"'> </div>";
87
				return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='"+ImgNum+"'> </div>";
84
			}
88
			}
85
 
89
 
86
		});
90
		});
87
		
91
		
88
		ColumnConfig[] cm = {numImage,datImage,lieImage,appImage,urlImage};
92
		ColumnConfig[] cm = {numImage,datImage,lieImage,appImage,urlImage};
89
		modeleColonnes = new ColumnModel(cm);
93
		modeleColonnes = new ColumnModel(cm);
90
		this.setColumnModel(modeleColonnes);
94
		this.setColumnModel(modeleColonnes);
91
		this.setAutoScroll(true);
95
		this.setAutoScroll(true);
92
		this.setAutoWidth(true);
96
		this.setAutoWidth(true);
93
		
97
		
94
		
98
		
95
		FieldDef defNumImage = new StringFieldDef("num_image");
99
		FieldDef defNumImage = new StringFieldDef("num_image");
96
		FieldDef defDatImage = new StringFieldDef("dat_image");
100
		FieldDef defDatImage = new StringFieldDef("dat_image");
97
		FieldDef defLieImage = new StringFieldDef("lie_image");
101
		FieldDef defLieImage = new StringFieldDef("lie_image");
98
		FieldDef defAppImage = new StringFieldDef("app_image");
102
		FieldDef defAppImage = new StringFieldDef("app_image");
99
		FieldDef defUrlImage = new StringFieldDef("url_image");
103
		FieldDef defUrlImage = new StringFieldDef("url_image");
100
		FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
104
		FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
101
		RecordDef rd = new RecordDef(defTab) ;
105
		RecordDef rd = new RecordDef(defTab) ;
102
		st = new Store(rd) ;
106
		st = new Store(rd) ;
103
		this.setStore(st);
107
		this.setStore(st);
104
		this.getView().setAutoFill(true) ;
108
		this.getView().setAutoFill(true) ;
105
		
109
		
106
		ajouterListeners() ;
110
		ajouterListeners() ;
107
		
111
		
108
	}
112
	}
109
	
113
	
110
	
114
	
111
	// role : configurer les colonnes affichées dans la grille
115
	// role : configurer les colonnes affichées dans la grille
112
	private void initialiser() {
116
	private void initialiser() {
113
		
117
		
114
		getIMediateur().obtenirPhotoGalerie(this);
118
		getIMediateur().obtenirPhotoGalerie(this);
-
 
119
		estInstancie = true ;
115
		
120
		
116
		
121
		
117
	}
122
	}
118
	
123
	
119
	public void ajouterListeners()
124
	public void ajouterListeners()
120
	{
125
	{
121
		this.addListener(new ContainerListenerAdapter() {
126
		this.addListener(new ContainerListenerAdapter() {
122
 
127
 
123
 
128
 
124
			public boolean doBeforeRender(Component component)
129
			public boolean doBeforeRender(Component component)
125
			{
130
			{
126
				initialiser();
131
				initialiser();
127
				return true ;
132
				return true ;
128
			}
133
			}
129
			
134
			
130
			public void onHide(Component component) {
135
			public void onHide(Component component) {
131
				// TODO Auto-generated method stub
136
				// TODO Auto-generated method stub
132
				
137
				
133
			}
138
			}
134
 
139
 
135
 
140
 
136
			public void onRender(Component component) {
141
			public void onRender(Component component) {
137
				// TODO Auto-generated method stub
142
				// TODO Auto-generated method stub
138
				
143
				
139
			}
144
			}
140
 
145
 
141
 
146
 
142
			public void onShow(Component component) {
147
			public void onShow(Component component) {
143
				
148
				
144
			}
149
			}
145
			
150
			
146
		});
151
		});
147
	}
152
	}
148
 
153
 
149
 
154
 
150
	public void rafraichir(Object nouvelleDonnees) {
155
	public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
151
		
156
		
152
		if(nouvelleDonnees instanceof ListeImage)
157
		if(nouvelleDonnees instanceof ListeImage && estInstancie)
153
		{
158
		{
154
			ListeImage data = (ListeImage) nouvelleDonnees ;
159
			ListeImage data = (ListeImage) nouvelleDonnees ;
155
			Object[][] photoData = new Object[data.size()][5];
160
			Object[][] photoData = new Object[data.size()][5];
156
			for(int i = 0 ; i<data.size();i++)
161
			for(int i = 0 ; i<data.size();i++)
157
			{
162
			{
158
				ImageCarnet im = (ImageCarnet) data.elementAt(i);
163
				ImageCarnet im = (ImageCarnet) data.elementAt(i);
159
				photoData[i][0] = im.getOrdre() ;
164
				photoData[i][0] = im.getOrdre() ;
160
				photoData[i][1] = im.getDate() ;
165
				photoData[i][1] = im.getDate() ;
161
				photoData[i][2] = im.getIptcCity() ;
166
				photoData[i][2] = im.getIptcCity() ;
162
				photoData[i][3] = im.getMake()+" "+im.getModel() ;
167
				photoData[i][3] = im.getMake()+" "+im.getModel() ;
163
				photoData[i][4] = im.getUrl() ;
168
				photoData[i][4] = im.getUrl() ;
164
			}
169
			}
165
	
170
	
166
			FieldDef defNumImage = new IntegerFieldDef("num_image");
171
			FieldDef defNumImage = new IntegerFieldDef("num_image");
167
			FieldDef defDatImage = new StringFieldDef("dat_image");
172
			FieldDef defDatImage = new StringFieldDef("dat_image");
168
			FieldDef defLieImage = new StringFieldDef("lie_image");
173
			FieldDef defLieImage = new StringFieldDef("lie_image");
169
			FieldDef defAppImage = new StringFieldDef("app_image");
174
			FieldDef defAppImage = new StringFieldDef("app_image");
170
			FieldDef defUrlImage = new StringFieldDef("url_image");
175
			FieldDef defUrlImage = new StringFieldDef("url_image");
171
			FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
176
			FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
172
			
177
			
173
			final MemoryProxy dataProxy = new MemoryProxy(photoData);
178
			final MemoryProxy dataProxy = new MemoryProxy(photoData);
174
			final ArrayReader reader = new ArrayReader(new RecordDef(defTab));
179
			final ArrayReader reader = new ArrayReader(new RecordDef(defTab));
175
	
180
	
176
			final Store photoStore = new Store(dataProxy, reader);
181
			final Store photoStore = new Store(dataProxy, reader);
177
	
182
	
178
			st = photoStore;
183
			st = photoStore;
179
			this.reconfigure(st, this.getColumnModel());
184
			this.reconfigure(st, this.getColumnModel());
180
			photoStore.load();
185
			photoStore.load();
181
		}
186
		}
-
 
187
		
-
 
188
		if(repandreRafraichissement)
-
 
189
		{
-
 
190
			getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ;
-
 
191
		}
182
	}
192
	}
183
 
193
 
184
 
194
 
185
	public ImageMediateur getIMediateur() {
195
	public ImageMediateur getIMediateur() {
186
		return iMediateur;
196
		return iMediateur;
187
	}
197
	}
188
 
198
 
189
 
199
 
190
	public ColumnConfig getNumImage() {
200
	public ColumnConfig getNumImage() {
191
		return numImage;
201
		return numImage;
192
	}
202
	}
193
 
203
 
194
 
204
 
195
	public ColumnConfig getUrlImage() {
205
	public ColumnConfig getUrlImage() {
196
		return urlImage;
206
		return urlImage;
197
	}
207
	}
198
 
208
 
199
 
209
 
200
	public ColumnModel getModeleColonnes() {
210
	public ColumnModel getModeleColonnes() {
201
		return modeleColonnes;
211
		return modeleColonnes;
202
	}
212
	}
203
 
213
 
204
 
214
 
205
	public Store getSt() {
215
	public Store getSt() {
206
		return st;
216
		return st;
207
	}
217
	}
208
 
218
 
209
 
219
 
210
	public ColumnConfig getCl() {
220
	public ColumnConfig getCl() {
211
		return cl;
221
		return cl;
212
	}
222
	}
213
	
223
	
214
	
224
	
215
 
225
 
216
}
226
}