150 |
gduche |
1 |
package org.tela_botanica.client.vues;
|
|
|
2 |
|
189 |
gduche |
3 |
|
|
|
4 |
|
197 |
gduche |
5 |
import java.util.HashMap;
|
|
|
6 |
import java.util.Iterator;
|
189 |
gduche |
7 |
|
197 |
gduche |
8 |
|
150 |
gduche |
9 |
import org.tela_botanica.client.RegistreId;
|
|
|
10 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
|
|
11 |
import org.tela_botanica.client.modeles.Personne;
|
|
|
12 |
import org.tela_botanica.client.modeles.StructureListe;
|
|
|
13 |
|
|
|
14 |
import com.extjs.gxt.ui.client.Registry;
|
|
|
15 |
import com.extjs.gxt.ui.client.Style.Scroll;
|
197 |
gduche |
16 |
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
|
|
17 |
import com.extjs.gxt.ui.client.event.KeyListener;
|
150 |
gduche |
18 |
import com.extjs.gxt.ui.client.util.Params;
|
|
|
19 |
import com.extjs.gxt.ui.client.widget.Html;
|
197 |
gduche |
20 |
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
189 |
gduche |
21 |
import com.extjs.gxt.ui.client.widget.TabItem;
|
|
|
22 |
import com.extjs.gxt.ui.client.widget.TabPanel;
|
197 |
gduche |
23 |
import com.extjs.gxt.ui.client.widget.form.FieldSet;
|
|
|
24 |
import com.extjs.gxt.ui.client.widget.form.TextField;
|
150 |
gduche |
25 |
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
197 |
gduche |
26 |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
|
|
|
27 |
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
|
|
28 |
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
|
|
|
29 |
import com.google.gwt.dom.client.LinkElement;
|
|
|
30 |
import com.google.gwt.dom.client.NodeList;
|
|
|
31 |
import com.google.gwt.user.client.Window;
|
189 |
gduche |
32 |
import com.google.gwt.user.client.ui.Hyperlink;
|
197 |
gduche |
33 |
import com.google.gwt.user.client.ui.Image;
|
189 |
gduche |
34 |
import com.google.gwt.user.client.ui.Label;
|
|
|
35 |
import com.google.gwt.user.client.ui.Widget;
|
|
|
36 |
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
|
150 |
gduche |
37 |
|
189 |
gduche |
38 |
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable {
|
150 |
gduche |
39 |
|
197 |
gduche |
40 |
// Le panneau détail se compose de formulaires tabulés
|
189 |
gduche |
41 |
|
197 |
gduche |
42 |
// Onglet 1 : identite & contact
|
|
|
43 |
private TabItem identite;
|
|
|
44 |
private FieldSet fsIdentite;
|
|
|
45 |
private FieldSet fsContact;
|
189 |
gduche |
46 |
|
150 |
gduche |
47 |
public PersonneDetailPanneauVue() {
|
189 |
gduche |
48 |
|
150 |
gduche |
49 |
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
|
189 |
gduche |
50 |
setLayout(new FitLayout());
|
150 |
gduche |
51 |
|
197 |
gduche |
52 |
identite = new TabItem("Identité");
|
|
|
53 |
identite.setLayout(new TableLayout(2));
|
|
|
54 |
identite.setScrollMode(Scroll.AUTO);
|
189 |
gduche |
55 |
|
197 |
gduche |
56 |
fsIdentite = new FieldSet();
|
|
|
57 |
|
|
|
58 |
fsIdentite.setLayout(new FormLayout());
|
|
|
59 |
|
|
|
60 |
|
|
|
61 |
fsContact = new FieldSet();
|
|
|
62 |
|
|
|
63 |
fsContact.setLayout(new FormLayout());
|
|
|
64 |
|
|
|
65 |
|
|
|
66 |
this.add(identite);
|
|
|
67 |
|
150 |
gduche |
68 |
}
|
|
|
69 |
|
|
|
70 |
public void afficherDetailPersonne(Personne personne) {
|
|
|
71 |
if (personne != null) {
|
197 |
gduche |
72 |
identite.removeAll();
|
150 |
gduche |
73 |
|
197 |
gduche |
74 |
fsIdentite.setHeading("Identité");
|
|
|
75 |
fsIdentite.setWidth("350px");
|
|
|
76 |
fsIdentite.setStyleAttribute("padding", "1px");
|
183 |
gduche |
77 |
|
197 |
gduche |
78 |
fsContact.setHeading("Contact");
|
|
|
79 |
fsContact.setWidth("350px");
|
183 |
gduche |
80 |
|
197 |
gduche |
81 |
|
|
|
82 |
identite.add(fsIdentite);
|
|
|
83 |
|
|
|
84 |
String logoUrl = (String) personne.obtenirValeurChamp("truk_logo");
|
|
|
85 |
if ((logoUrl!=null)&&(!logoUrl.trim().equals(""))) {
|
189 |
gduche |
86 |
|
197 |
gduche |
87 |
Image img = new Image();
|
|
|
88 |
img.setUrl(logoUrl);
|
|
|
89 |
img.setTitle("logo-personne");
|
|
|
90 |
identite.add(img);
|
189 |
gduche |
91 |
|
197 |
gduche |
92 |
} else {
|
|
|
93 |
identite.add(new Label());
|
189 |
gduche |
94 |
}
|
150 |
gduche |
95 |
|
197 |
gduche |
96 |
identite.add(fsContact);
|
183 |
gduche |
97 |
|
|
|
98 |
|
189 |
gduche |
99 |
|
197 |
gduche |
100 |
|
|
|
101 |
|
|
|
102 |
fsIdentite.removeAll();
|
|
|
103 |
fsContact.removeAll();
|
|
|
104 |
//Ajout des champs Identité
|
|
|
105 |
|
|
|
106 |
|
|
|
107 |
|
|
|
108 |
// TODO: projet
|
|
|
109 |
|
|
|
110 |
// nom complet
|
|
|
111 |
Object nomComplet = personne.obtenirValeurChamp("fmt_nom_complet");
|
|
|
112 |
ajouterTextFieldNonEditable(fsIdentite,"Nom", nomComplet);
|
|
|
113 |
|
|
|
114 |
|
|
|
115 |
// TODO : nom autre
|
|
|
116 |
|
|
|
117 |
// abreviation
|
|
|
118 |
Object abreviation = personne.obtenirValeurChamp("abreviation");
|
|
|
119 |
ajouterTextFieldNonEditable(fsIdentite, "Abreviation", abreviation);
|
|
|
120 |
|
|
|
121 |
// date naissance
|
|
|
122 |
Object dateNaissance = personne.obtenirValeurChamp("date_naissance");
|
|
|
123 |
ajouterTextFieldNonEditable(fsIdentite, "Date de naissance", dateNaissance);
|
|
|
124 |
|
|
|
125 |
// lieu naissance
|
|
|
126 |
Object lieuNaissance = personne.obtenirValeurChamp("lieu_naissance");
|
|
|
127 |
ajouterTextFieldNonEditable(fsIdentite, "Lieu de naissance", lieuNaissance);
|
|
|
128 |
|
|
|
129 |
// date deces
|
|
|
130 |
Object dateDeces = personne.obtenirValeurChamp("date_deces");
|
|
|
131 |
ajouterTextFieldNonEditable(fsIdentite, "Date de décès", dateDeces);
|
|
|
132 |
|
|
|
133 |
// lieu deces
|
|
|
134 |
Object lieuDeces = personne.obtenirValeurChamp("lieu_deces");
|
|
|
135 |
ajouterTextFieldNonEditable(fsIdentite, "Lieu de décès", lieuDeces);
|
|
|
136 |
|
|
|
137 |
|
|
|
138 |
|
|
|
139 |
//CONTACT
|
|
|
140 |
|
|
|
141 |
String courriel = (String) personne.obtenirValeurChamp("truk_courriel");
|
|
|
142 |
Hyperlink lnkCourriel = new Hyperlink();
|
|
|
143 |
lnkCourriel.setHTML("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b><a href=\"mailto:" + courriel + "\">" + courriel + "</a>");
|
|
|
144 |
fsContact.add(lnkCourriel);
|
|
|
145 |
|
|
|
146 |
fsContact.addText("<br >");
|
|
|
147 |
|
|
|
148 |
String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
|
|
|
149 |
ajouterTextFieldNonEditable(fsContact, "Adresse", adresse01);
|
|
|
150 |
|
|
|
151 |
|
|
|
152 |
String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
|
|
|
153 |
ajouterTextFieldNonEditable(fsContact, "", adresse02);
|
|
|
154 |
|
|
|
155 |
String boitePostale = (String) personne.obtenirValeurChamp("bp");
|
|
|
156 |
ajouterTextFieldNonEditable(fsContact, "Boite Postale", boitePostale);
|
|
|
157 |
|
|
|
158 |
String codePostal = (String) personne.obtenirValeurChamp("code_postal");
|
|
|
159 |
ajouterTextFieldNonEditable(fsContact, "Code postal", codePostal);
|
|
|
160 |
|
|
|
161 |
String ville = (String) personne.obtenirValeurChamp("ville");
|
|
|
162 |
ajouterTextFieldNonEditable(fsContact, "Ville", ville);
|
|
|
163 |
|
|
|
164 |
String region = (String) personne.obtenirValeurChamp("region");
|
|
|
165 |
ajouterTextFieldNonEditable(fsContact, "Région", region);
|
|
|
166 |
|
|
|
167 |
String pays = (String) personne.obtenirValeurChamp("pays");
|
|
|
168 |
ajouterTextFieldNonEditable(fsContact, "Pays", pays);
|
|
|
169 |
|
|
|
170 |
fsContact.addText("<br >");
|
|
|
171 |
|
|
|
172 |
|
|
|
173 |
|
150 |
gduche |
174 |
layout();
|
197 |
gduche |
175 |
}
|
|
|
176 |
}
|
|
|
177 |
|
|
|
178 |
public void ajouterTextFieldNonEditable(FieldSet fs, String tfLabel, Object tfValue) {
|
|
|
179 |
|
|
|
180 |
if ((tfValue!=null)&&(!tfValue.toString().trim().equals(""))) {
|
189 |
gduche |
181 |
|
197 |
gduche |
182 |
TextField tf = new TextField();
|
|
|
183 |
|
|
|
184 |
tf.setFieldLabel(tfLabel);
|
|
|
185 |
if ((tfLabel==null)||("".equals(tfLabel))) {
|
|
|
186 |
tf.setHideLabel(true);
|
|
|
187 |
tf.setStyleAttribute("margin", "0 0 0 105px");
|
|
|
188 |
}
|
|
|
189 |
tf.setValue(tfValue);
|
|
|
190 |
|
|
|
191 |
// Non éditable : on empêche l'évènement par défaut
|
|
|
192 |
tf.addKeyListener(new KeyListener() {
|
|
|
193 |
|
|
|
194 |
public void componentKeyPress(ComponentEvent ev) {
|
|
|
195 |
ev.stopEvent();
|
|
|
196 |
}
|
|
|
197 |
});
|
|
|
198 |
|
|
|
199 |
//Ajout au fieldSet
|
|
|
200 |
fs.add(tf);
|
150 |
gduche |
201 |
}
|
|
|
202 |
}
|
197 |
gduche |
203 |
|
|
|
204 |
/*public void visualiserPersonneIdentite() {
|
|
|
205 |
|
|
|
206 |
//FieldSet identité
|
|
|
207 |
|
|
|
208 |
FieldSet fsId = new FieldSet();
|
|
|
209 |
fsId.setHeading("Identité");
|
|
|
210 |
fsId.setLayout(new FormLayout());
|
|
|
211 |
|
|
|
212 |
visualiser(champsIdentite, fsId);
|
|
|
213 |
|
|
|
214 |
/*NodeList nl = (NodeList) fsId.getElement().getChildNodes();
|
|
|
215 |
Window.alert(String.valueOf(nl.getLength()));*/
|
|
|
216 |
|
|
|
217 |
/*identite.add(fsId);
|
|
|
218 |
|
|
|
219 |
//TEST
|
|
|
220 |
Widget w = (TextField) fsId.getWidget(0);
|
|
|
221 |
|
|
|
222 |
|
|
|
223 |
//FieldSet contact
|
|
|
224 |
FieldSet fsContact = new FieldSet();
|
|
|
225 |
fsContact.setHeading("Contact");
|
|
|
226 |
|
|
|
227 |
|
|
|
228 |
|
|
|
229 |
}
|
|
|
230 |
|
|
|
231 |
public void visualiser(HashMap champs, LayoutContainer lContent) {
|
|
|
232 |
|
|
|
233 |
Iterator<String> itNomChamps = champs.keySet().iterator();
|
|
|
234 |
while (itNomChamps.hasNext()) {
|
|
|
235 |
TextField<String> nom = new TextField();
|
|
|
236 |
String cle = itNomChamps.next();
|
|
|
237 |
nom.setFieldLabel(cle);
|
|
|
238 |
nom.setValue((String) champs.get(cle));
|
|
|
239 |
|
|
|
240 |
//Dans le cas de la visualisation, on ne veut aucun évènement sur la saisie clavier.
|
|
|
241 |
nom.addKeyListener(new KeyListener(){
|
|
|
242 |
public void componentKeyPress(ComponentEvent ev) {
|
|
|
243 |
ev.stopEvent();
|
|
|
244 |
}
|
|
|
245 |
|
|
|
246 |
});
|
|
|
247 |
|
|
|
248 |
lContent.add(nom);
|
|
|
249 |
|
|
|
250 |
}
|
|
|
251 |
|
|
|
252 |
}/*/
|
|
|
253 |
|
|
|
254 |
|
183 |
gduche |
255 |
public void rafraichir(Object nouvelleDonnees) {
|
|
|
256 |
if (nouvelleDonnees instanceof Personne) {
|
|
|
257 |
afficherDetailPersonne((Personne) nouvelleDonnees);
|
150 |
gduche |
258 |
} else if (nouvelleDonnees instanceof StructureListe) {
|
|
|
259 |
StructureListe listeInstitutions = (StructureListe) nouvelleDonnees;
|
|
|
260 |
// Test pour savoir si la liste contient des éléments
|
|
|
261 |
if (listeInstitutions.size() == 0) {
|
183 |
gduche |
262 |
afficherDetailPersonne(null);
|
150 |
gduche |
263 |
}
|
183 |
gduche |
264 |
}
|
150 |
gduche |
265 |
}
|
|
|
266 |
|
197 |
gduche |
267 |
}
|