Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 32 | Rev 40 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 32 Rev 36
Line 26... Line 26...
26
import com.gwtext.client.widgets.form.TextField;
26
import com.gwtext.client.widgets.form.TextField;
27
import com.gwtext.client.widgets.grid.GridPanel;
27
import com.gwtext.client.widgets.grid.GridPanel;
28
import com.gwtext.client.widgets.grid.GridView;
28
import com.gwtext.client.widgets.grid.GridView;
29
import com.gwtext.client.widgets.grid.PropertyGridPanel;
29
import com.gwtext.client.widgets.grid.PropertyGridPanel;
30
import com.gwtext.client.widgets.grid.event.GridCellListener;
30
import com.gwtext.client.widgets.grid.event.GridCellListener;
-
 
31
import com.gwtext.client.widgets.grid.event.GridCellListenerAdapter;
31
import com.gwtext.client.widgets.layout.RowLayout;
32
import com.gwtext.client.widgets.layout.RowLayout;
32
import com.gwtext.client.widgets.layout.RowLayoutData;
33
import com.gwtext.client.widgets.layout.RowLayoutData;
33
import com.gwtext.client.widgets.layout.VerticalLayout;
34
import com.gwtext.client.widgets.layout.VerticalLayout;
34
import com.gwtext.client.widgets.menu.DateItem;
35
import com.gwtext.client.widgets.menu.DateItem;
35
import com.gwtext.client.widgets.menu.Menu;
36
import com.gwtext.client.widgets.menu.Menu;
36
import com.gwtext.client.widgets.tree.TreeNode;
37
import com.gwtext.client.widgets.tree.TreeNode;
37
import com.gwtext.client.widgets.tree.TreePanel;
38
import com.gwtext.client.widgets.tree.TreePanel;
Line -... Line 39...
-
 
39
 
-
 
40
/**
-
 
41
 * Panneau contenant les infos, les métadonnées et l'arbre des mots clés, il implémente l'interface rafraichissable
-
 
42
 * @author aurelien
-
 
43
 *
38
 
44
 */
Line -... Line 45...
-
 
