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,20 → 409,76 |
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(); |
431,61 → 485,141 |
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(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); |
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")); |
|
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()); |
toolBar.add(new TextToolItem("Supprimer", "icon-delete")); |
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); |
} |