Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 199 → Rev 200

/trunk/src/org/tela_botanica/client/vues/PersonneDetailPanneauVue.java
20,7 → 20,9
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.TextArea;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
32,6 → 34,7
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
 
44,11 → 47,12
private FieldSet fsIdentite;
private FieldSet fsContact;
//A ajouter :
// Onglet Adresse
// Onglet 2 : Adresses
private TabItem tabAdresse;
private FieldSet fsAdressePerso;
// contient : adresse perso / adresse pro
//Onglet Info Naturaliste
//TODO : Onglet Info Naturaliste
// > Se baser sur la présentation thunderBird
60,9 → 64,18
setLayout(new FitLayout());
identite = new TabItem("Identité");
identite.setLayout(new TableLayout(2));
identite.setLayout(new TableLayout(2));
identite.setScrollMode(Scroll.AUTO);
/*
* 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é.
* Cependant, une imagetrop grande bouleverse la mise en page.
* Il faut trouver une solution pour fixer ca :
* - par CSS ?
* - utiliser un FlexTable ?
* - utiliser plusieurs panneaux?
* */
fsIdentite = new FieldSet();
fsIdentite.setLayout(new FormLayout());
72,7 → 85,13
this.add(identite);
//TODO : ajouter adresse
//Onglet Adresse:
tabAdresse = new TabItem("Adresses");
fsAdressePerso = new FieldSet();
fsAdressePerso.setLayout(new FormLayout());
//TODO : ajouter info naturaliste
}
99,7 → 118,7
//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
Image img = new Image();
img.setUrl(logoUrl);
img.setTitle("logo-personne");
img.setStyleName("logo-personne");
// FIXME : pour avoir un affichage correct, je force la redimension à 300px. Idéalement, ce serait un max-height qu'il faudrait.
// FIXME : L'image devrait se mettre sur deux lignes au lieu d'une, ca décale tout ...
113,10 → 132,7
}
identite.add(fsContact);
fsIdentite.removeAll();
fsContact.removeAll();
//Ajout des champs Identité
152,6 → 168,17
Object lieuDeces = personne.obtenirValeurChamp("lieu_deces");
ajouterTextFieldNonEditable(fsIdentite, "Lieu de décès", lieuDeces);
//Description
String description = (String) personne.obtenirValeurChamp("description");
if ((description!=null)&&(!description.trim().equals(""))) {
TextArea txtDescription = new TextArea();
txtDescription.setFieldLabel("Description");
txtDescription.setValue(description);
rendreNonEditable(txtDescription);
fsIdentite.add(txtDescription);
}
//CONTACT
158,7 → 185,7
//FIXME : courriel est un champ TRUK
// on doit afficher N entrées
String courriel = (String) personne.obtenirValeurChamp("truk_courriel");
String courriel = (String) personne.obtenirValeurChamp("courriel");
Hyperlink lnkCourriel = new Hyperlink();
lnkCourriel.setHTML("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b><a href=\"mailto:" + courriel + "\">" + courriel + "</a>");
fsContact.add(lnkCourriel);
198,7 → 225,7
}
}
 
public void ajouterTextFieldNonEditable(FieldSet fs, String tfLabel, Object tfValue) {
private void ajouterTextFieldNonEditable(FieldSet fs, String tfLabel, Object tfValue) {
if ((tfValue!=null)&&(!tfValue.toString().trim().equals(""))) {
212,17 → 239,22
tf.setValue(tfValue);
// Non éditable : on empêche l'évènement par défaut
tf.addKeyListener(new KeyListener() {
rendreNonEditable(tf);
//Ajout au fieldSet
fs.add(tf);
}
}
private void rendreNonEditable(Field field) {
field.addKeyListener(new KeyListener() {
public void componentKeyPress(ComponentEvent ev) {
ev.stopEvent();
}
});
}
//Ajout au fieldSet
fs.add(tf);
}
}
public void rafraichir(Object nouvelleDonnees) {
if (nouvelleDonnees instanceof Personne) {