Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 118 → Rev 119

/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java
4,6 → 4,7
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.Modele;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.i18n.Constantes;
12,6 → 13,7
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.Structure;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
 
19,8 → 21,6
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.data.ChangeListener;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
38,6 → 38,7
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
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.Field;
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;
66,17 → 67,15
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.json.client.JSONArray;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RadioButton;
 
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
private Constantes i18nC = null;
private Mediateur mediateur = null;
private Modele modele = null ;
 
private FormPanel structureFormPanneau;
private Modele coelModele = null ;
private ListStore<Valeur> magazinLstpr = null;
private ComboBox<Valeur> comboLstpr = null;
private ListStore<Valeur> magazinLstpu = null;
116,11 → 115,11
private ContentPanel actionTrukCp = null;
private CheckBoxGroup actionTrukCacGrpChp = null;
private ContentPanel autreCollectionTrukCp = null;
private CheckBoxGroup trukAutreCollectionCacGrpChp = null;
private CheckBoxGroup autreCollectionTrukCacGrpChp = null;
private ContentPanel provenanceRechercheTrukCp = null;
private CheckBoxGroup provenanceRechercheTrukCacGrpChp = null;
private CheckBoxGroup typeRechercheTrukCacGrpChp = null;
private ContentPanel TypeRechercheTrukCp = null;
private ContentPanel typeRechercheTrukCp = null;
private TextField<String> futureActionChp = null;
private TextField<String> sansMotifAccesChp = null;
private TextField<String> avecMotifAccesChp = null;
128,6 → 127,19
private RadioGroup traitementAcquisitionMarkRGrpChp = null;
private LabelField traitementAcquisitionMarkLabel = null;
private RadioGroup materielConservationCeRGrpChp = null;
 
