Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 252 → Rev 253

/trunk/src/org/tela_botanica/client/vues/PersonneDetailPanneauVue.java
2,25 → 2,28
 
 
 
 
 
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.MissingResourceException;
 
 
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.i18n.Constantes;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Personne;
import org.tela_botanica.client.modeles.PersonneListe;
import org.tela_botanica.client.modeles.StructureListe;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
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.PagingToolBar;
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;
27,25 → 30,16
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.LabelField;
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.BorderLayoutData;
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;
import com.extjs.gxt.ui.client.widget.layout.LayoutData;
import com.extjs.gxt.ui.client.widget.layout.TableData;
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.extjs.gxt.ui.client.widget.toolbar.ToolItem;
import com.google.gwt.dom.client.LinkElement;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
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;
 
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable {
 
88,15 → 82,18
panneauIdentite.setBorders(false);
panneauIdentite.setBodyBorder(false);
panneauImage = new ContentPanel();
panneauImage.setWidth("350px");
panneauImage.setLayout(new FlowLayout());
panneauImage.setBorders(false);
panneauImage.setWidth(350);
panneauImage.setBodyBorder(false);
panneauImage.setHeaderVisible(false);
panneauImage.setStyleName("conteneur-image-centre");
tabIdentite.add(panneauIdentite);
tabIdentite.add(panneauImage);
TableData td = new TableData();
tabIdentite.add(panneauImage, td);
td.setVerticalAlign(VerticalAlignment.TOP);
fsIdentite = new FieldSet();
fsIdentite.setLayout(new FormLayout());
137,20 → 134,30
panneauIdentite.add(fsIdentite);
//La personne peut avoir un logo
String logoUrl = (String) personne.obtenirValeurChamp("truk_logo");
//La personne peut avoir un ou plusieurs logo
panneauImage.setHeight("100%");
if ((logoUrl!=null)&&(!logoUrl.trim().equals(""))) {
//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
Image img = new Image();
img.setUrl(logoUrl);
img.setStyleName("logo-personne");
 
panneauImage.add(img);
LinkedList<String> listeLogos = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_logo");
if ((listeLogos != null)&&(listeLogos.size() > 0)) {
// FIXME : problème avec la taille du panneau > ne se fixe pas automatiquement à la taille de l'image
for (int i = 0; i < listeLogos.size(); i++) {
String logoUrl = listeLogos.get(i);
if ((logoUrl!=null)&&(!logoUrl.trim().equals(""))) {
//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
Image img = new Image();
img.setUrl(logoUrl);
panneauImage.add(img);
if (panneauImage.getWidth() < (img.getWidth() + 15)) {
panneauImage.setWidth(img.getWidth() + 15);
}
}
}
panneauImage.setBorders(true);
}
panneauIdentite.add(fsContact);
166,7 → 173,7
// nom complet
Object nomComplet = personne.obtenirValeurChamp("fmt_nom_complet");
ajouterTextFieldNonEditable(fsIdentite,"Nom", nomComplet);
ajouterTextFieldNonEditable(fsIdentite,"Nom Complet", nomComplet);
// TODO : nom autre
194,33 → 201,100
//Description
String description = (String) personne.obtenirValeurChamp("description");
if ((description!=null)&&(!description.trim().equals(""))) {
TextArea txtDescription = new TextArea();
txtDescription.setFieldLabel("Description");
LabelField txtDescription = new LabelField();
txtDescription.setFieldLabel("Description:");
txtDescription.setValue(description);
rendreNonEditable(txtDescription);
//rendreNonEditable(txtDescription);
fsIdentite.add(txtDescription);
}
//CONTACT
// CONTACT
// Téléphones
// > Plusieurs téléphones possible, typés
Constantes constantesI18n = (Constantes) GWT.create(Constantes.class);
// Courriel est un champ TRUK
// on doit afficher N entrées
// 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);
HashMap<String, String> mapTelephones = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_telephone");
if ((mapTelephones != null)&&(mapTelephones.size() > 0)) {
Collection<String> telephoneKeys = mapTelephones.keySet();
Iterator<String> itTelephones = telephoneKeys.iterator();
while (itTelephones.hasNext()) {
String key = itTelephones.next();
LabelField telephoneLabel = new LabelField();
String label = "";
try {
label = constantesI18n.getString(key);
}
catch (MissingResourceException e) {
label = key;
}
telephoneLabel.setFieldLabel( label + ":");
telephoneLabel.setValue(mapTelephones.get(key));
fsContact.add(telephoneLabel);
}
}
// Fax
// > Plusieurs fax possible, typés
HashMap<String, String> mapFax = (HashMap<String, String>) personne.getChaineDenormaliseAsMapOrList("truk_fax");
if ((mapFax != null)&&(mapFax.size() > 0)) {
Collection<String> faxKeys = mapFax.keySet();
Iterator<String> itFax = faxKeys.iterator();
while (itFax.hasNext()) {
String key = itFax.next();
LabelField faxLabel = new LabelField();
String label = "";
try {
label = constantesI18n.getString(key);
}
catch (MissingResourceException e) {
label = key;
}
faxLabel.setFieldLabel( label + ":");
faxLabel.setValue(mapTelephones.get(key));
fsContact.add(faxLabel);
}
}
// Courriel
// Courriel est un champ truk de la forme "Adresse@adr.com;; adr2@adr.fr ..."
LinkedList<String> listeCourriel = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_courriel");
if ((listeCourriel!=null)&&(listeCourriel.size() > 0)) {
String strLabelCourriel = "Courriel";
if (listeCourriel.size() > 1) {
strLabelCourriel += "s";
}
LabelField labelCourriel = new LabelField();
labelCourriel.setFieldLabel(strLabelCourriel);
String valeurCourriel = "";
Iterator<String> itCourriel = listeCourriel.iterator();
while (itCourriel.hasNext()) {
String valeurCourante = itCourriel.next();
valeurCourriel += "<a href=\"mailto:" + valeurCourante + "\">" + valeurCourante + "</a><br />";
}
labelCourriel.setValue(valeurCourriel);
fsContact.add(labelCourriel);
}
panneauIdentite.add(fsContact);
285,7 → 359,8
}
}
private void rendreNonEditable(Field field) {
/*
* private void rendreNonEditable(Field field) {
field.addKeyListener(new KeyListener() {
public void componentKeyPress(ComponentEvent ev) {
293,6 → 368,7
}
});
}
*/
public void rafraichir(Object nouvelleDonnees) {