Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 435 → Rev 436

/trunk/src/org/tela_botanica/client/vues/PanneauPersonneListe.java
File deleted
/trunk/src/org/tela_botanica/client/vues/PersonneDetailPanneauVue.java
File deleted
\ No newline at end of file
/trunk/src/org/tela_botanica/client/vues/PersonneVue.java
17,8 → 17,8
 
public class PersonneVue extends LayoutContainer implements Rafraichissable {
 
private PanneauPersonneListe panneauPersonneListe;
private PersonneDetailPanneauVue panneauPersonneDetail;
private PersonneListeVue panneauPersonneListe;
private PersonneDetailVue panneauPersonneDetail;
 
public PersonneVue() {
BorderLayout layout = new BorderLayout();
25,10 → 25,10
layout.setEnableState(false);
setLayout(layout);
 
panneauPersonneListe = new PanneauPersonneListe();
panneauPersonneListe = new PersonneListeVue();
this.add(panneauPersonneListe, new BorderLayoutData(LayoutRegion.CENTER));
 
panneauPersonneDetail = new PersonneDetailPanneauVue();
panneauPersonneDetail = new PersonneDetailVue();
BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000);
southData.setSplit(true);
southData.setMargins(new Margins(5, 0, 0, 0));
/trunk/src/org/tela_botanica/client/vues/PersonneListeVue.java
New file
0,0 → 1,179
package org.tela_botanica.client.vues;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.Personne;
import org.tela_botanica.client.modeles.PersonneListe;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.Style.SelectionMode;
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.binder.TableBinder;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Info;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.form.LabelField;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.table.Table;
import com.extjs.gxt.ui.client.widget.table.TableColumn;
import com.extjs.gxt.ui.client.widget.table.TableColumnModel;
import com.extjs.gxt.ui.client.widget.table.TableItem;
import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
 
public class PersonneListeVue extends ContentPanel implements Rafraichissable {
private Mediateur mediateur = null ;
private Table table = null;
private ListStore<Personne> store = null;
private TableBinder<Personne> binder = null;
private Personne personneSelectionnee = null;
public PersonneListeVue() {
mediateur = Registry.get(RegistreId.MEDIATEUR);
//Définition de la barre d'outil
ToolBar toolBar = new ToolBar();
TextToolItem ajouter = new TextToolItem("Ajouter");
ajouter.setIconStyle(ComposantClass.ICONE_AJOUTER);
ajouter.addSelectionListener(new SelectionListener<ComponentEvent>() {
public void componentSelected(ComponentEvent ce) {
mediateur.clicAjouterPersonne();
}
});
toolBar.add(ajouter);
final Rafraichissable r = this ;
 
// TODO : ajouter btn mod & supp
final TextToolItem modifier = new TextToolItem("Modifier");
modifier.setIconStyle(ComposantClass.ICONE_MODIFIER);
modifier.addSelectionListener(new SelectionListener<ComponentEvent>() {
public void componentSelected(ComponentEvent ce) {
mediateur.clicModifierPersonne(personneSelectionnee);
}
});
toolBar.add(modifier);
final TextToolItem supprimer = new TextToolItem("Supprimer");
supprimer.addSelectionListener(new SelectionListener<ComponentEvent>() {
public void componentSelected(ComponentEvent ce) {
mediateur.clicSupprimerPersonne(r, binder.getSelection());
}
});
supprimer.setIconStyle(ComposantClass.ICONE_SUPPRIMER);
toolBar.add(supprimer);
setTopComponent(toolBar);
List<TableColumn> columns = new ArrayList<TableColumn>();
// ATTENTION : les noms des colonnes doivent correspondrent aux noms variables de la classe utilisée dans la liste
columns.add(new TableColumn("fmt_nom_complet", "Nom Complet", .20f));
columns.add(new TableColumn("nom", "Nom", .20f));
columns.add(new TableColumn("code_postal", "Code Postal", .10f));
columns.add(new TableColumn("ville", "Ville", .20f));
columns.add(new TableColumn("courriel_princ", "Courriel", .25f));
TableColumnModel cm = new TableColumnModel(columns);
table = new Table(cm);
table.setSelectionMode(SelectionMode.MULTI);
table.setBorders(false);
table.setHorizontalScroll(true);
add(table);
 
store = new ListStore<Personne>();
 
binder = new TableBinder<Personne>(table, store);
binder.setAutoSelect(true);
binder.addSelectionChangedListener(new SelectionChangedListener<Personne>() {
public void selectionChanged(SelectionChangedEvent<Personne> event) {
Personne p = (Personne) event.getSelectedItem();
personneSelectionnee = p;
clicListe(p);
}
});
setLayout(new FitLayout());
}
 
private void clicListe(Personne personne) {
mediateur.clicListePersonne(personne);
}
 
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof PersonneListe) {
setHeading("Personnes");
PersonneListe listePersonnes = (PersonneListe) nouvellesDonnees;
List<Personne> liste = new ArrayList<Personne>();
for (Iterator<String> it = listePersonnes.keySet().iterator(); it.hasNext();) {
liste.add(listePersonnes.get(it.next()));
}
store.removeAll();
store.add(liste);
mediateur.actualiserPanneauCentral();
table.sort(0, SortDir.ASC);
if (store.getCount() > 0) {
table.getSelectionModel().select(0);
}
} else if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
Info.display("Erreur", info.getMessages().toString());
if (info.getType().equals("suppression_personne")) {
List<TableItem> selectionPersonnes = table.getSelectedItems();
final int taille = selectionPersonnes.size();
for (int i = 0; i < taille; i++) {
//GWT.log("INDEX :"+table.indexOf(selectionStructure.get(i)), null);
table.remove(selectionPersonnes.get(i));
}
}
} else {
GWT.log("Pas de correspondance" + nouvellesDonnees.getClass() + " dans la méthode rafraichir() de la classe "+this.getClass(), null);
}
layout();
}
}
 
 
 
 
 
 
/trunk/src/org/tela_botanica/client/vues/PersonneDetailVue.java
New file
0,0 → 1,507
package org.tela_botanica.client.vues;
 
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.ComposantId;
import org.tela_botanica.client.Mediateur;
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.Configuration;
import org.tela_botanica.client.modeles.Personne;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.util.UtilTruk;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
import com.extjs.gxt.ui.client.util.Format;
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;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.Text;
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.layout.ColumnData;
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
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.RowData;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.extjs.gxt.ui.client.widget.layout.TableData;
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.ui.Image;
 
