Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 605 → Rev 609

/trunk/src/org/tela_botanica/client/vues/StructureForm.java
4,7 → 4,6
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.i18n.Constantes;
31,7 → 30,6
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.Style.Orientation;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
46,7 → 44,6
import com.extjs.gxt.ui.client.store.Record;
import com.extjs.gxt.ui.client.store.Store;
import com.extjs.gxt.ui.client.store.StoreEvent;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Html;
72,7 → 69,6
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.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.form.Field.FieldImages;
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.CheckColumnConfig;
84,13 → 80,8
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.layout.HBoxLayout;
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.HBoxLayout.HBoxLayoutAlign;
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
98,7 → 89,7
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.NumberFormat;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
 
public class StructureForm extends LayoutContainer implements Rafraichissable {
109,6 → 100,8
private Mediateur mediateur = null;
 
private String mode = null;
private Boolean clicBoutonvalidation = false;
private int decompteRafraichissementPersonnel = 0;
private int tabIndex = 100;
private FormPanel structureFormPanneau = null;
private TabPanel onglets = null;
237,13 → 230,12
// Initialisation de variables
mode = modeDeCreation;
mediateur = mediateurCourrant;
i18nC = mediateur.i18nC;
i18nC = Mediateur.i18nC;
// Iniatilisation du layoutContainer
setLayout(new FitLayout());
setBorders(false);
//+-----------------------------------------------------------------------------------------------------------+
// Création du panneau du FORMULAIRE GÉNÉRAL
structureFormPanneau = new FormPanel();
structureFormPanneau.setBodyBorder(false);
254,92 → 246,83
structureFormPanneau.setButtonAlign(HorizontalAlignment.CENTER);
structureFormPanneau.setLayout(new FitLayout());
 
//+-----------------------------------------------------------------------------------------------------------+
// Création des onglets
creerOnglets();
// Ajout des boutons au panneau formulaire
creerBarreOutilsValidation();
// Ajout du panneau Formulaire à la disposition générale
add(structureFormPanneau);
}
private void creerOnglets() {
onglets = new TabPanel();
// NOTE : pour faire apparaître les scrollBar il faut définir la hauteur du panneau d'onglets à 100% (autoHeight ne semble pas fonctionner)
onglets.setHeight("100%");
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire IDENTIFICATION
onglets.add(creerOngletIdentification());
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire PERSONNEL
onglets.add(creerOngletPersonnel());
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire CONSERVATION
onglets.add(creerOngletConservation());
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire VALORISATION
onglets.add(creerOngletValorisation());
//+-----------------------------------------------------------------------------------------------------------+
// Gestion du FORMULAIRE GÉNÉRAL
// Sélection de l'onglet par défaut
//onglets.setSelection(personnelOnglet);
// Ajout des onglets au formulaire général
structureFormPanneau.add(onglets);
// Ajout des boutons au panneau formulaire
}
private void creerBarreOutilsValidation() {
barreOutilsValidation = new ButtonBar();
barreOutilsValidation.setAlignment(HorizontalAlignment.LEFT);
Button reinitialiserBtn = new Button("Réinitialiser");
reinitialiserBtn.setIcon(Images.ICONES.reinitialiser());
reinitialiserBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
if (mode.equals(StructureForm.MODE_MODIFIER)) {
mediateur.afficherFormStructure(identification.getId());
} else {
mediateur.afficherFormStructure(null);
}
}
});
barreOutilsValidation.add(reinitialiserBtn);
barreOutilsValidation.add(creerBouton(i18nC.reinitialiser(), Images.ICONES.reinitialiser(), "RE"));
barreOutilsValidation.add(new FillToolItem());
Button appliquerBtn = new Button("Appliquer");
appliquerBtn.setIcon(Images.ICONES.appliquer());
appliquerBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
soumettreFormulaire();
}
});
barreOutilsValidation.add(appliquerBtn);
barreOutilsValidation.add(creerBouton(i18nC.appliquer(), Images.ICONES.appliquer(), "AP"));
Button annulerBtn = new Button("Annuler");
annulerBtn.setIcon(Images.ICONES.annuler());
annulerBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
mediateur.clicMenu(MenuApplicationId.STRUCTURE);
}
});
barreOutilsValidation.add(annulerBtn);
barreOutilsValidation.add(creerBouton(i18nC.annuler(), Images.ICONES.annuler(), "AN"));
Button validerBtn = new Button("Valider");
validerBtn.setIcon(Images.ICONES.valider());
validerBtn.addSelectionListener(new SelectionListener<ButtonEvent>() {
barreOutilsValidation.add(creerBouton(i18nC.valider(), Images.ICONES.valider(), "VA"));
structureFormPanneau.setBottomComponent(barreOutilsValidation);
}
private Button creerBouton(String nom, AbstractImagePrototype icone, final String code) {
SelectionListener<ButtonEvent> sl = new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
soumettreFormulaire();
mediateur.clicMenu(MenuApplicationId.STRUCTURE);
if (code.equals("VA")) {
soumettreFormulaire();
clicBoutonvalidation = true;
} else if (code.equals("AP")) {
soumettreFormulaire();
} else if (code.equals("AN")) {
mediateur.clicMenu(MenuApplicationId.STRUCTURE);
} else if (code.equals("RE")) {
if (mode.equals(StructureForm.MODE_MODIFIER)) {
mediateur.afficherFormStructure(identification.getId());
} else {
mediateur.afficherFormStructure(null);
}
}
}
});
barreOutilsValidation.add(validerBtn);
};
structureFormPanneau.setBottomComponent(barreOutilsValidation);
Button bouton = new Button(nom);
bouton.setIcon(icone);
bouton.addSelectionListener(sl);
// Ajout du panneau Formulaire à la disposition générale
add(structureFormPanneau);
return bouton;
}
private void soumettreFormulaire() {
367,18 → 350,19
Info.display("Modification du personnel", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
if (personnelModifie.size() != 0) {
decompteRafraichissementPersonnel++;
mediateur.modifierStructureAPersonne(this, personnelModifie);
}
// Ajout des relations StructureAPersonne
if (personnelAjoute.size() != 0) {
decompteRafraichissementPersonnel++;
mediateur.ajouterStructureAPersonne(this, identification.getId(), personnelAjoute);
}
// Suppression des relations StructureAPersonne
if (personnelSupprime.size() != 0) {
decompteRafraichissementPersonnel++;
mediateur.supprimerStructureAPersonne(this, personnelSupprime);
}
// Nous rechargeons la liste du Personnel
rafraichirPersonnel();
}
}
}
1092,7 → 1076,12
if (mode.equals("MODIF")) {
personne.setIdStructure(identification.getId());
}
// Récupération de l'id du projet de la structure qui servira aussi pour les Personnes crées dans ce formulaire
if (personne.getIdPersonne().equals("") && projetsCombo.getValue() != null) {
personne.setIdProjetPersonne(projetsCombo.getValue().getId());
}
// Gestion de la fonction
String fonction = personne.get("fonction");
if (fonction != null && !fonction.equals("")) {
1213,15 → 1202,11
// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter...
personnelOnglet.setData("acces", true);
 
// Rafraichissement du contenu de la grille du personnel$
rafraichirPersonnel();
// Peuplement du formulaire
peuplerStructurePersonnel();
personnelOnglet.layout();
// Rafraichissement du contenu de la grille du personnel
if (mode.equals(MODE_AJOUTER)) {
rafraichirPersonnel();
}
}
 
});
ContentPanel cp = new ContentPanel();
1478,12 → 1463,11
if (personneExistante != null) {
StructureAPersonne membreDuPersonnel = new StructureAPersonne("", StructureAPersonne.ROLE_EQUIPE, StructureAPersonne.ETAT_AJOUTE);
membreDuPersonnel.setIdPersonne(personneExistante.getId());
membreDuPersonnel.setIdProjetPersonne(personneExistante.getIdProjet());
membreDuPersonnel.setNom(personneExistante.getNom());
membreDuPersonnel.setPrenom(personneExistante.getPrenom());
membreDuPersonnel.setTelephone(personneExistante.getTelephone());
GWT.log(personneExistante.selectionnerCourriel(1), null);
membreDuPersonnel.setCourriel(personneExistante.selectionnerCourriel(1));
GWT.log(membreDuPersonnel.selectionnerCourriel(1), null);
membreDuPersonnel.setSpecialite(personneExistante.afficherSpecialite());
ajouterMembreAGrillePersonnel(membreDuPersonnel);
2071,20 → 2055,29
if (info.getType().equals("modif_structure")) {
Info.display("Modification d'une institution", info.toString());
// Si le bouton Valider a été cliqué, nous affichons la liste des structures
} else if (info.getType().equals("ajout_structure")) {
if (info.getMessage(0) != null && info.getMessage(0).matches("^[0-9]+$")) {
Info.display("Ajout d'une Institution", "L'intitution a bien été ajoutée");
// Suite à la récupération de l'id de l'institution nouvellement ajoutée nous ajoutons le personnel
mediateur.ajouterStructureAPersonne(this, info.toString(), personnelAjoute);
} else {
Info.display("Ajout d'une Institution", info.toString());
}
} else if (info.getType().equals("modif_structure_a_personne")) {
Info.display("Modification du Personnel", info.toString());
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null);
testerLancementRafraichirPersonnel();
} else if (info.getType().equals("suppression_structure_a_personne")) {
Info.display("Suppression du Personnel", info.toString());
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null);
testerLancementRafraichirPersonnel();
} else if (info.getType().equals("ajout_structure_a_personne")) {
Info.display("Ajout du Personnel", info.toString());
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null);
testerLancementRafraichirPersonnel();
} else if (info.getType().equals("selection_structure")) {
Info.display("Modification d'une institution", info.toString());
GWT.log("Mode du formulaire : "+mode, null);
2116,11 → 2109,14
if (info.getDonnee(0) != null) {
personnel = (StructureAPersonneListe) info.getDonnee(0);
 
//GWT.log(personnel.toString(), null);
if (onglets.getSelectedItem().equals(personnelOnglet)) {
peuplerStructurePersonnel();
Info.display("Chargement du Personnel", "ok");
}
peuplerStructurePersonnel();
personnelOnglet.layout();
Info.display("Chargement du Personnel", "ok");
 
// Remise à zéro des modification dans la liste du personnel
personnelModifie = new StructureAPersonneListe();
personnelAjoute = new StructureAPersonneListe();
personnelSupprime = new StructureAPersonneListe();
}
if (info.getDonnee(1) != null) {
Info.display("Debug", info.getDonnee(1).toString());
2261,11 → 2257,27
} catch (Exception e) {
GWT.log("rafraichir()", e);
}
// Si le bouton Valider a été cliqué, nous affichons la liste des structures
if (clicBoutonvalidation) {
mediateur.clicMenu(MenuApplicationId.STRUCTURE);
clicBoutonvalidation = false;
}
}
private void testerLancementRafraichirPersonnel() {
decompteRafraichissementPersonnel--;
if (decompteRafraichissementPersonnel == 0) {
// Nous rechargeons la liste du Personnel
rafraichirPersonnel();
}
}
private void rafraichirPersonnel() {
GWT.log("Rafraichissement!", null);
decompteRafraichissementPersonnel = 0;
if (mode.equals(MODE_MODIFIER)) {
initialiserGrillePersonnelEnModifcation();
initialiserGrillePersonnelEnModification();
} else if (mode.equals(MODE_AJOUTER)) {
initialiserGrillePersonnelEnAjout();
}
2335,9 → 2347,10
ajouterMembreAGrillePersonnel(conservateurDesCollections);
StructureAPersonne directeurDuPersonnel = new StructureAPersonne(StructureAPersonne.FONCTION_DIRECTEUR, StructureAPersonne.ROLE_EQUIPE, StructureAPersonne.ETAT_AJOUTE);
ajouterMembreAGrillePersonnel(directeurDuPersonnel);
personnelOnglet.layout();
}
private void initialiserGrillePersonnelEnModifcation() {
private void initialiserGrillePersonnelEnModification() {
mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE);
}
}