private RadioGroup actionMarkRGrpChp;
private TextField<String> nomStructureChp;
private DateField dateFondationChp;
private TextField<String> adrChp;
private TextField<String> cpChp;
private TextField<String> villeChp;
private TextField<String> regionChp;
private TextField<String> paysChp;
private TextField<String> telChp;
private TextField<String> faxChp;
private TextField<String> emailChp;
private TextField<String> urlChp;
public FormStructureVue() {
//+-----------------------------------------------------------------------------------------------------------+
134,17 → 146,18
// Initialisation de variables
i18nC = GWT.create(Constantes.class);
setLayout(new FitLayout());
coelModele = Registry.get(RegistreId.MODELE);
modele = Registry.get(RegistreId.MODELE);
mediateur = Registry.get(RegistreId.MEDIATEUR);
//+-----------------------------------------------------------------------------------------------------------+
// Création du panneau du FORMULAIRE GÉNÉRAL
FormPanel panel = new FormPanel();
panel.setFrame(true);
panel.setIconStyle("icone-form-ajouter");
panel.setCollapsible(false);
panel.setHeading(i18nC.titreAjoutFormStructurePanneau());
panel.setButtonAlign(HorizontalAlignment.CENTER);
panel.setLayout(new FlowLayout());
structureFormPanneau = new FormPanel();
structureFormPanneau.setFrame(true);
structureFormPanneau.setIconStyle("icone-form-ajouter");
structureFormPanneau.setCollapsible(false);
structureFormPanneau.setHeading(i18nC.titreAjoutFormStructurePanneau());
structureFormPanneau.setButtonAlign(HorizontalAlignment.CENTER);
structureFormPanneau.setLayout(new FlowLayout());
 
//+-----------------------------------------------------------------------------------------------------------+
// Création des onglets
167,24 → 180,58
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire VALORISATION
onglets.add(creerOngletValorisation());
onglets.setSelection(valorisationOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Gestion du FORMULAIRE GÉNÉRAL
// Ajout des onglets
panel.add(onglets);
// Sélection de l'onglet par défaut
//onglets.setSelection(valorisationOnglet);
// Ajout des onglets au formulaire général
structureFormPanneau.add(onglets);
// Ajout des boutons au panneau formulaire
Button annulerBtn = new Button("Annuler");
panel.addButton(annulerBtn);
structureFormPanneau.addButton(annulerBtn);
Button validerBtn = new Button("Valider");
panel.addButton(validerBtn);
validerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
 
@Override
public void componentSelected(ComponentEvent ce) {
soumettreFormulaire();
}
});
structureFormPanneau.addButton(validerBtn);
// Ajout du panneau Formulaire à la disposition générale
add(panel);
add(structureFormPanneau);
}
private void soumettreFormulaire() {
GWT.log("Soumission du formulaire", null);
ajouterStructure();
}
private void ajouterStructure() {
Structure structure = new Structure();
structure.setNom(nomStructureChp.getValue());
structure.setDateFondation(DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss").format(dateFondationChp.getValue()));
structure.setAdresse(adrChp.getValue());
structure.setCodePostal(cpChp.getValue());
structure.setVille(villeChp.getValue());
structure.setRegion(regionChp.getValue());
structure.setPays(paysChp.getValue());
structure.setTelephone(telChp.getValue());
structure.setFax(faxChp.getValue());
structure.setCourriel(emailChp.getValue());
structure.setUrl(urlChp.getValue());
mediateur.ajouterStructure(this, structure);
}
private TabItem creerOngletValorisation() {
valorisationOnglet = new TabItem();
valorisationOnglet.setText("Valorisation");
191,10 → 238,11
valorisationOnglet.setScrollMode(Scroll.AUTO);
valorisationOnglet.setLayout(creerFormLayout(650, LabelAlign.TOP, null));
RadioGroup actionMarkRGrpChp = creerChoixUniqueRadioGroupe("action_mark", "ouiNon");
actionMarkRGrpChp = creerChoixUniqueRadioGroupe("action_mark", "ouiNon");
actionMarkRGrpChp.setFieldLabel("Avez-vous réalisé des actions de valorisation de vos collections botaniques ou avez-vous été sollicités pour la valorisation de ces collections ?");
valorisationOnglet.add(actionMarkRGrpChp);
actionTrukCp = creerChoixMultipleCp("actionValorisation");
actionTrukCp.hide();
actionTrukCacGrpChp = new CheckBoxGroup();
206,8 → 254,8
valorisationOnglet.add(publicationChp);
autreCollectionTrukCp = creerChoixMultipleCp("autreCollection");
trukAutreCollectionCacGrpChp = new CheckBoxGroup();
trukAutreCollectionCacGrpChp.setFieldLabel("L'organisme dispose-t-il d'autres collections (permettant une valorisation pluridisciplinaire) ?");
autreCollectionTrukCacGrpChp = new CheckBoxGroup();
autreCollectionTrukCacGrpChp.setFieldLabel("L'organisme dispose-t-il d'autres collections (permettant une valorisation pluridisciplinaire) ?");
valorisationOnglet.add(autreCollectionTrukCp);
RadioGroup futureActionMarkRGrpChp = creerChoixUniqueRadioGroupe("future_action_mark", "ouiNon");
229,11 → 277,11
provenanceRechercheTrukCacGrpChp.setFieldLabel("Si oui, par des chercheurs (professionnels ou amateurs) de quelle provenance ?");
valorisationOnglet.add(provenanceRechercheTrukCp);
TypeRechercheTrukCp = creerChoixMultipleCp("typeRecherche");
TypeRechercheTrukCp.hide();
typeRechercheTrukCp = creerChoixMultipleCp("typeRecherche");
typeRechercheTrukCp.hide();
typeRechercheTrukCacGrpChp = new CheckBoxGroup();
typeRechercheTrukCacGrpChp.setFieldLabel("Et pour quelles recherches ?");
valorisationOnglet.add(TypeRechercheTrukCp);
valorisationOnglet.add(typeRechercheTrukCp);
RadioGroup sansMotifAccesMarkRGrpChp = creerChoixUniqueRadioGroupe("sans_motif_acces_mark", "ouiNon");
sansMotifAccesMarkRGrpChp.setFieldLabel("Peut-on consulter vos collections botaniques sans motif de recherches scientifiques ?");
409,7 → 457,7
configs.add(sm.getColumn());
ColumnConfig column = new ColumnConfig("ce_truk_fonction", "Fonction", 100);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("fonction"));
modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("fonction"));
magazinLiFonction = new ListStore<Valeur>();
magazinLiFonction.add(new ArrayList<Valeur>());
479,7 → 527,7
column.setEditor(new CellEditor(emailChp));
configs.add(column);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("statut"));
modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("statut"));
magazinLiStatut = new ListStore<Valeur>();
magazinLiStatut.add(new ArrayList<Valeur>());
600,7 → 648,7
fieldSetIdentite.setCollapsible(true);
fieldSetIdentite.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
TextField<String> nomStructureChp = new TextField<String>();
nomStructureChp = new TextField<String>();
nomStructureChp.setFieldLabel("Nom de la structure");
nomStructureChp.setAllowBlank(false);
nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire.");
702,7 → 750,7
});
gaucheTs.add(comboTypeStructure);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
magazinLstpu = new ListStore<Valeur>();
magazinLstpu.add(new ArrayList<Valeur>());
comboLstpu = new ComboBox<Valeur>();
715,7 → 763,7
comboLstpu.hide();
droiteTs.add(comboLstpu);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
magazinLstpr = new ListStore<Valeur>();
magazinLstpr.add(new ArrayList<Valeur>());
comboLstpr = new ComboBox<Valeur>();
732,7 → 780,7
ligneTs.add(droiteTs, new ColumnData(0.5));
fieldSetIdentite.add(ligneTs);
DateField dateFondationChp = new DateField();
dateFondationChp = new DateField();
dateFondationChp.setFieldLabel("Date de fondation");
dateFondationChp.getPropertyEditor().getFormat();
dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
758,23 → 806,23
fieldSetAdresse.setLayout(creerFormLayout(100, LabelAlign.LEFT, 4));
TextField<String> adrChp = new TextField<String>();
adrChp = new TextField<String>();
adrChp.setFieldLabel("Adresse");
fieldSetAdresse.add(adrChp, new FormData(550, 0));
TextField<String> cpChp = new TextField<String>();
cpChp = new TextField<String>();
cpChp.setFieldLabel("Code postal");
gaucheFdAdresse.add(cpChp);
TextField<String> villeChp = new TextField<String>();
villeChp = new TextField<String>();
villeChp.setFieldLabel("Ville");
droiteFdAdresse.add(villeChp);
TextField<String> regionChp = new TextField<String>();
regionChp = new TextField<String>();
regionChp.setFieldLabel("Région");
gaucheFdAdresse.add(regionChp);
TextField<String> paysChp = new TextField<String>();
paysChp = new TextField<String>();
paysChp.setFieldLabel("Pays");
droiteFdAdresse.add(paysChp);
800,20 → 848,20
fieldSetTelMail.setLayout(creerFormLayout(200, LabelAlign.LEFT, 4));
TextField<String> telChp = new TextField<String>();
telChp = new TextField<String>();
telChp.setFieldLabel("Téléphone");
gaucheFdTelMail.add(telChp);
TextField<String> faxChp = new TextField<String>();
faxChp = new TextField<String>();
faxChp.setFieldLabel("Fax");
droiteFdTelMail.add(faxChp);
TextField<String> emailChp = new 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 = new TextField<String>();
urlChp.setFieldLabel("Site web");
droiteFdTelMail.add(urlChp);
857,13 → 905,13
// NOTE : il semblerait qu'il faille aussi utiliser setName() pour éviter tout problème...
RadioGroup radioGroup = new RadioGroup(groupeNom);
radioGroup.setName(groupeNom);
 
