Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 198 Rev 200
Line 18... Line 18...
18
import com.extjs.gxt.ui.client.util.Params;
18
import com.extjs.gxt.ui.client.util.Params;
19
import com.extjs.gxt.ui.client.widget.Html;
19
import com.extjs.gxt.ui.client.widget.Html;
20
import com.extjs.gxt.ui.client.widget.LayoutContainer;
20
import com.extjs.gxt.ui.client.widget.LayoutContainer;
21
import com.extjs.gxt.ui.client.widget.TabItem;
21
import com.extjs.gxt.ui.client.widget.TabItem;
22
import com.extjs.gxt.ui.client.widget.TabPanel;
22
import com.extjs.gxt.ui.client.widget.TabPanel;
-
 
23
import com.extjs.gxt.ui.client.widget.form.Field;
23
import com.extjs.gxt.ui.client.widget.form.FieldSet;
24
import com.extjs.gxt.ui.client.widget.form.FieldSet;
-
 
25
import com.extjs.gxt.ui.client.widget.form.TextArea;
24
import com.extjs.gxt.ui.client.widget.form.TextField;
26
import com.extjs.gxt.ui.client.widget.form.TextField;
25
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
27
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
26
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
28
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
27
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
29
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
28
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
30
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
Line 30... Line 32...
30
import com.google.gwt.dom.client.NodeList;
32
import com.google.gwt.dom.client.NodeList;
31
import com.google.gwt.user.client.Window;
33
import com.google.gwt.user.client.Window;
32
import com.google.gwt.user.client.ui.Hyperlink;
34
import com.google.gwt.user.client.ui.Hyperlink;
33
import com.google.gwt.user.client.ui.Image;
35
import com.google.gwt.user.client.ui.Image;
34
import com.google.gwt.user.client.ui.Label;
36
import com.google.gwt.user.client.ui.Label;
-
 
37
import com.google.gwt.user.client.ui.TextBox;
35
import com.google.gwt.user.client.ui.Widget;
38
import com.google.gwt.user.client.ui.Widget;
36
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
39
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
Line 37... Line 40...
37
 
40
 
Line 42... Line 45...
42
	// Onglet 1 : identite & contact
45
	// Onglet 1 : identite & contact
43
	private TabItem identite;
46
	private TabItem identite;
44
	private FieldSet fsIdentite;
47
	private FieldSet fsIdentite;
45
	private FieldSet fsContact;
48
	private FieldSet fsContact;
Line 46... Line 49...
46
	
49
	
47
	//A ajouter : 
50
	// Onglet 2 : Adresses
-
 
51
	private TabItem tabAdresse;
48
	// Onglet Adresse
52
	private FieldSet fsAdressePerso;
Line 49... Line 53...
49
		// contient : adresse perso / adresse pro
53
		// contient : adresse perso / adresse pro
Line 50... Line 54...
50
	
54
	
Line 51... Line 55...
51
	//Onglet Info Naturaliste
55
	//TODO : Onglet Info Naturaliste
Line 58... Line 62...
58
		//Constructeur de la classe
62
		//Constructeur de la classe
59
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
63
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
60
		setLayout(new FitLayout());
64
		setLayout(new FitLayout());
Line 61... Line 65...
61
		
65
		
62
		identite = new TabItem("Identité");
66
		identite = new TabItem("Identité");
63
		identite.setLayout(new TableLayout(2));		
67
		identite.setLayout(new TableLayout(2));
Line -... Line 68...
-
 
68
		identite.setScrollMode(Scroll.AUTO);
-
 
69
		
-
 
70
		/*
-
 
71
		 * NOTES : J'ai utilisé un TableLayout pour avoir une présentation ou l'image, si elle existe, soit placée à droite des informations d'identité.
-
 
72
		 * Cependant, une imagetrop grande bouleverse la mise en page.
-
 
73
		 * Il faut trouver une solution pour fixer ca :
-
 
74
		 * 	- par CSS ?
-
 
75
		 *  - utiliser un FlexTable ?
-
 
76
		 *  - utiliser plusieurs panneaux?
64
		identite.setScrollMode(Scroll.AUTO);
77
		 * */
65
		
78
		
Line 66... Line 79...
66
		fsIdentite = new FieldSet();
79
		fsIdentite = new FieldSet();
67
		fsIdentite.setLayout(new FormLayout());
80
		fsIdentite.setLayout(new FormLayout());
Line 68... Line 81...
68
		
81
		
Line 69... Line 82...
69
		
82
		
-
 
83
		fsContact = new FieldSet();
-
 
84
		fsContact.setLayout(new FormLayout());
-
 
85
		
-
 
86
		this.add(identite);
-
 
87
		
-
 
88
		//Onglet Adresse:
70
		fsContact = new FieldSet();
89
		tabAdresse = new TabItem("Adresses");
Line 71... Line 90...
71
		fsContact.setLayout(new FormLayout());
90
		fsAdressePerso = new FieldSet();
