Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 16 | Rev 22 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
16 aperonnet 1
package org.tela_botanica.client.vues;
2
 
3
import java.util.Date;
4
 
5
import org.tela_botanica.client.image.ImageMediateur;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
 
18 aperonnet 8
import com.google.gwt.core.client.JavaScriptObject;
9
import com.google.gwt.user.client.ui.ClickListener;
10
import com.google.gwt.user.client.ui.Label;
11
import com.google.gwt.user.client.ui.TextBox;
12
import com.google.gwt.user.client.ui.Widget;
13
import com.gwtext.client.core.EventObject;
16 aperonnet 14
import com.gwtext.client.core.NameValuePair;
15
import com.gwtext.client.data.Store;
16
import com.gwtext.client.data.StringFieldDef;
18 aperonnet 17
import com.gwtext.client.widgets.Button;
18
import com.gwtext.client.widgets.Component;
16 aperonnet 19
import com.gwtext.client.widgets.Panel;
20
import com.gwtext.client.widgets.TabPanel;
18 aperonnet 21
import com.gwtext.client.widgets.event.ButtonListener;
22
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
23
import com.gwtext.client.widgets.form.DateField;
24
import com.gwtext.client.widgets.form.TextArea;
25
import com.gwtext.client.widgets.form.TextField;
16 aperonnet 26
import com.gwtext.client.widgets.grid.GridView;
27
import com.gwtext.client.widgets.grid.PropertyGridPanel;
18 aperonnet 28
import com.gwtext.client.widgets.layout.RowLayout;
29
import com.gwtext.client.widgets.layout.RowLayoutData;
30
import com.gwtext.client.widgets.layout.VerticalLayout;
31
import com.gwtext.client.widgets.menu.DateItem;
32
import com.gwtext.client.widgets.menu.Menu;
16 aperonnet 33
 
34
public class PanneauMetadonneesVue extends TabPanel implements Rafraichissable {
35
 
36
	private ImageMediateur imediateur = null ;
37
 
38
	private PropertyGridPanel ExifGrid = null ;
39
	private PropertyGridPanel IptcGrid = null ;
40
 
41
	private GridView gViewExif = null ;
42
	private GridView gViewIptc = null ;
43
 
44
	private Panel panneauExifGrid = null;
45
	private Panel panneauIptcGrid = null ;
46
	private Panel panneauInfoGrid = null ;
47
 
18 aperonnet 48
	private TextField commentaireGeneral = null ;
49
	private DateField dateImage = null ;
50
	Button validerInfo = null ;
51
 
16 aperonnet 52
	boolean estInstancie = false ;
53
 
54
	public PanneauMetadonneesVue(ImageMediateur im)
55
	{
56
		super() ;
57
 
58
		imediateur = im ;
59
 
60
		panneauExifGrid = new Panel("Exif") ;
61
		panneauIptcGrid = new Panel("Iptc") ;
62
		panneauInfoGrid = new Panel("info") ;
63
 
18 aperonnet 64
		panneauInfoGrid.setLayout(new VerticalLayout());
65
		panneauInfoGrid.setHeight(500);
66
		Label labelComm = new Label("Commentaires :") ;
67
		labelComm.setHeight("20px") ;
68
		commentaireGeneral = new TextArea() ;
69
		commentaireGeneral.setAutoWidth(true) ;
70
		Label labelDate = new Label("Date :") ;
16 aperonnet 71
 
18 aperonnet 72
		labelDate.setHeight("20px") ;
73
 
74
		dateImage = new DateField() ;
75
		dateImage.setAutoWidth(true) ;
76
		dateImage.setFormat("d/m/y") ;
77
 
78
		validerInfo = new Button("OK") ;
79
		validerInfo.addListener(new ButtonListenerAdapter() {
80
 
81
			public void onClick(Button button, EventObject e) {
82
 
83
				getIMediateur().mettreAJourInfo(commentaireGeneral.getText(), dateImage.getRawValue()) ;
84
 
85
			}
86
		});
87
 
88
		panneauInfoGrid.add(labelComm) ;
89
		panneauInfoGrid.add(commentaireGeneral) ;
90
		panneauInfoGrid.add(labelDate) ;
91
		panneauInfoGrid.add(dateImage) ;
92
		panneauInfoGrid.add(validerInfo) ;
93
 
94
 
95
 
16 aperonnet 96
		this.add(panneauInfoGrid) ;
97
		this.add(panneauExifGrid) ;
98
		this.add(panneauIptcGrid) ;
99
 
100
		gViewExif = new GridView();
101
		gViewExif.setForceFit(true);
102
 
103
		ExifGrid = new PropertyGridPanel() ;
104
		ExifGrid.setId("meta_exif");
105
		ExifGrid.setView(gViewExif);
106
		ExifGrid.setNameText("Métadonnées Exif");
107
		ExifGrid.setAutoWidth(true);
108
		ExifGrid.setAutoHeight(true);
109
		ExifGrid.setSorted(false);
110
 
111
		gViewIptc = new GridView();
112
		gViewIptc.setForceFit(true);
113
 
114
		IptcGrid = new PropertyGridPanel() ;
115
		IptcGrid.setId("meta_iptc");
116
		IptcGrid.setView(gViewIptc);
117
 
118
		IptcGrid.setNameText("Métadonnées IPTC");
119
		IptcGrid.setAutoWidth(true);
120
		IptcGrid.setAutoHeight(true);
121
		IptcGrid.setSorted(false);
122
 
123
		panneauExifGrid.add(ExifGrid);
124
		panneauIptcGrid.add(IptcGrid);
125
 
126
	}
127
 
128
	public ImageMediateur getIMediateur()
129
	{
130
		return imediateur ;
131
	}
132
 
133
 
134
	public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
135
 
136
		if(nouvelleDonnees instanceof Object[])
137
		{
138
			Object meta[] = (Object[])nouvelleDonnees ;
139
			String[][] exif = (String[][])meta[0] ;
140
			String[][] iptc = (String[][])meta[1] ;
18 aperonnet 141
			String[][] gen = (String[][])meta[2] ;
16 aperonnet 142
 
143
			NameValuePair[] exifSource = new NameValuePair[exif.length] ;
144
			NameValuePair[] iptcSource = new NameValuePair[iptc.length] ;
145
 
146
 
147
			int maxLength ;
148
			if(exif.length <= iptc.length)
149
			{
150
				maxLength = iptc.length ;
151
			}
152
			else
153
			{
154
				maxLength = exif.length ;
155
			}
156
 
157
			for(int i = 0; i < maxLength ; i++)
158
			{
159
				if(i < exif.length)
160
				{
161
					exifSource[i] = new NameValuePair(exif[i][0],exif[i][1]) ;
162
				}
163
 
164
				if(i < iptc.length)
165
				{
166
					iptcSource[i] = new NameValuePair(iptc[i][0],iptc[i][1]) ;
167
				}
168
			}
169
 
18 aperonnet 170
			commentaireGeneral.setValue(gen[0][1]) ;
16 aperonnet 171
 
18 aperonnet 172
			dateImage.setValue(gen[1][1]) ;
173
 
16 aperonnet 174
			ExifGrid.setSource(exifSource);
175
			IptcGrid.setSource(iptcSource);
18 aperonnet 176
 
16 aperonnet 177
 
178
			gViewExif.refresh(true) ;
179
			gViewIptc.refresh(true) ;
180
 
181
		}
182
	}
183
}