if (! listeNom.equals("ouiNon")) {
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
} else {
ValeurListe ouiNonListe = new ValeurListe();
ouiNonListe.ajouter(new Valeur("oui", "Oui", "NULL", "NULL"));
ouiNonListe.ajouter(new Valeur("non", "Non", "NULL", "NULL"));
ouiNonListe.ajouter(new Valeur("000999", "Oui", "NULL", "NULL"));
ouiNonListe.ajouter(new Valeur("000998", "Non", "NULL", "NULL"));
creerChoixUniqueBoutonRadio(radioGroup, ouiNonListe);
}
875,27 → 923,27
Valeur val = listeValeurs.get(it.next());
Radio radioBtn = new Radio();
//radioBtn.setName(radioGroupe.getName().replace("_grp", ""));
radioGroupe.add(radioBtn);
radioBtn.setName(radioGroupe.getName().replace("_grp", ""));
//radioBtn.setId(val.getId()+"_"+radioBtn.getName());
radioBtn.setBoxLabel(val.getNom());
radioBtn.addListener(Events.Change, new Listener<BaseEvent>() {
radioBtn.addListener(Events.Change, new Listener<ComponentEvent>() {
public void handleEvent(BaseEvent be) {
Window.alert(((Radio) be.source).getId());
public void handleEvent(ComponentEvent be) {
//Window.alert(((Radio) be.source).getId());
afficherChampSupplementaire(((Radio) be.source));
}
});
 
if (! val.getDescription().equals("NULL")) {
radioBtn.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
}
radioGroupe.add(radioBtn);
}
}
private void afficherChampSupplementaire(Radio radioBtn) {
//GWT.log("Nom : "+radioBtn.getGroup().getName(), null);
//GWT.log("Nom btn : "+radioBtn.getName()+" - Nom group : "+radioBtn.getGroup().getName(), null);
// Valeur du bouton radio déclenchant l'affichage des composants cachés
String valeurPourAfficher = "oui";
912,7 → 960,7
composants.add(avecMotifAccesChp);
} else if (radioGroupeNom.equals("recherche_mark_grp")) {
composants.add(provenanceRechercheTrukCp);
composants.add(TypeRechercheTrukCp);
composants.add(typeRechercheTrukCp);
} else if (radioGroupeNom.equals("formation_mark_grp")) {
composants.add(formationChp);
} else if (radioGroupeNom.equals("collection_commune_mark_grp")) {
935,11 → 983,11
// Nous affichons/cachons les composant de la liste
final int tailleMax = composants.size();
//GWT.log("Id : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax, null);
Window.alert("Radio grp nom : "+radioGroupeNom+" - Id btn : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax);
//Window.alert("Radio grp nom : "+radioGroupeNom+" - Id btn : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax);
for (int i = 0; i < tailleMax; i++) {
// En fonction du type de bouton cliquer, on affiche ou cache les champs
String type = radioBtn.getBoxLabel().toLowerCase();
GWT.log(type, null);
//GWT.log(type, null);
if (radioBtn.getValue() == true) {
if (type.equals(valeurPourAfficher)) {
((Component) composants.get(i)).show();
963,7 → 1011,7
* @return
*/
private ContentPanel creerChoixMultipleCp(String listeNom) {
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
modele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeNom));
ContentPanel cp = new ContentPanel();
cp.setLayout(creerFormLayout(650, LabelAlign.TOP, 0));
cp.setHeaderVisible(false);
999,11 → 1047,10
ContentPanel autreCp = new ContentPanel();
autreCp.setLayout(creerFormLayout(75, LabelAlign.TOP, 0));
autreCp.setHeaderVisible(false);
TextField<String> autreTrukLocalStockageChp = new TextField<String>();
autreTrukLocalStockageChp.setFieldLabel("Autre");
autreTrukLocalStockageChp.setLabelStyle("font-weight:normal;");
autreTrukLocalStockageChp.setWidth(300);
autreCp.add(autreTrukLocalStockageChp);
TextField<String> autreChp = new TextField<String>();
autreChp.setFieldLabel("Autre");
autreChp.setLabelStyle("font-weight:normal;");
autreCp.add(autreChp);
cp.add(autreCp);
}
1011,7 → 1058,10
}
public void rafraichir(Object nouvelleDonnees) {
if (nouvelleDonnees instanceof ValeurListe) {
if (nouvelleDonnees instanceof Structure) {
Structure str = (Structure) nouvelleDonnees;
GWT.log("Ajout des données : "+str.get("messages") , null);
} else if (nouvelleDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;
List<Valeur> liste = new ArrayList<Valeur>();
1056,8 → 1106,8
creerChoixMultipleCac(collectionAutreTrukCp, collectionAutreTrukCacGrpChp, listeValeurs, true);
}
if (autreCollectionTrukCp.getItemByItemId("autreCollectionTrukCacGrpChp") == null) {
trukAutreCollectionCacGrpChp.setId("autreCollectionTrukCacGrpChp");
creerChoixMultipleCac(autreCollectionTrukCp, trukAutreCollectionCacGrpChp, listeValeurs, true);
autreCollectionTrukCacGrpChp.setId("autreCollectionTrukCacGrpChp");
creerChoixMultipleCac(autreCollectionTrukCp, autreCollectionTrukCacGrpChp, listeValeurs, true);
}
}
if (listeValeurs.getId().equals(config.getListeId("opRestau"))) {
1089,7 → 1139,7
creerChoixMultipleCac(provenanceRechercheTrukCp, provenanceRechercheTrukCacGrpChp, listeValeurs, true);
}
if (listeValeurs.getId().equals(config.getListeId("typeRecherche"))) {
creerChoixMultipleCac(TypeRechercheTrukCp, typeRechercheTrukCacGrpChp, listeValeurs, true);
creerChoixMultipleCac(typeRechercheTrukCp, typeRechercheTrukCacGrpChp, listeValeurs, true);
}
//GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
} else {
/trunk/src/org/tela_botanica/client/vues/StructureDetailPanneauVue.java
58,7 → 58,7
 
Params contenuParams = new Params();
contenuParams.add(structureDescription);
contenuParams.add(structure.getAdresse01());
contenuParams.add(structure.getAdresse());
contenuParams.add(structure.getCodePostal());
contenuParams.add(structure.getVille());
contenuParams.add(structure.getRegion());