11,8 → 11,6 |
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; |
30,31 → 28,22 |
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 { |
|
63,341 → 52,117 |
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() { |
//+-----------------------------------------------------------------------------------------------------------+ |
setLayout(new FitLayout()); |
|
// Initialisation de variables |
setLayout(new FitLayout()); |
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()); |
|
// Création des onglets |
TabPanel onglets = new TabPanel(); |
//tabs.setDeferredRender(false); |
panel.setLayout(new FlowLayout()); |
|
//+-----------------------------------------------------------------------------------------------------------+ |
// Onlget formulaire IDENTIFICATION |
TabItem identificationOnglet = new TabItem(); |
identificationOnglet.setText("Identification"); |
identificationOnglet.setLayout(new FormLayout()); |
LayoutContainer main = new LayoutContainer(); |
main.setLayout(new ColumnLayout()); |
|
// Fieldset IDENTITÉ |
FieldSet fieldSetIdentite = new FieldSet(); |
fieldSetIdentite.setHeading("Identité"); |
fieldSetIdentite.setCollapsible(true); |
fieldSetIdentite.setLayout(layoutFieldset); |
|
// 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 |
TextField<String> nomStructureChp = new TextField<String>(); |
nomStructureChp.setFieldLabel("Nom de la structure"); |
nomStructureChp.setAllowBlank(false); |
nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire."); |
fieldSetIdentite.add(nomStructureChp, new FormData(450, 0)); |
gauche.add(nomStructureChp); |
|
// 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> ihChp = new TextField<String>(); |
ihChp.setFieldLabel("Acronyme Index Herbariorum"); |
ihChp.setToolTip("Herbier de plus de 5000 échantillons"); |
gauche.add(ihChp); |
|
ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>(); |
acronymes.add(InterneValeurListe.getTypeAcronyme()); |
TextField<String> mnhnChp = new TextField<String>(); |
mnhnChp.setFieldLabel("Acronyme MNHN"); |
mnhnChp.setToolTip("Herbier de moins de 5000 échantillons"); |
gauche.add(mnhnChp); |
|
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); |
|
// Combobox |
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.setLabelSeparator(""); |
comboLstpu.setFieldLabel("Statut des structures publiques"); |
comboLstpu.setDisplayField("nom"); |
comboLstpu.setEditable(false); |
comboLstpu.setTriggerAction(TriggerAction.ALL); |
comboLstpu.setStore(magazinLstpu); |
comboLstpu.hide(); |
droiteTs.add(comboLstpu); |
gauche.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.setLabelSeparator(""); |
comboLstpr.setFieldLabel("Statut des structures privées"); |
comboLstpr.setDisplayField("nom"); |
comboLstpr.setEditable(false); |
comboLstpr.setTriggerAction(TriggerAction.ALL); |
comboLstpr.setStore(magazinLstpr); |
comboLstpr.hide(); |
droiteTs.add(comboLstpr); |
gauche.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"); |
fieldSetAdresse.add(adrChp, new FormData(550, 0)); |
gauche.add(adrChp); |
|
TextField<String> cpChp = new TextField<String>(); |
cpChp.setFieldLabel("Code postal"); |
gaucheFdAdresse.add(cpChp); |
gauche.add(cpChp); |
|
TextField<String> villeChp = new TextField<String>(); |
villeChp.setFieldLabel("Ville"); |
droiteFdAdresse.add(villeChp); |
gauche.add(villeChp); |
|
TextField<String> regionChp = new TextField<String>(); |
regionChp.setFieldLabel("Région"); |
gaucheFdAdresse.add(regionChp); |
gauche.add(regionChp); |
|
TextField<String> paysChp = new TextField<String>(); |
paysChp.setFieldLabel("Pays"); |
droiteFdAdresse.add(paysChp); |
gauche.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"); |
gaucheFdTelMail.add(telChp); |
gauche.add(telChp); |
|
TextField<String> faxChp = new TextField<String>(); |
faxChp.setFieldLabel("Fax"); |
droiteFdTelMail.add(faxChp); |
gauche.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"); |
gaucheFdTelMail.add(emailChp); |
gauche.add(emailChp); |
|
TextField<String> urlChp = new TextField<String>(); |
urlChp.setFieldLabel("Site web"); |
droiteFdTelMail.add(urlChp); |
gauche.add(urlChp); |
|
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()); |
|
TextField<String> dateFondationChp = new TextField<String>(); |
dateFondationChp.setFieldLabel("Date de fondation"); |
gauche.add(dateFondationChp); |
|
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); |
|
// Formulaire DROITE |
RadioGroup group = new RadioGroup(); |
group.setFieldLabel("Type"); |
Radio structureRadio = new Radio(); |
407,11 → 172,12 |
Radio particulierRadio = new Radio(); |
particulierRadio.setBoxLabel("Particulier"); |
group.add(particulierRadio); |
typeConteneur.add(group); |
panel.add(typeConteneur); |
droite.add(group); |
|
// Ajout des onglets |
panel.add(onglets); |
// Ajout des colonnes |
main.add(gauche, new ColumnData(.5)); |
main.add(droite, new ColumnData(.5)); |
panel.add(main); |
|
// Ajout des boutons au panneau formulaire |
Button annulerBtn = new Button("Annuler"); |
451,5 → 217,4 |
} |
} |
} |
|
} |