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) { |