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 { |