Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 68 → Rev 69

/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java
New file
0,0 → 1,151
package org.tela_botanica.client.vues;
 
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
 
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
import com.extjs.gxt.ui.client.data.BasePagingLoader;
import com.extjs.gxt.ui.client.data.JsonReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelType;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
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.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
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.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.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.FormLayout;
 
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
 
public FormStructureVue() {
setLayout(new FitLayout());
// Création du panneau Formulaire
FormPanel panel = new FormPanel();
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());
LayoutContainer main = new LayoutContainer();
main.setLayout(new ColumnLayout());
 
// 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);
gauche.add(nomStructureChp);
TextField<String> ihChp = new TextField<String>();
ihChp.setFieldLabel("Acronyme Index Herbariorum");
ihChp.setToolTip("Herbier de plus de 5000 échantillons");
gauche.add(ihChp);
TextField<String> mnhnChp = new TextField<String>();
mnhnChp.setFieldLabel("Acronyme MNHN");
mnhnChp.setToolTip("Herbier de moins de 5000 échantillons");
gauche.add(mnhnChp);
// Combobox
String url = "http://localhost/jrest/CoelValeurListe/ab/12";
ScriptTagProxy<Object, PagingLoadResult<ModelData>> proxy = new ScriptTagProxy<Object, PagingLoadResult<ModelData>>(url);
ModelType type = new ModelType();
type.root = "topics";
type.totalName = "totalCount";
type.addField("cmlv_id_valeur", "id");
type.addField("cmlv_ce_parent", "ce_parent");
type.addField("cmlv_ce_projet", "ce_projet");
type.addField("cmlv_nom", "nom");
type.addField("cmlv_abreviation", "abreviation");
type.addField("cmlv_description", "description");
type.addField("cmlv_ce_meta", "ce_meta");
JsonReader<PagingLoadConfig> reader = new JsonReader<PagingLoadConfig>(type) {
protected ListLoadResult newLoadResult(PagingLoadConfig loadConfig, List<ModelData> models) {
PagingLoadResult result = new BasePagingLoadResult(models, loadConfig.getOffset(),
loadConfig.getLimit());
return result;
}
};
PagingLoader loader = new BasePagingLoader(proxy, reader);
ListStore<ModelData> store = new ListStore<ModelData>(loader);
ComboBox<ModelData> combo = new ComboBox<ModelData>();
combo.setFieldLabel("Statut des structures publiques");
combo.setDisplayField("nom");
combo.setItemSelector("div.search-item");
//combo.setTemplate(getTemplate());
combo.setStore(store);
combo.setHideTrigger(false);
combo.setPageSize(5);
gauche.add(combo);
// Formulaire DROITE
RadioGroup group = new RadioGroup();
group.setFieldLabel("Type");
Radio structureRadio = new Radio();
structureRadio.setBoxLabel("Structure");
structureRadio.setValue(true);
group.add(structureRadio);
Radio particulierRadio = new Radio();
particulierRadio.setBoxLabel("Particulier");
group.add(particulierRadio);
droite.add(group);
// 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");
panel.addButton(annulerBtn);
Button validerBtn = new Button("Valider");
panel.addButton(validerBtn);
// Ajout du panneau Formulaire à la disposition générale
add(panel);
}
 
public void rafraichir(Object nouvelleDonnees) {
// TODO Auto-generated method stub
}
 
}