Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 102 → Rev 103

/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java
16,8 → 16,11
 
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;
28,6 → 31,7
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;
38,7 → 42,6
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.grid.Grid;
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;
59,10 → 62,17
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() {
//+-----------------------------------------------------------------------------------------------------------+
363,20 → 373,8
 
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire PERSONNEL
TabItem personnelOnglet = new TabItem();
personnelOnglet.setText("Personnel");
FormLayout personnelOngletLayout = new FormLayout();
personnelOngletLayout.setLabelWidth(400);
personnelOnglet.setLayout(personnelOngletLayout);
onglets.add(creerOngletPersonnel());
TextField<String> nbreTotalPersonneStructureChp = new TextField<String>();
nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personne travaillant dans l'institution");
personnelOnglet.add(nbreTotalPersonneStructureChp);
personnelOnglet.add(this.creerGrillePersonnel());
onglets.add(personnelOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire CONSERVATION
TabItem conservationOnglet = new TabItem();
411,81 → 409,217
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();
column.setId("ce_truk_fonction");
column.setHeader("Fonction");
column.setWidth(100);
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);
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(75);
TextField<String> text = new TextField<String>();
text.setAllowBlank(false);
text.setAutoValidate(true);
column.setEditor(new CellEditor(text));
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);
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("tps_w", "Temps travail", 0);
column.setNumberFormat(NumberFormat.getDecimalFormat());
column.setEditor(new CellEditor(new NumberField()));
column = new ColumnConfig("courriel", "Courriel", 100);
TextField<String> emailChp = new TextField<String>();
column.setEditor(new CellEditor(emailChp));
configs.add(column);
column = new ColumnConfig("specialites", "Spécialités botaniques", 200);
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);
CheckColumnConfig checkColumn = new CheckColumnConfig("mark_contact", "Contact ?", 55);
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);
cp.setIconStyle("icon-table");
cp.setLayout(new FitLayout());
ToolBar toolBar = new ToolBar();
toolBar.add(new TextToolItem("Ajouter", "icon-add"));
toolBar.add(new SeparatorToolItem());
toolBar.add(new TextToolItem("Supprimer", "icon-delete"));
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);
 
ListStore<Personne> store = new ListStore<Personne>();
store.add(personnes);
 
ColumnModel cm = new ColumnModel(configs);
EditorGrid<Personne> grid = new EditorGrid<Personne>(store, cm);
grid.setBorders(true);
grid.setSelectionModel(sm);
grid.addPlugin(sm);
//grid.setAutoExpandColumn("nom");
grid.addPlugin(checkColumn);
grid.setHeight(400);
grillePersonnel = new EditorGrid<Personne>(personnelGrilleMagazin, cm);
grillePersonnel.setBorders(true);
grillePersonnel.setSelectionModel(sm);
grillePersonnel.addPlugin(sm);
grillePersonnel.addPlugin(checkColumn);
grillePersonnel.setSize(1010, 400);
cp.add(grid);
cp.add(grillePersonnel);
return cp;
}
501,17 → 635,26
if (liste.size() > 0) {
Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
if (listeValeurs.getId().equals(config.getListeId("stpr"))) {
GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
magazinLstpr.removeAll();
magazinLstpr.add(liste);
comboLstpr.setStore(magazinLstpr);
}
if (listeValeurs.getId().equals(config.getListeId("stpu"))) {
GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
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);
}