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