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); |
} |
} |