45
public class PanneauMetadonneesVue extends TabPanel implements Rafraichissable {
-
 
46
 
-
 
47
	/**
39
public class PanneauMetadonneesVue extends TabPanel implements Rafraichissable {
48
	 * Le médiateur associé à la vue
-
 
49
	 */
-
 
50
	private ImageMediateur imediateur = null ;
40
 
51
	/**
41
	private ImageMediateur imediateur = null ;
52
	 * Le panneau des Exifs
-
 
53
	 */
-
 
54
	private PropertyGridPanel ExifGrid = null ;
-
 
55
	/**
42
	
56
	 * Le panneau des Iptc
Line -... Line 57...
-
 
57
	 */
-
 
58
	private PropertyGridPanel IptcGrid = null ;
-
 
59
	
43
	private PropertyGridPanel ExifGrid = null ;
60
	/**
-
 
61
	 * La grille pour le panneau des Exifs
-
 
62
	 */
-
 
63
	private GridView gViewExif = null ;
44
	private PropertyGridPanel IptcGrid = null ;
64
	/**
Line -... Line 65...
-
 
65
	 * La grille pour le panneau de Iptc
-
 
66
	 */
-
 
67
	private GridView gViewIptc = null ;
45
	
68
	
-
 
69
	/**
-
 
70
	 * L'onglet des Exifs
-
 
71
	 */
46
	private GridView gViewExif = null ;
72
	private Panel panneauExifGrid = null; 
-
 
73
	/**
-
 
74
	 * L'onglet des Iptc
-
 
75
	 */
47
	private GridView gViewIptc = null ;
76
	private Panel panneauIptcGrid = null ;
-
 
77
	/**
-
 
78
	 * L'onglet des infos
-
 
79
	 */
48
	
80
	private Panel panneauInfoGrid = null ;
Line -... Line 81...
-
 
81
	/**
-
 
82
	 * L'onglet des mots clés
-
 
83
	 */
49
	private Panel panneauExifGrid = null; 
84
	private ArbreMotsClesVue panneauMotsCles = null ;
-
 
85
	
-
 
86
	/**
-
 
87
	 * Le champ commentaire
50
	private Panel panneauIptcGrid = null ;
88
	 */
-
 
89
	private TextField commentaireGeneral = null ;
-
 
90
	/**
-
 
91
	 * Le champ date
51
	private Panel panneauInfoGrid = null ;
92
	 */
-
 
93
	private DateField dateImage = null ;
-
 
94
	/**
52
	private ArbreMotsClesVue panneauMotsCles = null ;
95
	 * Le bouton de validation
53
	
96
	 */
Line -... Line 97...
-
 
97
	Button validerInfo = null ;
-
 
98
	/**
-
 
99
	 * Booleen d'instanciation
-
 
100
	 */
-
 
101
	boolean estInstancie = false ;
-
 
102
	
-
 
103
	/**
-
 
104
	 * Constructeur sans argument (privé car ne doit pas être utilisé)
-
 
105
	 */
-
 
106
	private PanneauMetadonneesVue()
-
 
107
	{
-
 
108
		super() ;
54
	private TextField commentaireGeneral = null ;
109
	}
55
	private DateField dateImage = null ;
110
	
56
	Button validerInfo = null ;
111
	/**
Line -... Line 112...
-
 
112
	 * Constructeur avec argument
57
	
113
	 * @param im
Line -... Line 114...
-
 
114
	 */
58
	boolean estInstancie = false ;
115
	public PanneauMetadonneesVue(ImageMediateur im)
59
	
116
	{
60
	public PanneauMetadonneesVue(ImageMediateur im)
117
		super() ;
61
	{
118
		
Line 62... Line 119...
62
		super() ;
119
		// on associe le médiateur
63
		
120
		imediateur = im ;
-
 
121
		
-
 
122
		// on crée et dispose les panneaux et les champs
64
		imediateur = im ;
123
		panneauExifGrid = new Panel("Exif") ;
65
		
124
		panneauIptcGrid = new Panel("Iptc") ;
66
		panneauExifGrid = new Panel("Exif") ;
125
		panneauInfoGrid = new Panel("info") ;
67
		panneauIptcGrid = new Panel("Iptc") ;
126
		panneauMotsCles = new ArbreMotsClesVue(im) ;
68
		panneauInfoGrid = new Panel("info") ;
127
		
Line 81... Line 140...
81
		dateImage = new DateField() ;
140
		dateImage = new DateField() ;
82
		dateImage.setAutoWidth(true) ;
141
		dateImage.setAutoWidth(true) ;
83
		dateImage.setFormat("d/m/y") ;
142
		dateImage.setFormat("d/m/y") ;
Line 84... Line 143...
84
		
143
		
85
		validerInfo = new Button("OK") ;
-
 
86
		validerInfo.addListener(new ButtonListenerAdapter() {
-
 
87
 
-
 
88
			public void onClick(Button button, EventObject e) {
-
 
89
				
-
 
90
				getIMediateur().mettreAJourInfo(commentaireGeneral.getText(), dateImage.getRawValue()) ;
-
 
91
				
-
 
92
			}	
-
 
Line 93... Line 144...
93
		});
144
		validerInfo = new Button("OK") ;
94
		
145
		
95
		panneauInfoGrid.add(labelComm) ;
146
		panneauInfoGrid.add(labelComm) ;
96
		panneauInfoGrid.add(commentaireGeneral) ;
147
		panneauInfoGrid.add(commentaireGeneral) ;
Line 113... Line 164...
113
		ExifGrid.setView(gViewExif);
164
		ExifGrid.setView(gViewExif);
114
		ExifGrid.setNameText("Métadonnées Exif");
165
		ExifGrid.setNameText("Métadonnées Exif");
115
		ExifGrid.setAutoWidth(true);
166
		ExifGrid.setAutoWidth(true);
116
		ExifGrid.setAutoHeight(true);
167
		ExifGrid.setAutoHeight(true);
117
		ExifGrid.setSorted(false);
168
		ExifGrid.setSorted(false);
-
 
169
		
-
 
170
		gViewIptc = new GridView();
-
 
171
		gViewIptc.setForceFit(true);
-
 
172
		
-
 
173
		IptcGrid = new PropertyGridPanel() ;
-
 
174
		IptcGrid.setId("meta_iptc");
-
 
175
		IptcGrid.setView(gViewIptc);
-
 
176
		
-
 
177
		IptcGrid.setNameText("Métadonnées IPTC");
-
 
178
		IptcGrid.setAutoWidth(true);
-
 
179
		IptcGrid.setAutoHeight(true);
-
 
180
		IptcGrid.setSorted(false);
-
 
181
		
-
 
182
		
-
 
183
		panneauExifGrid.add(ExifGrid);
-
 
184
		panneauIptcGrid.add(IptcGrid);
-
 
185
		
-
 
186
		// on ajoute les listeners
-
 
187
		ajouterListeners() ;
-
 
188
		
-
 
189
		
-
 
190
		// on effectue le rendu
-
 
191
		this.doLayout(true) ;
-
 
192
		
-
 
193
	}
-
 
194
	
-
 
195
	private void ajouterListeners()
-
 
196
	{
-
 
197
		// on ajoute un écouteur
-
 
198
		validerInfo.addListener(new ButtonListenerAdapter() {
-
 
199
 
-
 
200
			// gestion du clic
-
 
201
			public void onClick(Button button, EventObject e) {
-
 
202
				
-
 
203
				// lors du clic sur le bouton valider on met à jour les commentaires et la date
-
 
204
				getIMediateur().mettreAJourInfo(commentaireGeneral.getText(), dateImage.getRawValue()) ;
-
 
205
				
-
 
206
			}	
-
 
207
		});
-
 
208
		
-
 
209
		// gestion des clics dans la grille
118
		ExifGrid.addGridCellListener(new GridCellListener() {
210
		ExifGrid.addGridCellListener(new GridCellListenerAdapter() {
Line -... Line 211...
-
 
211
 
119
 
212
			// lors d'un clic d'une cellule
120
			public void onCellClick(GridPanel grid, int rowIndex, int colIndex,
213
			public void onCellClick(GridPanel grid, int rowIndex, int colIndex,
Line -... Line 214...
-
 
214
					EventObject e) {
121
					EventObject e) {
215
				
122
				
216
				// on empeche l'édition
Line 123... Line 217...
123
				e.stopEvent() ;
217
				e.stopEvent() ;
Line 124... Line -...
124
				ExifGrid.stopEditing() ;
-
 
125
				
-
 
126
			}
218
				ExifGrid.stopEditing() ;
127
 
-
 
128
			public void onCellContextMenu(GridPanel grid, int rowIndex,
-
 
129
					int cellIndex, EventObject e) {
-
 
130
				// TODO Auto-generated method stub
219
				
131
				
220
			}
Line -... Line 221...
-
 
221
 
132
			}
222
			// lors du double clic sur une cellule
133
 
223
			public void onCellDblClick(GridPanel grid, int rowIndex,
Line 134... Line 224...
134
			public void onCellDblClick(GridPanel grid, int rowIndex,
224
					int colIndex, EventObject e) {
Line 135... Line 225...
135
					int colIndex, EventObject e) {
225
				
Line 136... Line -...
136
				
-
 
137
				e.stopEvent() ;
-
 
138
				ExifGrid.stopEditing() ;
-
 
139
				
-
 
140
			}
-
 
141
			
-
 
142
		}) ;
-
 
143
		
-
 
144
		gViewIptc = new GridView();
-
 
145
		gViewIptc.setForceFit(true);
-
 
146
		
-
 
147
		IptcGrid = new PropertyGridPanel() ;
226
				// on empêche l'édition
Line -... Line 227...
-
 
227
				e.stopEvent() ;
148
		IptcGrid.setId("meta_iptc");
228
				ExifGrid.stopEditing() ;
149
		IptcGrid.setView(gViewIptc);
229
				
150
		
-
 
-
 
230
			}
151
		IptcGrid.setNameText("Métadonnées IPTC");
231
			
152
		IptcGrid.setAutoWidth(true);
232
		}) ;
Line 153... Line 233...
153
		IptcGrid.setAutoHeight(true);
233
		
Line 154... Line -...
154
		IptcGrid.setSorted(false);
-
 
155
		IptcGrid.addGridCellListener(new GridCellListener() {
-
 
156
 
234
		IptcGrid.addGridCellListener(new GridCellListenerAdapter() {
157
			public void onCellClick(GridPanel grid, int rowIndex, int colIndex,
-
 
158
					EventObject e) {
-
 
159
				
-
 
160
				e.stopEvent() ;
235
 
161
				ExifGrid.stopEditing() ;
236
			// lors d'un clic d'une cellule
162
				
-
 
-
 
237
			public void onCellClick(GridPanel grid, int rowIndex, int colIndex,
163
			}
238
					EventObject e) {
164
 
239
				// on empeche l'édition
Line 165... Line 240...
165
			public void onCellContextMenu(GridPanel grid, int rowIndex,
240
				e.stopEvent() ;
Line 166... Line 241...
166
					int cellIndex, EventObject e) {
241
				ExifGrid.stopEditing() ;
167
				// TODO Auto-generated method stub
-
 
168
				
-
 
169
			}
-
 
170
 
-
 
171
			public void onCellDblClick(GridPanel grid, int rowIndex,
-
 
172
					int colIndex, EventObject e) {
-
 
173
				
242
				
Line -... Line 243...
-
 
243
			}
-
 
244
 
-
 
245
			// lors d'un double clic d'une cellule
174
				e.stopEvent() ;
246
			public void onCellDblClick(GridPanel grid, int rowIndex,
175
				ExifGrid.stopEditing() ;
247
					int colIndex, EventObject e) {
176
				
248
				// on empeche l'édition
177
			}
249
				e.stopEvent() ;
Line -... Line 250...
-
 
250
				ExifGrid.stopEditing() ;
-
 
251
				
-
 
252
			}
178
			
253
			
179
		}) ;
254
		}) ;
180
		
255
	}
181
		panneauExifGrid.add(ExifGrid);
256
	
Line -... Line 257...
-
 
257
	/**
-
 
258
	 * Desactive visuellement ce panneau
-
 
259
	 */
-
 
260
	public void desactiverPanneau()
182
		panneauIptcGrid.add(IptcGrid);
261
	{
183
		
262
		this.setDisabled(true) ;
184
		this.doLayout(true) ;
263
	}
185
		
264
	
Line -... Line 265...
-
 
265
	/**
-
 
266
	 * Active visuellement ce panneau
-
 
267
	 */
-
 
268
	public void activerPanneau()
186
	}
269
	{
187
	
270
		this.setDisabled(false) ;
Line -... Line 271...
-
 
271
	}
188
	public void desactiverPanneau()
272
	
189
	{
273
	/**
-
 
274
	 * Accesseur pour le médiateur
190
		this.setDisabled(true) ;
275
	 * @return le médiateur associé à la vue
191
	}
276
	 */
192
	
277
	public ImageMediateur getIMediateur()
193
	public void activerPanneau()
278
	{
Line 239... Line 324...
239
			
324
			
Line 240... Line 325...
240
			commentaireGeneral.setValue(gen[0][1]) ;
325
			commentaireGeneral.setValue(gen[0][1]) ;
Line -... Line 326...
-
 
326
			
241
			
327
			dateImage.setValue(gen[1][1]) ;
242
			dateImage.setValue(gen[1][1]) ;
328
			
Line 243... Line 329...
243
			
329
			// et on met à jour les données pour l'affichage
244
			ExifGrid.setSource(exifSource);
330
			ExifGrid.setSource(exifSource);
Line 245... Line 331...
245
			IptcGrid.setSource(iptcSource);
331
			IptcGrid.setSource(iptcSource);
-
 
332
 
246
 
333
		}	
247
		}	
334
	}
248
	}
335
 
249
 
336
	/**
250
	/**
337
	 * Accesseur pour le panneau des mots clés