public class PersonneDetailVue extends LayoutContainer implements Rafraichissable {
 
private LayoutContainer lcDetailHaut;
// Le panneau détail se compose de formulaires tabulés
private TabPanel tabPanel;
// Onglet 1 : identite & contact
private TabItem tabIdentite;
private FieldSet fsIdentite;
private FieldSet fsContact;
// Onglet 2 : Adresses
private TabItem tabAdresse;
private FieldSet fsAdressePerso;
// contient : adresse perso / adresse pro
// Onglet 3 : Informations naturalistes
private TabItem tabInfosNat;
private FieldSet fsSpec;
//Onglet 4 : logos
private TabItem tabLogos;
private Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
//Templates
private String enteteTpl = "<div style='display:inline-block; padding-left:15px; width:70%; font-size:11px'>"+
"<h1>{nom}</h1>"+
"<a href='{mail}'>{mail}</a>" +
"</div><br/>";
private String tabIdentiteTpl = "<div class='coel-fieldset'>" +
" <span><b>Nom Complet:</b></span> {nom_complet}<br />" +
" <span><b>Autres noms:</b></span> {nom_autre}<br />" +
" <span><b>Abréviation:</b></span> {abreviation}<br />" +
" <span><b>Autres Abréviations:</b></b></span> {abreviation_autre}<br /><br />" +
" <span><b>Date de naissance</b></span> {naissance_date}<br />" +
" <span><b>Lieu de naissance:</b></span> {naissance_lieu}<br /><br />" +
" <span><b>Date de décès:</b></span> {deces_date}<br />" +
" <span><b>Lieu de décès:</b></span> {deces_lieu}<br /><br />" +
"</div>" +
"<div class='coel-fieldset'>" +
" <span style='vertical-align:top'><b>Description:</b></span> {description}<br />" +
"</div>";
public PersonneDetailVue() {
setLayout(new RowLayout());
ContentPanel cp = new ContentPanel();
cp.setLayout(new FlowLayout());
lcDetailHaut = new LayoutContainer();
lcDetailHaut.setLayout(new RowLayout());
//this.add(lcDetailHaut, new RowData(1, 0.2));
cp.setTopComponent(lcDetailHaut);
add(lcDetailHaut);
tabPanel = new TabPanel();
this.add(tabPanel, new RowData(1, 1));
//Constructeur de la classe
Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
//setLayout(new FitLayout());
tabIdentite = new TabItem("Identité");
tabIdentite.setLayout(new FitLayout());
tabIdentite.setScrollMode(Scroll.AUTO);
fsIdentite = new FieldSet();
fsIdentite.setLayout(new FormLayout());
fsContact = new FieldSet();
fsContact.setLayout(new FormLayout());
tabPanel.add(tabIdentite);
//Onglet Adresse:
tabAdresse = new TabItem("Adresses");
fsAdressePerso = new FieldSet();
fsAdressePerso.setLayout(new FormLayout());
tabPanel.add(tabAdresse);
//Onglet info naturalistes
tabInfosNat = new TabItem("Informations naturalistes");
fsSpec = new FieldSet();
fsSpec.setLayout(new FormLayout());
tabInfosNat.setScrollMode(Scroll.AUTO);
tabPanel.add(tabInfosNat);
tabLogos = new TabItem("Logos");
tabLogos.setLayout(new FlowLayout());
tabPanel.add(tabLogos);
}
 
private HashMap hmLabelFieldRegion = new HashMap();
public void afficherDetailPersonne(Personne personne) {
if (personne != null) {
//MAJ Identité : Configurer les fieldSet
Params enteteParams = new Params();
enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
enteteParams.set("mail", (String) personne.get("courriel_princ"));
LinkedList lstLogos = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_logo");
if (lstLogos!=null && lstLogos.size() > 0) {
tabLogos.removeAll();
String urlLogoPrinc = (String) lstLogos.get(0);
if (!urlLogoPrinc.trim().equals("")) {
enteteTpl = "<div style='position:absolute; right:0; width:30%; text-align:right'><img src='{image}' alt='logo' height='45px'/></div>" + enteteTpl;
enteteParams.set("image", urlLogoPrinc);
}
Iterator<String> itLogo = lstLogos.iterator();
while (itLogo.hasNext()){
String urlLogoCourant = itLogo.next();
Image imgCourante = new Image(urlLogoCourant);
tabLogos.add(imgCourante);
}
tabLogos.enable();
} else {
tabLogos.disable();
}
lcDetailHaut.el().setInnerHtml(Format.substitute(enteteTpl, enteteParams));
Params tabIdentiteParams = new Params();
tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet"));
tabIdentiteParams.set("abreviation", personne.getString("abreviation"));
tabIdentiteParams.set("naissance_date", personne.getString("naissance_date"));
tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu"));
tabIdentiteParams.set("deces_date", personne.getString("deces_date"));
tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu"));
tabIdentiteParams.set("description", personne.getString("description"));
fsAdressePerso.removeAll();
fsSpec.removeAll();
tabInfosNat.removeAll();
// Nom autre : champ truk; non-typé
LinkedList<String> nomsAutre = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_nom_autre");
String listeNoms = "";
if ((nomsAutre != null)&&(nomsAutre.size() > 0)) {
listeNoms = UtilTruk.traiterTrukListe(nomsAutre, ", ");
}
tabIdentiteParams.set("nom_autre", listeNoms);
// Abréviations, autre : non-typé
LinkedList<String> abrevAutres = (LinkedList<String>) personne.getChaineDenormaliseAsMapOrList("truk_abreviation_autre");
String listeAbrev = "";
if ((abrevAutres != null)&&(abrevAutres.size() > 0)) {
listeAbrev = UtilTruk.traiterTrukListe(abrevAutres, ", ");
}
tabIdentiteParams.set("abreviation_autre", listeAbrev);
tabIdentite.el().setInnerHtml(Format.substitute(tabIdentiteTpl, tabIdentiteParams));
// CONTACT > Plusieurs téléphones possible, typés
Constantes constantesI18n = (Constantes) GWT.create(Constantes.class);
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);
}
// Url Site Webs
LinkedList listeUrl = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_url");
if (listeUrl!=null && listeUrl.size() > 0) {
String strUrl = "";
Iterator<String> urlIt = listeUrl.iterator();
while (urlIt.hasNext()) {
String urlCourante = urlIt.next();
strUrl += "<a href=\""+urlCourante+"\">" + urlCourante + "</a> <br/>";
}
LabelField urlLabelField = new LabelField();
urlLabelField.setFieldLabel("Url:");
urlLabelField.setValue(strUrl);
fsContact.add(urlLabelField);
}
tabIdentite.setStyleAttribute("padding", "15px");
//tabIdentite.add(fsContact);
fsAdressePerso.setHeading("Adresse personnelle");
/*
* Adresses :
* */
String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
ajouterLabelField(fsAdressePerso, "Adresse", adresse01);
String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
ajouterLabelField(fsAdressePerso, "", adresse02);
String boitePostale = (String) personne.obtenirValeurChamp("bp");
ajouterLabelField(fsAdressePerso, "Boite Postale", boitePostale);
String codePostal = (String) personne.obtenirValeurChamp("code_postal");
ajouterLabelField(fsAdressePerso, "Code postal", codePostal);
String ville = (String) personne.obtenirValeurChamp("ville");
ajouterLabelField(fsAdressePerso, "Ville", ville);
String region = (String) personne.obtenirValeurChamp("region");
ajouterLabelField(fsAdressePerso, "Région", region);
String pays = (String) personne.obtenirValeurChamp("pays");
ajouterLabelField(fsAdressePerso, "Pays", pays);
fsAdressePerso.addText("<br >");
fsAdressePerso.setWidth("350px");
tabAdresse.add(fsAdressePerso);
 
// Infos naturalistes
// Biographie
// Spécialité (typé)
fsSpec.setHeading("Spécialités");
tabInfosNat.add(fsSpec);
HashMap hmSpecialite = (HashMap) personne.getChaineDenormaliseAsMapOrList("ce_truk_specialite");
if ((hmSpecialite != null)&&(hmSpecialite.size() > 0)) {
Collection<String> specialiteKeys = hmSpecialite.keySet();
Iterator<String> itSpec = specialiteKeys.iterator();
while (itSpec.hasNext()) {
String key = itSpec.next();
LabelField specLabel = new LabelField();
String label = "";
try {
label = constantesI18n.getString(key);
}
catch (MissingResourceException e) {
label = key;
}
specLabel.setFieldLabel( label + ":");
specLabel.setValue(hmSpecialite.get(key));
fsSpec.add(specLabel);
}
}
// Récolte
LinkedList<String> lstRecolte = (LinkedList) personne.getChaineDenormaliseAsMapOrList("truk_recolte");
if ((lstRecolte!=null)&&(lstRecolte.size()>0)) {
FieldSet fsRecolte = new FieldSet();
fsRecolte.setHeading("Récoltes");
fsRecolte.setLayout(new FormLayout());
Iterator<String> itRecolte = lstRecolte.iterator();
while (itRecolte.hasNext()) {
String recolteCourante = itRecolte.next();
LabelField lfRecolte = new LabelField();
String[] splitRecolte = recolteCourante.split("\\|");
String labelRecolte = "";
if (splitRecolte.length > 1) {
lfRecolte.setValue(splitRecolte[1]);
}
lfRecolte.setFieldLabel(splitRecolte[0]);
fsRecolte.add(lfRecolte);
LinkedList<LabelField> lstComposantsRegion = (LinkedList<LabelField>) hmLabelFieldRegion.get(splitRecolte[0]);
if (lstComposantsRegion == null) {
lstComposantsRegion = new LinkedList<LabelField>();
}
lstComposantsRegion.add(lfRecolte);
hmLabelFieldRegion.remove(splitRecolte[0]);
hmLabelFieldRegion.put(splitRecolte[0], lstComposantsRegion);
}
tabInfosNat.add(fsRecolte);
}
changerLabelRegions();
// tabInfosNat
layout();
}
}
private void changerLabelRegions() {
Collection<String> colClesComposants = hmLabelFieldRegion.keySet();
Iterator<String> itComposants = colClesComposants.iterator();
while (itComposants.hasNext()) {
String region = itComposants.next();
mediateur.obtenirValeurEtRafraichir(this, "region", region);
}
}
 
