Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 99 → Rev 100

/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java
11,6 → 11,8
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.InterneValeur;
import org.tela_botanica.client.modeles.InterneValeurListe;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureListe;
import org.tela_botanica.client.modeles.Valeur;
28,22 → 30,31
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.extjs.gxt.ui.client.data.PagingLoader;
import com.extjs.gxt.ui.client.data.ScriptTagProxy;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.button.Button;
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.FieldSet;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Radio;
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
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.DateField.DateFieldMessages;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
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.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
 
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
 
52,117 → 63,341
private ComboBox<Valeur> comboLstpr = null;
private ListStore<Valeur> magazinLstpu = null;
private ComboBox<Valeur> comboLstpu = null;
private ComboBox<InterneValeur> comboAcronyme = null;
private TextField<String> ihChp = null;
private TextField<String> mnhnChp = null;
private ComboBox<InterneValeur> comboTypeStructure = null;
public FormStructureVue() {
//+-----------------------------------------------------------------------------------------------------------+
// Initialisation de variables
setLayout(new FitLayout());
// Initialisation de variables
coelModele = Registry.get(RegistreId.MODELE);
// Création de la disposition : FIELDSET
FormLayout layoutFieldset = new FormLayout();
layoutFieldset.setLabelWidth(200);
layoutFieldset.setPadding(4);
 
//+-----------------------------------------------------------------------------------------------------------+
// Création du panneau Formulaire
FormPanel panel = new FormPanel();
panel.setFrame(true);
panel.setFrame(true);
panel.setIconStyle("icone-form-ajouter");
panel.setCollapsible(false);
panel.setHeading("Ajout d'une institution");
panel.setButtonAlign(HorizontalAlignment.CENTER);
panel.setLayout(new FlowLayout());
panel.setLayout(new FlowLayout());
 
// Création des onglets
TabPanel onglets = new TabPanel();
//tabs.setDeferredRender(false);
LayoutContainer main = new LayoutContainer();
main.setLayout(new ColumnLayout());
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire IDENTIFICATION
TabItem identificationOnglet = new TabItem();
identificationOnglet.setText("Identification");
identificationOnglet.setLayout(new FormLayout());
 
// Création de la dispostion : GAUCHE
LayoutContainer gauche = new LayoutContainer();
FormLayout layout = new FormLayout();
layout.setLabelAlign(LabelAlign.LEFT);
layout.setLabelWidth(200);
gauche.setLayout(layout);
 
// Création de la dispostion : DROITE
LayoutContainer droite = new LayoutContainer();
layout = new FormLayout();
layout.setLabelAlign(LabelAlign.LEFT);
droite.setLayout(layout);
 
// Formulaire GAUCHE
// Fieldset IDENTITÉ
FieldSet fieldSetIdentite = new FieldSet();
fieldSetIdentite.setHeading("Identité");
fieldSetIdentite.setCollapsible(true);
fieldSetIdentite.setLayout(layoutFieldset);
TextField<String> nomStructureChp = new TextField<String>();
nomStructureChp.setFieldLabel("Nom de la structure");
nomStructureChp.setAllowBlank(false);
gauche.add(nomStructureChp);
nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire.");
fieldSetIdentite.add(nomStructureChp, new FormData(450, 0));
TextField<String> ihChp = new TextField<String>();
ihChp.setFieldLabel("Acronyme Index Herbariorum");
ihChp.setToolTip("Herbier de plus de 5000 échantillons");
gauche.add(ihChp);
// Création du sous-formulaire : Acronyme
LayoutContainer ligne = new LayoutContainer();
ligne.setLayout(new ColumnLayout());
LayoutContainer gauche = new LayoutContainer();
FormLayout layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(200);
layoutGauche.setPadding(0);
gauche.setLayout(layoutGauche);
LayoutContainer droite = new LayoutContainer();
FormLayout layoutDroite = new FormLayout();
layoutDroite.setLabelWidth(0);
layoutDroite.setPadding(0);
droite.setLayout(layoutDroite);
TextField<String> mnhnChp = new TextField<String>();
mnhnChp.setFieldLabel("Acronyme MNHN");
mnhnChp.setToolTip("Herbier de moins de 5000 échantillons");
gauche.add(mnhnChp);
ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>();
acronymes.add(InterneValeurListe.getTypeAcronyme());
// Combobox
comboAcronyme = new ComboBox<InterneValeur>();
comboAcronyme.setEmptyText("Sélectioner un type d'acronyme...");
comboAcronyme.setFieldLabel("Acronymes");
comboAcronyme.setDisplayField("nom");
comboAcronyme.setStore(acronymes);
comboAcronyme.setEditable(false);
comboAcronyme.setTypeAhead(true);
comboAcronyme.setTriggerAction(TriggerAction.ALL);
comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
String acronymeAbr = se.getSelectedItem().getAbr();
if (acronymeAbr.equals("IH")) {
mnhnChp.hide();
ihChp.show();
} else if (acronymeAbr.equals("MNHN")) {
ihChp.hide();
mnhnChp.show();
} else if (acronymeAbr.equals("")) {
ihChp.hide();
mnhnChp.hide();
comboAcronyme.clearSelections();
}
}
});
gauche.add(comboAcronyme);
ihChp = new TextField<String>();
//ihChp.setEmptyText("Index Herbariorum");
ihChp.setLabelSeparator("");
ihChp.setToolTip("Index Herbariorum : herbier de plus de 5000 échantillons");
ihChp.hide();
droite.add(ihChp);
mnhnChp = new TextField<String>();
//mnhnChp.setEmptyText("MNHN");
mnhnChp.setLabelSeparator("");
mnhnChp.setToolTip("Acronyme MNHN : herbier de moins de 5000 échantillons");
mnhnChp.hide();
droite.add(mnhnChp);
ligne.add(gauche, new ColumnData(0.5));
ligne.add(droite, new ColumnData(0.5));
fieldSetIdentite.add(ligne);
// Création du sous-formulaire : Type de Structure
LayoutContainer ligneTs = new LayoutContainer();
ligneTs.setLayout(new ColumnLayout());
LayoutContainer gaucheTs = new LayoutContainer();
layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(200);
layoutGauche.setPadding(0);
gaucheTs.setLayout(layoutGauche);
LayoutContainer droiteTs = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelWidth(0);
layoutDroite.setPadding(0);
droiteTs.setLayout(layoutDroite);
ListStore<InterneValeur> typesStructure = new ListStore<InterneValeur>();
typesStructure.add(InterneValeurListe.getTypeStructure());
this.comboTypeStructure = new ComboBox<InterneValeur>();
comboTypeStructure.setEmptyText("Sélectioner un type de structure...");
comboTypeStructure.setFieldLabel("Statut des structures");
comboTypeStructure.setDisplayField("nom");
comboTypeStructure.setStore(typesStructure);
comboTypeStructure.setEditable(false);
comboTypeStructure.setTypeAhead(true);
comboTypeStructure.setTriggerAction(TriggerAction.ALL);
comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
String typeAbr = se.getSelectedItem().getAbr();
if (typeAbr.equals("stpu")) {
comboLstpr.hide();
comboLstpu.show();
} else if (typeAbr.equals("stpr")) {
comboLstpu.hide();
comboLstpr.show();
} else if (typeAbr.equals("")) {
comboLstpr.hide();
comboLstpu.hide();
comboTypeStructure.clearSelections();
}
}
});
gaucheTs.add(comboTypeStructure);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
magazinLstpu = new ListStore<Valeur>();
magazinLstpu.add(new ArrayList<Valeur>());
comboLstpu = new ComboBox<Valeur>();
comboLstpu.setFieldLabel("Statut des structures publiques");
//comboLstpu.setFieldLabel("Statut des structures publiques");
comboLstpu.setLabelSeparator("");
comboLstpu.setDisplayField("nom");
comboLstpu.setEditable(false);
comboLstpu.setTriggerAction(TriggerAction.ALL);
comboLstpu.setStore(magazinLstpu);
gauche.add(comboLstpu);
comboLstpu.hide();
droiteTs.add(comboLstpu);
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
magazinLstpr = new ListStore<Valeur>();
magazinLstpr.add(new ArrayList<Valeur>());
comboLstpr = new ComboBox<Valeur>();
comboLstpr.setFieldLabel("Statut des structures privées");
//comboLstpr.setFieldLabel("Statut des structures privées");
comboLstpr.setLabelSeparator("");
comboLstpr.setDisplayField("nom");
comboLstpr.setEditable(false);
comboLstpr.setTriggerAction(TriggerAction.ALL);
comboLstpr.setStore(magazinLstpr);
gauche.add(comboLstpr);
comboLstpr.hide();
droiteTs.add(comboLstpr);
ligneTs.add(gaucheTs, new ColumnData(0.5));
ligneTs.add(droiteTs, new ColumnData(0.5));
fieldSetIdentite.add(ligneTs);
DateField dateFondationChp = new DateField();
dateFondationChp.setFieldLabel("Date de fondation");
dateFondationChp.getPropertyEditor().getFormat();
dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
dateFondationChp.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
fieldSetIdentite.add(dateFondationChp);
identificationOnglet.add(fieldSetIdentite);
// Fieldset ADRESSE
LayoutContainer principalFdAdresse = new LayoutContainer();
principalFdAdresse.setLayout(new ColumnLayout());
LayoutContainer gaucheFdAdresse = new LayoutContainer();
layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(100);
layoutGauche.setPadding(0);
gaucheFdAdresse.setLayout(layoutGauche);
LayoutContainer droiteFdAdresse = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelAlign(LabelAlign.LEFT);
layoutDroite.setLabelWidth(100);
layoutDroite.setPadding(0);
droiteFdAdresse.setLayout(layoutDroite);
FieldSet fieldSetAdresse = new FieldSet();
fieldSetAdresse.setHeading("Adresse");
fieldSetAdresse.setCollapsible(true);
layoutFieldset = new FormLayout();
layoutFieldset.setLabelWidth(100);
layoutFieldset.setPadding(4);
fieldSetAdresse.setLayout(layoutFieldset);
TextField<String> adrChp = new TextField<String>();
adrChp.setFieldLabel("Adresse");
gauche.add(adrChp);
fieldSetAdresse.add(adrChp, new FormData(550, 0));
TextField<String> cpChp = new TextField<String>();
cpChp.setFieldLabel("Code postal");
gauche.add(cpChp);
gaucheFdAdresse.add(cpChp);
TextField<String> villeChp = new TextField<String>();
villeChp.setFieldLabel("Ville");
gauche.add(villeChp);
droiteFdAdresse.add(villeChp);
TextField<String> regionChp = new TextField<String>();
regionChp.setFieldLabel("Région");
gauche.add(regionChp);
gaucheFdAdresse.add(regionChp);
TextField<String> paysChp = new TextField<String>();
paysChp.setFieldLabel("Pays");
gauche.add(paysChp);
droiteFdAdresse.add(paysChp);
principalFdAdresse.add(gaucheFdAdresse, new ColumnData(.5));
principalFdAdresse.add(droiteFdAdresse, new ColumnData(.5));
fieldSetAdresse.add(principalFdAdresse);
identificationOnglet.add(fieldSetAdresse);
// Fieldset TÉLÉPHONE et EMAIL
LayoutContainer principalFdTelMail = new LayoutContainer();
principalFdTelMail.setLayout(new ColumnLayout());
LayoutContainer gaucheFdTelMail = new LayoutContainer();
layoutGauche = new FormLayout();
layoutGauche.setLabelAlign(LabelAlign.LEFT);
layoutGauche.setLabelWidth(100);
layoutGauche.setPadding(0);
gaucheFdTelMail.setLayout(layoutGauche);
LayoutContainer droiteFdTelMail = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelAlign(LabelAlign.LEFT);
layoutDroite.setLabelWidth(100);
layoutDroite.setPadding(0);
droiteFdTelMail.setLayout(layoutDroite);
FieldSet fieldSetTelMail = new FieldSet();
fieldSetTelMail.setHeading("Communication");
fieldSetTelMail.setCollapsible(true);
layoutFieldset = new FormLayout();
layoutFieldset.setLabelWidth(200);
layoutFieldset.setPadding(4);
fieldSetTelMail.setLayout(layoutFieldset);
TextField<String> telChp = new TextField<String>();
telChp.setFieldLabel("Téléphone");
gauche.add(telChp);
gaucheFdTelMail.add(telChp);
TextField<String> faxChp = new TextField<String>();
faxChp.setFieldLabel("Fax");
gauche.add(faxChp);
droiteFdTelMail.add(faxChp);
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");
gauche.add(emailChp);
gaucheFdTelMail.add(emailChp);
TextField<String> urlChp = new TextField<String>();
urlChp.setFieldLabel("Site web");
gauche.add(urlChp);
droiteFdTelMail.add(urlChp);
TextField<String> dateFondationChp = new TextField<String>();
dateFondationChp.setFieldLabel("Date de fondation");
gauche.add(dateFondationChp);
principalFdTelMail.add(gaucheFdTelMail, new ColumnData(.5));
principalFdTelMail.add(droiteFdTelMail, new ColumnData(.5));
fieldSetTelMail.add(principalFdTelMail);
identificationOnglet.add(fieldSetTelMail);
 
