Rev 102 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.tela_botanica.client.Modele;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.InterneValeur;
import org.tela_botanica.client.modeles.InterneValeurListe;
import org.tela_botanica.client.modeles.Personne;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
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.event.ToolBarEvent;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.ContentPanel;
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.button.Button;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.DateField;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.LabelField;
import com.extjs.gxt.ui.client.widget.form.NumberField;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
import com.extjs.gxt.ui.client.widget.grid.CheckBoxSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.CheckColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
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.FormData;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
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.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.NumberFormat;
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
private Modele coelModele = null ;
private ListStore<Valeur> magazinLstpr = null;
private ComboBox<Valeur> comboLstpr = null;
private ListStore<Valeur> magazinLstpu = null;
private ComboBox<Valeur> comboLstpu = null;
private ListStore<Valeur> magazinLiStatut = null;
private ComboBox<Valeur> comboLiStatut = null;
private ListStore<Valeur> magazinLiFonction = null;
private ComboBox<Valeur> comboLiFonction = null;
private ComboBox<InterneValeur> comboAcronyme = null;
private TextField<String> ihChp = null;
private TextField<String> mnhnChp = null;
private ComboBox<InterneValeur> comboTypeStructure = null;
private EditorGrid<Personne> grillePersonnel = null;
private ListStore<Personne> personnelGrilleMagazin = null;
private LabelField nbreTotalPersonnelChp = null;
public FormStructureVue() {
//+-----------------------------------------------------------------------------------------------------------+
// Initialisation de variables
setLayout(new FitLayout());
coelModele = Registry.get(RegistreId.MODELE);
// Création de la disposition : FIELDSET
FormLayout layoutFieldset = new FormLayout();
layoutFieldset.setLabelWidth(200);
layoutFieldset.setPadding(4);
//+-----------------------------------------------------------------------------------------------------------+
// Création du panneau Formulaire
FormPanel panel = new FormPanel();
panel.setFrame(true);
panel.setIconStyle("icone-form-ajouter");
panel.setCollapsible(false);
panel.setHeading("Ajout d'une institution");
panel.setButtonAlign(HorizontalAlignment.CENTER);
panel.setLayout(new FlowLayout());
// Création des onglets
TabPanel onglets = new TabPanel();
onglets.setAutoHeight(true);
//tabs.setDeferredRender(false);
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire IDENTIFICATION
TabItem identificationOnglet = new TabItem();
identificationOnglet.setText("Identification");
identificationOnglet.setLayout(new FormLayout());
// Fieldset IDENTITÉ
FieldSet fieldSetIdentite = new FieldSet();
fieldSetIdentite.setHeading("Identité");
fieldSetIdentite.setCollapsible(true);
fieldSetIdentite.setLayout(layoutFieldset);
TextField<String> nomStructureChp = new TextField<String>();
nomStructureChp.setFieldLabel("Nom de la structure");
nomStructureChp.setAllowBlank(false);
nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire.");
fieldSetIdentite.add(nomStructureChp, new FormData(450, 0));
// Création du sous-formulaire : Acronyme
LayoutContainer ligne = new LayoutContainer();
ligne.setLayout(new ColumnLayout());
LayoutContainer gauche = new LayoutContainer();
FormLayout layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(200);
layoutGauche.setPadding(0);
gauche.setLayout(layoutGauche);
LayoutContainer droite = new LayoutContainer();
FormLayout layoutDroite = new FormLayout();
layoutDroite.setLabelWidth(0);
layoutDroite.setPadding(0);
droite.setLayout(layoutDroite);
ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>();
acronymes.add(InterneValeurListe.getTypeAcronyme());
comboAcronyme = new ComboBox<InterneValeur>();
comboAcronyme.setEmptyText("Sélectioner un type d'acronyme...");
comboAcronyme.setFieldLabel("Acronymes");
comboAcronyme.setDisplayField("nom");
comboAcronyme.setStore(acronymes);
comboAcronyme.setEditable(false);
comboAcronyme.setTypeAhead(true);
comboAcronyme.setTriggerAction(TriggerAction.ALL);
comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
@Override
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
String acronymeAbr = se.getSelectedItem().getAbr();
if (acronymeAbr.equals("IH")) {
mnhnChp.hide();
ihChp.show();
} else if (acronymeAbr.equals("MNHN")) {
ihChp.hide();
mnhnChp.show();
} else if (acronymeAbr.equals("")) {
ihChp.hide();
mnhnChp.hide();
comboAcronyme.clearSelections();
}
}
});
gauche.add(comboAcronyme);
ihChp = new TextField<String>();
//ihChp.setEmptyText("Index Herbariorum");
ihChp.setLabelSeparator("");
ihChp.setToolTip("Index Herbariorum : herbier de plus de 5000 échantillons");
ihChp.hide();
droite.add(ihChp);
mnhnChp = new TextField<String>();
//mnhnChp.setEmptyText("MNHN");
mnhnChp.setLabelSeparator("");
mnhnChp.setToolTip("Acronyme MNHN : herbier de moins de 5000 échantillons");
mnhnChp.hide();
droite.add(mnhnChp);
ligne.add(gauche, new ColumnData(0.5));
ligne.add(droite, new ColumnData(0.5));
fieldSetIdentite.add(ligne);
// Création du sous-formulaire : Type de Structure
LayoutContainer ligneTs = new LayoutContainer();
ligneTs.setLayout(new ColumnLayout());
LayoutContainer gaucheTs = new LayoutContainer();
layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(200);
layoutGauche.setPadding(0);
gaucheTs.setLayout(layoutGauche);
LayoutContainer droiteTs = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelWidth(0);
layoutDroite.setPadding(0);
droiteTs.setLayout(layoutDroite);
ListStore<InterneValeur> typesStructure = new ListStore<InterneValeur>();
typesStructure.add(InterneValeurListe.getTypeStructure());
this.comboTypeStructure = new ComboBox<InterneValeur>();
comboTypeStructure.setEmptyText("Sélectioner un type de structure...");
comboTypeStructure.setFieldLabel("Statut des structures");
comboTypeStructure.setDisplayField("nom");
comboTypeStructure.setStore(typesStructure);
comboTypeStructure.setEditable(false);
comboTypeStructure.setTypeAhead(true);
comboTypeStructure.setTriggerAction(TriggerAction.ALL);
comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
@Override
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
String typeAbr = se.getSelectedItem().getAbr();
if (typeAbr.equals("stpu")) {
comboLstpr.hide();
comboLstpu.show();
} else if (typeAbr.equals("stpr")) {
comboLstpu.hide();
comboLstpr.show();
} else if (typeAbr.equals("")) {
comboLstpr.hide();
comboLstpu.hide();
comboTypeStructure.clearSelections();
}
}
});
gaucheTs.add(comboTypeStructure);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
magazinLstpu = new ListStore<Valeur>();
magazinLstpu.add(new ArrayList<Valeur>());
comboLstpu = new ComboBox<Valeur>();
//comboLstpu.setFieldLabel("Statut des structures publiques");
comboLstpu.setLabelSeparator("");
comboLstpu.setDisplayField("nom");
comboLstpu.setEditable(false);
comboLstpu.setTriggerAction(TriggerAction.ALL);
comboLstpu.setStore(magazinLstpu);
comboLstpu.hide();
droiteTs.add(comboLstpu);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
magazinLstpr = new ListStore<Valeur>();
magazinLstpr.add(new ArrayList<Valeur>());
comboLstpr = new ComboBox<Valeur>();
//comboLstpr.setFieldLabel("Statut des structures privées");
comboLstpr.setLabelSeparator("");
comboLstpr.setDisplayField("nom");
comboLstpr.setEditable(false);
comboLstpr.setTriggerAction(TriggerAction.ALL);
comboLstpr.setStore(magazinLstpr);
comboLstpr.hide();
droiteTs.add(comboLstpr);
ligneTs.add(gaucheTs, new ColumnData(0.5));
ligneTs.add(droiteTs, new ColumnData(0.5));
fieldSetIdentite.add(ligneTs);
DateField dateFondationChp = new DateField();
dateFondationChp.setFieldLabel("Date de fondation");
dateFondationChp.getPropertyEditor().getFormat();
dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
dateFondationChp.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
fieldSetIdentite.add(dateFondationChp);
identificationOnglet.add(fieldSetIdentite);
// Fieldset ADRESSE
LayoutContainer principalFdAdresse = new LayoutContainer();
principalFdAdresse.setLayout(new ColumnLayout());
LayoutContainer gaucheFdAdresse = new LayoutContainer();
layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(100);
layoutGauche.setPadding(0);
gaucheFdAdresse.setLayout(layoutGauche);
LayoutContainer droiteFdAdresse = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelAlign(LabelAlign.LEFT);
layoutDroite.setLabelWidth(100);
layoutDroite.setPadding(0);
droiteFdAdresse.setLayout(layoutDroite);
FieldSet fieldSetAdresse = new FieldSet();
fieldSetAdresse.setHeading("Adresse");
fieldSetAdresse.setCollapsible(true);
layoutFieldset = new FormLayout();
layoutFieldset.setLabelWidth(100);
layoutFieldset.setPadding(4);
fieldSetAdresse.setLayout(layoutFieldset);
TextField<String> adrChp = new TextField<String>();
adrChp.setFieldLabel("Adresse");
fieldSetAdresse.add(adrChp, new FormData(550, 0));
TextField<String> cpChp = new TextField<String>();
cpChp.setFieldLabel("Code postal");
gaucheFdAdresse.add(cpChp);
TextField<String> villeChp = new TextField<String>();
villeChp.setFieldLabel("Ville");
droiteFdAdresse.add(villeChp);
TextField<String> regionChp = new TextField<String>();
regionChp.setFieldLabel("Région");
gaucheFdAdresse.add(regionChp);
TextField<String> paysChp = new TextField<String>();
paysChp.setFieldLabel("Pays");
droiteFdAdresse.add(paysChp);
principalFdAdresse.add(gaucheFdAdresse, new ColumnData(.5));
principalFdAdresse.add(droiteFdAdresse, new ColumnData(.5));
fieldSetAdresse.add(principalFdAdresse);
identificationOnglet.add(fieldSetAdresse);
// Fieldset TÉLÉPHONE et EMAIL
LayoutContainer principalFdTelMail = new LayoutContainer();
principalFdTelMail.setLayout(new ColumnLayout());
LayoutContainer gaucheFdTelMail = new LayoutContainer();
layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(100);
layoutGauche.setPadding(0);
gaucheFdTelMail.setLayout(layoutGauche);
LayoutContainer droiteFdTelMail = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelAlign(LabelAlign.LEFT);
layoutDroite.setLabelWidth(100);
layoutDroite.setPadding(0);
droiteFdTelMail.setLayout(layoutDroite);
FieldSet fieldSetTelMail = new FieldSet();
fieldSetTelMail.setHeading("Communication");
fieldSetTelMail.setCollapsible(true);
layoutFieldset = new FormLayout();
layoutFieldset.setLabelWidth(200);
layoutFieldset.setPadding(4);
fieldSetTelMail.setLayout(layoutFieldset);
TextField<String> telChp = new TextField<String>();
telChp.setFieldLabel("Téléphone");
gaucheFdTelMail.add(telChp);
TextField<String> faxChp = new TextField<String>();
faxChp.setFieldLabel("Fax");
droiteFdTelMail.add(faxChp);
TextField<String> emailChp = new TextField<String>();
emailChp.setFieldLabel("Courriel");
emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org");
gaucheFdTelMail.add(emailChp);
TextField<String> urlChp = new TextField<String>();
urlChp.setFieldLabel("Site web");
droiteFdTelMail.add(urlChp);
principalFdTelMail.add(gaucheFdTelMail, new ColumnData(.5));
principalFdTelMail.add(droiteFdTelMail, new ColumnData(.5));
fieldSetTelMail.add(principalFdTelMail);
identificationOnglet.add(fieldSetTelMail);
onglets.add(identificationOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire PERSONNEL
onglets.add(creerOngletPersonnel());
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire CONSERVATION
TabItem conservationOnglet = new TabItem();
conservationOnglet.setText("Conservation");
conservationOnglet.setLayout(new FormLayout());
onglets.add(conservationOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire VALORISATION
TabItem valorisationOnglet = new TabItem();
valorisationOnglet.setText("Valorisation");
valorisationOnglet.setLayout(new FormLayout());
onglets.add(valorisationOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Gestion du FORMULAIRE GÉNÉRAL
// Ajout des onglets
panel.add(onglets);
// Ajout des boutons au panneau formulaire
Button annulerBtn = new Button("Annuler");
panel.addButton(annulerBtn);
Button validerBtn = new Button("Valider");
panel.addButton(validerBtn);
// Ajout du panneau Formulaire à la disposition générale
add(panel);
}
private TabItem creerOngletPersonnel() {
TabItem personnelOnglet = new TabItem();
personnelOnglet.setText("Personnel");
FormLayout personnelOngletLayout = new FormLayout();
personnelOngletLayout.setLabelWidth(400);
personnelOnglet.setLayout(personnelOngletLayout);
NumberField nbreTotalPersonneStructureChp = new NumberField();
nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personne travaillant dans l'institution");
nbreTotalPersonneStructureChp.setFormat(NumberFormat.getFormat("#"));
nbreTotalPersonneStructureChp.setToolTip("Ce champ doit contenir un nombre");
personnelOnglet.add(nbreTotalPersonneStructureChp);
personnelOnglet.add(this.creerGrillePersonnel());
nbreTotalPersonnelChp = new LabelField();
nbreTotalPersonnelChp.setFieldLabel("Nombre de personne travaillant sur les collections");
nbreTotalPersonnelChp.setLabelSeparator(":");
nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
personnelOnglet.add(nbreTotalPersonnelChp);
return personnelOnglet;
}
private ContentPanel creerGrillePersonnel() {
List<Personne> personnes = new ArrayList<Personne>();
personnes.add(new Personne(Valeur.FONCTION_DIRECTEUR));
personnes.add(new Personne(Valeur.FONCTION_CONSERVATEUR));
personnelGrilleMagazin = new ListStore<Personne>();
personnelGrilleMagazin.add(personnes);
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
CheckBoxSelectionModel<Personne> sm = new CheckBoxSelectionModel<Personne>();
configs.add(sm.getColumn());
ColumnConfig column = new ColumnConfig("ce_truk_fonction", "Fonction", 100);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("fonction"));
magazinLiFonction = new ListStore<Valeur>();
magazinLiFonction.add(new ArrayList<Valeur>());
comboLiFonction = new ComboBox<Valeur>();
comboLiFonction.setTriggerAction(TriggerAction.ALL);
comboLiFonction.setEditable(true);
comboLiFonction.setDisplayField("nom");
//comboLiStatut.setEmptyText("Sélectionez une fonction...");
comboLiFonction.setStore(magazinLiFonction);
CellEditor fonctionEditor = new CellEditor(comboLiFonction) {
@Override
public Object preProcessValue(Object value) {
if (value == null) {
return value;
}
//GWT.log("pre : "+value.toString(), null);
return comboLiFonction.getStore().findModel("nom", (String) value);
}
@Override
public Object postProcessValue(Object value) {
if (value == null) {
return value;
}
//GWT.log("post : "+value.toString(), null);
return ((Valeur) value).get("nom");
}
};
column.setEditor(fonctionEditor);
configs.add(column);
column = new ColumnConfig();
column.setId("prenom");
column.setHeader("Prénom");
column.setWidth(100);
TextField<String> prenomChp = new TextField<String>();
prenomChp.setAllowBlank(false);
prenomChp.getMessages().setBlankText("Ce champ est obligatoire.");
prenomChp.setAutoValidate(true);
column.setEditor(new CellEditor(prenomChp));
configs.add(column);
column = new ColumnConfig();
column.setId("nom");
column.setHeader("Nom");
column.setWidth(100);
TextField<String> nomChp = new TextField<String>();
nomChp.setAllowBlank(false);
nomChp.getMessages().setBlankText("Ce champ est obligatoire.");
nomChp.setAutoValidate(true);
column.setEditor(new CellEditor(nomChp));
configs.add(column);
column = new ColumnConfig("tel", "Téléphone", 100);
TextField<String> telChp = new TextField<String>();
column.setEditor(new CellEditor(telChp));
configs.add(column);
column = new ColumnConfig("fax", "Fax", 100);
TextField<String> faxChp = new TextField<String>();
column.setEditor(new CellEditor(faxChp));
configs.add(column);
column = new ColumnConfig("courriel", "Courriel", 100);
TextField<String> emailChp = new TextField<String>();
column.setEditor(new CellEditor(emailChp));
configs.add(column);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("statut"));
magazinLiStatut = new ListStore<Valeur>();
magazinLiStatut.add(new ArrayList<Valeur>());
comboLiStatut = new ComboBox<Valeur>();
comboLiStatut.setTriggerAction(TriggerAction.ALL);
comboLiStatut.setEditable(false);
comboLiStatut.setDisplayField("nom");
comboLiStatut.setEmptyText("Sélectionez un statut...");
comboLiStatut.setStore(magazinLiStatut);
CellEditor statutEditor = new CellEditor(comboLiStatut) {
@Override
public Object preProcessValue(Object value) {
if (value == null) {
return value;
}
//GWT.log("pre : "+value.toString(), null);
return comboLiStatut.getStore().findModel("nom", (String) value);
}
@Override
public Object postProcessValue(Object value) {
if (value == null) {
return value;
}
//GWT.log("post : "+value.toString(), null);
return ((Valeur) value).get("nom");
}
};
column = new ColumnConfig("statut", "Statut", 100);
column.setEditor(statutEditor);
configs.add(column);
column = new ColumnConfig("tps_w", "Temps travail", 100);
column.setNumberFormat(NumberFormat.getFormat("##"));
NumberField tpsWChp = new NumberField();
tpsWChp.setFormat(NumberFormat.getFormat("##"));
tpsWChp.setToolTip("Ce champ doit contenir un nombre");
column.setEditor(new CellEditor(tpsWChp));
configs.add(column);
column = new ColumnConfig("specialites", "Spécialités botaniques", 150);
TextField<String> speChp = new TextField<String>();
column.setEditor(new CellEditor(speChp));
configs.add(column);
CheckColumnConfig checkColumn = new CheckColumnConfig("mark_contact", "Contact ?", 60);
configs.add(checkColumn);
ContentPanel cp = new ContentPanel();
cp.setHeading("Personnes travaillant sur les collections");
cp.setIconStyle("icone-table");
cp.setLayout(new FitLayout());
cp.setFrame(true);
ToolBar toolBar = new ToolBar();
TextToolItem ajouterPersonnelBtn = new TextToolItem("Ajouter", "icone-vcard-ajouter");
ajouterPersonnelBtn.addSelectionListener(new SelectionListener<ToolBarEvent>() {
@Override
public void componentSelected(ToolBarEvent ce) {
Personne personne = new Personne();
grillePersonnel.stopEditing();
personnelGrilleMagazin.insert(personne, 0);
grillePersonnel.startEditing(0, 0);
// Mise à jour du nombre de personnel travaillant sur les collections
nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
// Activation du bouton supprimer si la grille contient un élément
if (grillePersonnel.getStore().getCount() > 0) {
ce.component.enable();
}
}
});
toolBar.add(ajouterPersonnelBtn);
toolBar.add(new SeparatorToolItem());
TextToolItem supprimerPersonnelBtn = new TextToolItem("Supprimer", "icone-vcard-supprimer");
supprimerPersonnelBtn.addSelectionListener(new SelectionListener<ToolBarEvent>() {
@Override
public void componentSelected(ToolBarEvent ce) {
grillePersonnel.getStore().remove(grillePersonnel.getStore().getAt(0));
// Mise à jour du nombre de personnel travaillant sur les collections
nbreTotalPersonnelChp.setValue(""+grillePersonnel.getStore().getCount());
// Désactivation du bouton supprimer si la grille contient plus d'élément
if (grillePersonnel.getStore().getCount() == 0) {
ce.item.disable();
}
}
});
toolBar.add(supprimerPersonnelBtn);
cp.setTopComponent(toolBar);
ColumnModel cm = new ColumnModel(configs);
grillePersonnel = new EditorGrid<Personne>(personnelGrilleMagazin, cm);
grillePersonnel.setBorders(true);
grillePersonnel.setSelectionModel(sm);
grillePersonnel.addPlugin(sm);
grillePersonnel.addPlugin(checkColumn);
grillePersonnel.setSize(1010, 400);
cp.add(grillePersonnel);
return cp;
}
public void rafraichir(Object nouvelleDonnees) {
if (nouvelleDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;
List<Valeur> liste = new ArrayList<Valeur>();
for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
liste.add(listeValeurs.get(it.next()));
}
// Test pour savoir si la liste contient des éléments
if (liste.size() > 0) {
Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
if (listeValeurs.getId().equals(config.getListeId("stpr"))) {
magazinLstpr.removeAll();
magazinLstpr.add(liste);
comboLstpr.setStore(magazinLstpr);
}
if (listeValeurs.getId().equals(config.getListeId("stpu"))) {
magazinLstpu.removeAll();
magazinLstpu.add(liste);
comboLstpu.setStore(magazinLstpu);
}
if (listeValeurs.getId().equals(config.getListeId("statut"))) {
magazinLiStatut.removeAll();
magazinLiStatut.add(liste);
comboLiStatut.setStore(magazinLiStatut);
}
if (listeValeurs.getId().equals(config.getListeId("fonction"))) {
magazinLiFonction.removeAll();
magazinLiFonction.add(liste);
comboLiFonction.setStore(magazinLiFonction);
}
GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
} else {
GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);
}
}
}
}