Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 200 Rev 215
Line 14... Line 14...
14
import com.extjs.gxt.ui.client.Registry;
14
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Style.Scroll;
15
import com.extjs.gxt.ui.client.Style.Scroll;
16
import com.extjs.gxt.ui.client.event.ComponentEvent;
16
import com.extjs.gxt.ui.client.event.ComponentEvent;
17
import com.extjs.gxt.ui.client.event.KeyListener;
17
import com.extjs.gxt.ui.client.event.KeyListener;
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.ContentPanel;
19
import com.extjs.gxt.ui.client.widget.Html;
20
import com.extjs.gxt.ui.client.widget.Html;
20
import com.extjs.gxt.ui.client.widget.LayoutContainer;
21
import com.extjs.gxt.ui.client.widget.LayoutContainer;
21
import com.extjs.gxt.ui.client.widget.TabItem;
22
import com.extjs.gxt.ui.client.widget.TabItem;
22
import com.extjs.gxt.ui.client.widget.TabPanel;
23
import com.extjs.gxt.ui.client.widget.TabPanel;
23
import com.extjs.gxt.ui.client.widget.form.Field;
24
import com.extjs.gxt.ui.client.widget.form.Field;
24
import com.extjs.gxt.ui.client.widget.form.FieldSet;
25
import com.extjs.gxt.ui.client.widget.form.FieldSet;
25
import com.extjs.gxt.ui.client.widget.form.TextArea;
26
import com.extjs.gxt.ui.client.widget.form.TextArea;
26
import com.extjs.gxt.ui.client.widget.form.TextField;
27
import com.extjs.gxt.ui.client.widget.form.TextField;
-
 
28
import com.extjs.gxt.ui.client.widget.layout.CenterLayout;
27
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
29
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
28
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
30
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
29
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
31
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
30
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
32
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
31
import com.google.gwt.dom.client.LinkElement;
33
import com.google.gwt.dom.client.LinkElement;
32
import com.google.gwt.dom.client.NodeList;
34
import com.google.gwt.dom.client.NodeList;
33
import com.google.gwt.user.client.Window;
35
import com.google.gwt.user.client.Window;
34
import com.google.gwt.user.client.ui.Hyperlink;
36
import com.google.gwt.user.client.ui.Hyperlink;
35
import com.google.gwt.user.client.ui.Image;
37
import com.google.gwt.user.client.ui.Image;
36
import com.google.gwt.user.client.ui.Label;
38
import com.google.gwt.user.client.ui.Label;
-
 
39
import com.google.gwt.user.client.ui.Panel;
-
 
40
import com.google.gwt.user.client.ui.SimplePanel;
37
import com.google.gwt.user.client.ui.TextBox;
41
import com.google.gwt.user.client.ui.TextBox;
38
import com.google.gwt.user.client.ui.Widget;
42
import com.google.gwt.user.client.ui.Widget;
39
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
43
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
Line 40... Line 44...
40
 
44
 