Line 72... Line 91...
72
		
91
		fsAdressePerso.setLayout(new FormLayout());
Line 97... Line 116...
97
			
116
			
98
			if ((logoUrl!=null)&&(!logoUrl.trim().equals("")))	{
117
			if ((logoUrl!=null)&&(!logoUrl.trim().equals("")))	{
99
				//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
118
				//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
100
				Image img = new Image();
119
				Image img = new Image();
101
				img.setUrl(logoUrl);
120
				img.setUrl(logoUrl);
Line 102... Line 121...
102
				img.setTitle("logo-personne");
121
				img.setStyleName("logo-personne");
103
				
122
				
104
				// FIXME : pour avoir un affichage correct, je force la redimension à 300px. Idéalement, ce serait un max-height qu'il faudrait. 
123
				// FIXME : pour avoir un affichage correct, je force la redimension à 300px. Idéalement, ce serait un max-height qu'il faudrait. 
Line 111... Line 130...
111
				//Sinon, on doit mettre une case vide pour garder une présentation en colonne de fsIdentite & fsContact
130
				//Sinon, on doit mettre une case vide pour garder une présentation en colonne de fsIdentite & fsContact
112
				identite.add(new Label());
131
				identite.add(new Label());
113
			}
132
			}
Line 114... Line 133...
114
			
133
			
115
			identite.add(fsContact);
-
 
116
				
-
 
117
			
-
 
Line 118... Line 134...
118
			
134
			identite.add(fsContact);
119
			
135
			
120
			fsIdentite.removeAll();
136
			fsIdentite.removeAll();
Line 150... Line 166...
150
			
166
			
151
			// lieu deces
167
			// lieu deces
152
			Object lieuDeces = personne.obtenirValeurChamp("lieu_deces");
168
			Object lieuDeces = personne.obtenirValeurChamp("lieu_deces");
Line -... Line 169...
-
 
169
			ajouterTextFieldNonEditable(fsIdentite, "Lieu de décès", lieuDeces);
-
 
170
			
-
 
171
			//Description
-
 
172
			String description = (String) personne.obtenirValeurChamp("description");
-
 
173
			if ((description!=null)&&(!description.trim().equals("")))	{
-
 
174
				TextArea txtDescription = new TextArea();
-
 
175
				txtDescription.setFieldLabel("Description");
-
 
176
				txtDescription.setValue(description);
-
 
177
				
-
 
178
				rendreNonEditable(txtDescription);
-
 
179
				
Line 153... Line 180...
153
			ajouterTextFieldNonEditable(fsIdentite, "Lieu de décès", lieuDeces);
180
				fsIdentite.add(txtDescription);
Line 154... Line 181...
154
			
181
			}
155
			
182
			
156
			
183
			
157
			//CONTACT
184
			//CONTACT
158
			
185
			
159
			//FIXME : courriel est un champ TRUK
186
			//FIXME : courriel est un champ TRUK
Line 160... Line 187...
160
			// on doit afficher N entrées
187
			// on doit afficher N entrées
Line 196... Line 223...
196
			
223
			
197
			layout();
224
			layout();
198
		} 
225
		} 
Line 199... Line 226...
199
	}
226
	}
Line 200... Line 227...
200
 
227
 
Line 201... Line 228...
201
	public void ajouterTextFieldNonEditable(FieldSet fs, String tfLabel, Object tfValue)	{
228
	private void ajouterTextFieldNonEditable(FieldSet fs, String tfLabel, Object tfValue)	{
Line 210... Line 237...
210
				tf.setStyleAttribute("margin", "0 0 0 105px");
237
				tf.setStyleAttribute("margin", "0 0 0 105px");
211
			}
238
			}
212
			tf.setValue(tfValue);
239
			tf.setValue(tfValue);
Line 213... Line 240...
213
		
240
		
-
 
241
			// Non éditable : on empêche l'évènement par défaut
-
 
242
			rendreNonEditable(tf);
-
 
243
		
-
 
244
			//Ajout au fieldSet
-
 
245
			fs.add(tf);
-
 
246
		}
-
 
247
	}
214
			// Non éditable : on empêche l'évènement par défaut
248
	
Line -... Line 249...
-
 
249
	private void rendreNonEditable(Field field)	{
215
			tf.addKeyListener(new KeyListener()	{
250
			
216
			
251
		field.addKeyListener(new KeyListener()	{
217
			public void componentKeyPress(ComponentEvent ev)	{
252
			public void componentKeyPress(ComponentEvent ev)	{
218
				ev.stopEvent();
253
				ev.stopEvent();
219
			}
-
 
220
			});
-
 
221
		
-
 
222
			//Ajout au fieldSet
-
 
223
			fs.add(tf);
254
			}
-
 
255
			});
Line 224... Line 256...
224
		}
256
	}
225
	}
257
		
226
	
258
	
227
	public void rafraichir(Object nouvelleDonnees) {
259
	public void rafraichir(Object nouvelleDonnees) {