private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue) {
if ((tfValue!=null)&&(!tfValue.toString().trim().equals(""))) {
LabelField tf = new LabelField();
tf.setFieldLabel(tfLabel + ":");
if ((tfLabel==null)||("".equals(tfLabel))) {
tf.setHideLabel(true);
tf.setStyleAttribute("margin", "0 0 0 105px");
}
tf.setValue(tfValue);
//Ajout au fieldSet
fs.add(tf);
}
}
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
public void rafraichir(Object nouvellesDonnees) {
// Si on a reçu une personne on en affiche les détails
if (nouvellesDonnees instanceof Personne) {
afficherDetailPersonne((Personne) nouvellesDonnees);
} else if (nouvellesDonnees instanceof ValeurListe) {
ValeurListe listeValeur = (ValeurListe) nouvellesDonnees;
if (listeValeur.getId().equals(config.getListeId("region"))) {
Collection colCleListeValeur = listeValeur.keySet();
Iterator<String> itLv = colCleListeValeur.iterator();
while (itLv.hasNext()) {
String idRegion = itLv.next();
Valeur region = listeValeur.get(idRegion);
if (region != null) {
String strRegionId = region.getAbreviation();
LinkedList<LabelField> listComposantsRegion = (LinkedList) hmLabelFieldRegion.get(strRegionId);
for (int i=0; i < listComposantsRegion.size(); i++) {
LabelField lfRegion = listComposantsRegion.get(i);
lfRegion.setFieldLabel(region.getNom());
}
}
}
}
}
}
 
}