onglets.add(identificationOnglet);
 
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire PERSONNEL
TabItem personnelOnglet = new TabItem();
personnelOnglet.setText("Personnel");
personnelOnglet.setLayout(new FormLayout());
 
// Formulaire DROITE
onglets.add(personnelOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire CONSERVATION
TabItem conservationOnglet = new TabItem();
conservationOnglet.setText("Conservation");
conservationOnglet.setLayout(new FormLayout());
 
onglets.add(conservationOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire VALORISATION
TabItem valorisationOnglet = new TabItem();
valorisationOnglet.setText("Valorisation");
valorisationOnglet.setLayout(new FormLayout());
 
onglets.add(valorisationOnglet);
//+-----------------------------------------------------------------------------------------------------------+
// Gestion du FORMULAIRE GÉNÉRAL
// Ajout du type
LayoutContainer typeConteneur = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelWidth(50);
layoutDroite.setPadding(5);
typeConteneur.setLayout(layoutDroite);
RadioGroup group = new RadioGroup();
group.setFieldLabel("Type");
Radio structureRadio = new Radio();
172,12 → 407,11
Radio particulierRadio = new Radio();
particulierRadio.setBoxLabel("Particulier");
group.add(particulierRadio);
droite.add(group);
typeConteneur.add(group);
panel.add(typeConteneur);
// Ajout des colonnes
main.add(gauche, new ColumnData(.5));
main.add(droite, new ColumnData(.5));
panel.add(main);
// Ajout des onglets
panel.add(onglets);
// Ajout des boutons au panneau formulaire
Button annulerBtn = new Button("Annuler");
217,4 → 451,5
}
}
}
}