Line 41... Line 45...
41
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable {
45
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable {
Line 42... Line 46...
42
 
46
 
43
	// Le panneau détail se compose de formulaires tabulés
47
	// Le panneau détail se compose de formulaires tabulés
-
 
48
	
-
 
49
	// Onglet 1 : identite & contact
-
 
50
	private TabItem tabIdentite;
-
 
51
	
44
	
52
	private ContentPanel panneauIdentite;
45
	// Onglet 1 : identite & contact
53
	private ContentPanel panneauImage;
Line 46... Line 54...
46
	private TabItem identite;
54
	
47
	private FieldSet fsIdentite;
55
	private FieldSet fsIdentite;
48
	private FieldSet fsContact;
56
	private FieldSet fsContact;
49
	
57
	
Line 50... Line 58...
50
	// Onglet 2 : Adresses
58
	// Onglet 2 : Adresses
-
 
59
	private TabItem tabAdresse;
Line 51... Line 60...
51
	private TabItem tabAdresse;
60
	private FieldSet fsAdressePerso;
Line 52... Line 61...
52
	private FieldSet fsAdressePerso;
61
		// contient : adresse perso / adresse pro
Line 53... Line 62...
53
		// contient : adresse perso / adresse pro
62
	
54
	
63
	// Onglet 3 : Informations naturalistes
55
	//TODO : Onglet Info Naturaliste
64
	private TabItem tabInfosNat;
Line 56... Line 65...
56
	
65
	
57
	// > Se baser sur la présentation thunderBird
66
	// > Se baser sur la présentation thunderBird
-
 
67
	
58
	
68
	
59
	
69
	public PersonneDetailPanneauVue() {
-
 
70
		
60
	public PersonneDetailPanneauVue() {
71
		//Constructeur de la classe
61
		
72
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
62
		//Constructeur de la classe
73
		setLayout(new FitLayout());
63
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
74
		
64
		setLayout(new FitLayout());
75
		tabIdentite = new TabItem("Identité");
-
 
76
		TableLayout tLayout = new TableLayout(2);
65
		
77
		tabIdentite.setLayout(tLayout);
66
		identite = new TabItem("Identité");
78
		tabIdentite.setScrollMode(Scroll.AUTO);
-
 
79
		
-
 
80
		panneauIdentite = new ContentPanel();
67
		identite.setLayout(new TableLayout(2));
81
		panneauIdentite.setWidth("400px");
-
 
82
		panneauIdentite.setHeaderVisible(false);
-
 
83
		panneauIdentite.setBorders(false);
Line 68... Line 84...
68
		identite.setScrollMode(Scroll.AUTO);
84
		panneauIdentite.setBodyBorder(false);
69
		
85
		panneauImage = new ContentPanel();
Line 70... Line 86...
70
		/*
86
		panneauImage.setWidth("350px");
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é.
87
		panneauImage.setBorders(false);
Line 72... Line 88...
72
		 * Cependant, une imagetrop grande bouleverse la mise en page.
88
		panneauImage.setBodyBorder(false);
Line 73... Line 89...
73
		 * Il faut trouver une solution pour fixer ca :
89
		panneauImage.setHeaderVisible(false);
74
		 * 	- par CSS ?
90
		panneauImage.setStyleName("conteneur-image-centre");
75
		 *  - utiliser un FlexTable ?
91
		
76
		 *  - utiliser plusieurs panneaux?
92
		tabIdentite.add(panneauIdentite);
Line -... Line 93...
-
 
93
		tabIdentite.add(panneauImage);
Line -... Line 94...
-
 
94
		
-
 
95
		fsIdentite = new FieldSet();
Line 77... Line 96...
77
		 * */
96
		fsIdentite.setLayout(new FormLayout());
Line 78... Line 97...
78
		
97
		
Line 79... Line 98...
79
		fsIdentite = new FieldSet();
98
		
80
		fsIdentite.setLayout(new FormLayout());
99
		fsContact = new FieldSet();
Line 81... Line 100...
81
		
100
		fsContact.setLayout(new FormLayout());
82
		
101
		
-
 
102
		this.add(tabIdentite);
Line 83... Line 103...
83
		fsContact = new FieldSet();
103
		
84
		fsContact.setLayout(new FormLayout());
104
		//Onglet Adresse:
Line 85... Line 105...
85
		
105
		tabAdresse = new TabItem("Adresse");
86
		this.add(identite);
106
		fsAdressePerso = new FieldSet();
Line -... Line 107...
-
 
107
		fsAdressePerso.setLayout(new FormLayout());
87
		
108
		
Line 88... Line 109...
88
		//Onglet Adresse:
109
		this.add(tabAdresse);
89
		tabAdresse = new TabItem("Adresses");
110
		
Line 90... Line 111...
90
		fsAdressePerso = new FieldSet();
111
		//Onglet info naturalistes
91
		fsAdressePerso.setLayout(new FormLayout());
112
		tabInfosNat = new TabItem("Informations naturalistes");
92
		
113
		
93
		
114
		this.add(tabInfosNat);
94
		
115
		
95
		//TODO : ajouter info naturaliste
116
	}
96
		
-
 
97
	}
-
 
98
 
-
 
99
	public void afficherDetailPersonne(Personne personne) {
-
 
100
		if (personne != null) {
117
 
101
			
-
 
102
			
-
 
103
			//MAJ Identité : Configurer les fieldSet
-
 
104
			identite.removeAll();
-
 
105
			
118
	public void afficherDetailPersonne(Personne personne) {
Line 106... Line 119...
106
			fsIdentite.setHeading("Identité");
119
		if (personne != null) {
Line 107... Line 120...
107
			fsIdentite.setWidth("350px");
120
			
108
			
121
			
-
 
122
			//MAJ Identité : Configurer les fieldSet
109
			fsContact.setHeading("Contact");
123
			panneauIdentite.removeAll();
Line 110... Line 124...
110
			fsContact.setWidth("350px");
124
			panneauImage.removeAll();
Line 181... Line 195...
181
			}
195
			}
Line 182... Line 196...
182
			
196
			
Line 183... Line 197...
183
			
197
			
184
			//CONTACT
198
			//CONTACT
-
 
199
			
185
			
200
			// Courriel est un champ TRUK
-
 
201
			// on doit afficher N entrées
-
 
202
			// Voir si le | (pipe) est bien le bon séparateur
-
 
203
			String courriels =  (String) personne.obtenirValeurChamp("truk_courriel");
-
 
204
			String[] tabCourriel = courriels.split("\\|");
-
 
205
			Html intituleHTML = new Html("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b>");
-
 
206
			fsContact.add(intituleHTML);
186
			//FIXME : courriel est un champ TRUK
207
 
187
			// on doit afficher N entrées
208
			for(int i = 0 ; i < tabCourriel.length ; i++) {
188
			String courriel =  (String) personne.obtenirValeurChamp("courriel");
209
				String courriel = tabCourriel[i];
-
 
210
				Hyperlink lnkCourriel = new Hyperlink();
Line 189... Line 211...
189
			Hyperlink lnkCourriel = new Hyperlink();
211
				lnkCourriel.setHTML("<a href=\"mailto:" + courriel + "\">" + courriel + "</a>");
Line -... Line 212...
-
 
212
				fsContact.add(lnkCourriel);
-
 
213
			}
190
			lnkCourriel.setHTML("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b><a href=\"mailto:" + courriel + "\">" + courriel + "</a>");
214
			
191
			fsContact.add(lnkCourriel);
215
			panneauIdentite.add(fsContact);
-
 
216
			
192
			
217
			
193
			fsContact.addText("<br >");
218
			fsAdressePerso.setHeading("Adresse personnelle");
Line 194... Line 219...
194
			
219
			
195
			
220
			/*
Line 196... Line 221...
196
			/*
221
			 * Adresses :
197
			 * Adresses :
222
			 * */
Line 198... Line 223...
198
			String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
223
			String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
199
			ajouterTextFieldNonEditable(fsContact, "Adresse", adresse01);
224
			ajouterTextFieldNonEditable(fsAdressePerso, "Adresse", adresse01);
Line 200... Line 225...
200
			
225
			
201
			
226
			
Line 202... Line 227...
202
			String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
227
			String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
203
			ajouterTextFieldNonEditable(fsContact, "", adresse02);
228
			ajouterTextFieldNonEditable(fsAdressePerso, "", adresse02);
Line 204... Line 229...
204
			
229
			
205
			String boitePostale = (String) personne.obtenirValeurChamp("bp");
230
			String boitePostale = (String) personne.obtenirValeurChamp("bp");
206
			ajouterTextFieldNonEditable(fsContact, "Boite Postale", boitePostale);
-
 
207
			
-
 
208
			String codePostal = (String) personne.obtenirValeurChamp("code_postal");
-
 
Line -... Line 231...
-
 
231
			ajouterTextFieldNonEditable(fsAdressePerso, "Boite Postale", boitePostale);
-
 
232
			
Line -... Line 233...
-
 
233
			String codePostal = (String) personne.obtenirValeurChamp("code_postal");
-
 
234
			ajouterTextFieldNonEditable(fsAdressePerso, "Code postal", codePostal);
-
 
235
			
-
 
236
			String ville = (String) personne.obtenirValeurChamp("ville");
-
 
237
			ajouterTextFieldNonEditable(fsAdressePerso, "Ville", ville);
209
			ajouterTextFieldNonEditable(fsContact, "Code postal", codePostal);
238
			
210
			
239
			String region = (String) personne.obtenirValeurChamp("region");
211
			String ville = (String) personne.obtenirValeurChamp("ville");
240
			ajouterTextFieldNonEditable(fsAdressePerso, "Région", region);
Line 212... Line 241...
212
			ajouterTextFieldNonEditable(fsContact, "Ville", ville);
241