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"); |
|
120,21 → 141,14 |
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"); |
// 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("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b><a href=\"mailto:" + courriel + "\">" + courriel + "</a>"); |
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(); |
} |
} |