Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 214 → Rev 215

/trunk/src/org/tela_botanica/client/vues/PersonneDetailPanneauVue.java
16,6 → 16,7
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.KeyListener;
import com.extjs.gxt.ui.client.util.Params;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Html;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.TabItem;
24,6 → 25,7
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.CenterLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
34,6 → 36,8
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.Panel;
import com.google.gwt.user.client.ui.SimplePanel;
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;
43,7 → 47,11
// Le panneau détail se compose de formulaires tabulés
// Onglet 1 : identite & contact
private TabItem identite;
private TabItem tabIdentite;
private ContentPanel panneauIdentite;
private ContentPanel panneauImage;
private FieldSet fsIdentite;
private FieldSet fsContact;
52,7 → 60,8
private FieldSet fsAdressePerso;
// contient : adresse perso / adresse pro
//TODO : Onglet Info Naturaliste
// Onglet 3 : Informations naturalistes
private TabItem tabInfosNat;
// > Se baser sur la présentation thunderBird
63,19 → 72,26
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
setLayout(new FitLayout());
identite = new TabItem("Identité");
identite.setLayout(new TableLayout(2));
identite.setScrollMode(Scroll.AUTO);
tabIdentite = new TabItem("Identité");
TableLayout tLayout = new TableLayout(2);
tabIdentite.setLayout(tLayout);
tabIdentite.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?
* */
panneauIdentite = new ContentPanel();
panneauIdentite.setWidth("400px");
panneauIdentite.setHeaderVisible(false);
panneauIdentite.setBorders(false);
panneauIdentite.setBodyBorder(false);
panneauImage = new ContentPanel();
panneauImage.setWidth("350px");
panneauImage.setBorders(false);
panneauImage.setBodyBorder(false);
panneauImage.setHeaderVisible(false);
panneauImage.setStyleName("conteneur-image-centre");
tabIdentite.add(panneauIdentite);
tabIdentite.add(panneauImage);
fsIdentite = new FieldSet();
fsIdentite.setLayout(new FormLayout());
83,16 → 99,19
fsContact = new FieldSet();
fsContact.setLayout(new FormLayout());
this.add(identite);
this.add(tabIdentite);
//Onglet Adresse:
tabAdresse = new TabItem("Adresses");
tabAdresse = new TabItem("Adresse");
fsAdressePerso = new FieldSet();
fsAdressePerso.setLayout(new FormLayout());
this.add(tabAdresse);
//Onglet info naturalistes
tabInfosNat = new TabItem("Informations naturalistes");
//TODO : ajouter info naturaliste
this.add(tabInfosNat);
}
 
101,7 → 120,8
//MAJ Identité : Configurer les fieldSet
identite.removeAll();
panneauIdentite.removeAll();
panneauImage.removeAll();
fsIdentite.setHeading("Identité");
fsIdentite.setWidth("350px");
109,8 → 129,9
fsContact.setHeading("Contact");
fsContact.setWidth("350px");
identite.add(fsIdentite);
panneauIdentite.add(fsIdentite);
//La personne peut avoir un logo
String logoUrl = (String) personne.obtenirValeurChamp("truk_logo");
119,22 → 140,15
Image img = new Image();
img.setUrl(logoUrl);
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 ...
img.setHeight("300px");
identite.add(img);
} else {
//Sinon, on doit mettre une case vide pour garder une présentation en colonne de fsIdentite & fsContact
identite.add(new Label());
 
panneauImage.add(img);
}
identite.add(fsContact);
panneauIdentite.add(fsContact);
fsIdentite.removeAll();
fsContact.removeAll();
fsAdressePerso.removeAll();
//Ajout des champs Identité
183,44 → 197,59
//CONTACT
//FIXME : courriel est un champ TRUK
// Courriel est un champ TRUK
// on doit afficher N entrées
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);
// Voir si le | (pipe) est bien le bon séparateur
String courriels = (String) personne.obtenirValeurChamp("truk_courriel");
String[] tabCourriel = courriels.split("\\|");
Html intituleHTML = new Html("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b>");
fsContact.add(intituleHTML);
 
for(int i = 0 ; i < tabCourriel.length ; i++) {
String courriel = tabCourriel[i];
Hyperlink lnkCourriel = new Hyperlink();
lnkCourriel.setHTML("<a href=\"mailto:" + courriel + "\">" + courriel + "</a>");
fsContact.add(lnkCourriel);
}
fsContact.addText("<br >");
panneauIdentite.add(fsContact);
fsAdressePerso.setHeading("Adresse personnelle");
/*
* Adresses :
* */
String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
ajouterTextFieldNonEditable(fsContact, "Adresse", adresse01);
ajouterTextFieldNonEditable(fsAdressePerso, "Adresse", adresse01);
String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
ajouterTextFieldNonEditable(fsContact, "", adresse02);
ajouterTextFieldNonEditable(fsAdressePerso, "", adresse02);
String boitePostale = (String) personne.obtenirValeurChamp("bp");
ajouterTextFieldNonEditable(fsContact, "Boite Postale", boitePostale);
ajouterTextFieldNonEditable(fsAdressePerso, "Boite Postale", boitePostale);
String codePostal = (String) personne.obtenirValeurChamp("code_postal");
ajouterTextFieldNonEditable(fsContact, "Code postal", codePostal);
ajouterTextFieldNonEditable(fsAdressePerso, "Code postal", codePostal);
String ville = (String) personne.obtenirValeurChamp("ville");
ajouterTextFieldNonEditable(fsContact, "Ville", ville);
ajouterTextFieldNonEditable(fsAdressePerso, "Ville", ville);
String region = (String) personne.obtenirValeurChamp("region");
ajouterTextFieldNonEditable(fsContact, "Région", region);
ajouterTextFieldNonEditable(fsAdressePerso, "Région", region);
String pays = (String) personne.obtenirValeurChamp("pays");
ajouterTextFieldNonEditable(fsContact, "Pays", pays);
ajouterTextFieldNonEditable(fsAdressePerso, "Pays", pays);
fsContact.addText("<br >"); */
fsAdressePerso.addText("<br >");
fsAdressePerso.setWidth("350px");
tabAdresse.add(fsAdressePerso);
tabAdresse.setScrollMode(Scroll.AUTO);
/*
*/
 
layout();
}
}