Subversion Repositories eFlore/Applications.coel

Rev

Rev 91 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
69 jpm 1
package org.tela_botanica.client.vues;
2
 
3
import java.util.Collections;
4
import java.util.Comparator;
5
import java.util.List;
6
 
7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
 
9
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
10
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
11
import com.extjs.gxt.ui.client.data.BasePagingLoader;
12
import com.extjs.gxt.ui.client.data.JsonReader;
13
import com.extjs.gxt.ui.client.data.ListLoadResult;
14
import com.extjs.gxt.ui.client.data.ModelData;
15
import com.extjs.gxt.ui.client.data.ModelType;
16
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
17
import com.extjs.gxt.ui.client.data.PagingLoadResult;
18
import com.extjs.gxt.ui.client.data.PagingLoader;
19
import com.extjs.gxt.ui.client.data.ScriptTagProxy;
20
import com.extjs.gxt.ui.client.store.ListStore;
21
import com.extjs.gxt.ui.client.widget.LayoutContainer;
22
import com.extjs.gxt.ui.client.widget.button.Button;
23
import com.extjs.gxt.ui.client.widget.form.ComboBox;
24
import com.extjs.gxt.ui.client.widget.form.FormPanel;
25
import com.extjs.gxt.ui.client.widget.form.Radio;
26
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
27
import com.extjs.gxt.ui.client.widget.form.TextField;
28
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
29
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
30
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
31
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
32
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
33
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
34
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
35
 
36
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
37
 
38
	public FormStructureVue() {
39
		setLayout(new FitLayout());
40
 
41
		// Création du panneau Formulaire
42
		FormPanel panel = new FormPanel();
43
		panel.setFrame(true);
44
		panel.setIconStyle("icone-form-ajouter");
45
		panel.setCollapsible(false);
46
		panel.setHeading("Ajout d'une institution");
47
		panel.setButtonAlign(HorizontalAlignment.CENTER);
48
		panel.setLayout(new FlowLayout());
49
 
50
		LayoutContainer main = new LayoutContainer();
51
		main.setLayout(new ColumnLayout());
52
 
53
		// Création de la dispostion : GAUCHE
54
		LayoutContainer gauche = new LayoutContainer();
55
		FormLayout layout = new FormLayout();
56
		layout.setLabelAlign(LabelAlign.LEFT);
57
		layout.setLabelWidth(200);
58
		gauche.setLayout(layout);
59
 
60
		// Création de la dispostion : DROITE
61
		LayoutContainer droite = new LayoutContainer();
62
		layout = new FormLayout();
63
		layout.setLabelAlign(LabelAlign.LEFT);
64
		droite.setLayout(layout);
65
 
66
		// Formulaire GAUCHE
67
		TextField<String> nomStructureChp = new TextField<String>();
68
		nomStructureChp.setFieldLabel("Nom de la structure");
69
		nomStructureChp.setAllowBlank(false);
70
		gauche.add(nomStructureChp);
71
 
72
		TextField<String> ihChp = new TextField<String>();
73
		ihChp.setFieldLabel("Acronyme Index Herbariorum");
74
		ihChp.setToolTip("Herbier de plus de 5000 échantillons");
75
		gauche.add(ihChp);
76
 
77
		TextField<String> mnhnChp = new TextField<String>();
78
		mnhnChp.setFieldLabel("Acronyme MNHN");
79
		mnhnChp.setToolTip("Herbier de moins de 5000 échantillons");
80
		gauche.add(mnhnChp);
81
 
82
		// Combobox
83
		String url = "http://localhost/jrest/CoelValeurListe/ab/12";
84
		ScriptTagProxy<Object, PagingLoadResult<ModelData>> proxy = new ScriptTagProxy<Object, PagingLoadResult<ModelData>>(url);
85
 
86
		ModelType type = new ModelType();
87
		type.root = "topics";
88
		type.totalName = "totalCount";
89
		type.addField("cmlv_id_valeur", "id");
90
		type.addField("cmlv_ce_parent", "ce_parent");
91
		type.addField("cmlv_ce_projet", "ce_projet");
92
		type.addField("cmlv_nom", "nom");
93
		type.addField("cmlv_abreviation", "abreviation");
94
		type.addField("cmlv_description", "description");
95
		type.addField("cmlv_ce_meta", "ce_meta");
96
 
97
		JsonReader<PagingLoadConfig> reader = new JsonReader<PagingLoadConfig>(type) {
98
			protected ListLoadResult newLoadResult(PagingLoadConfig loadConfig, List<ModelData> models) {
99
				PagingLoadResult result = new BasePagingLoadResult(models, loadConfig.getOffset(),
100
				loadConfig.getLimit());
101
				return result;
102
			}
103
		};
104
 
105
		PagingLoader loader = new BasePagingLoader(proxy, reader);
106
 
107
		ListStore<ModelData> store = new ListStore<ModelData>(loader);
108
 
109
		ComboBox<ModelData> combo = new ComboBox<ModelData>();
110
		combo.setFieldLabel("Statut des structures publiques");
111
		combo.setDisplayField("nom");
112
		combo.setItemSelector("div.search-item");
113
		//combo.setTemplate(getTemplate());
114
		combo.setStore(store);
115
		combo.setHideTrigger(false);
116
		combo.setPageSize(5);
117
		gauche.add(combo);
118
 
119
		// Formulaire DROITE
120
		RadioGroup group = new RadioGroup();
121
		group.setFieldLabel("Type");
122
		Radio structureRadio = new Radio();
123
		structureRadio.setBoxLabel("Structure");
124
		structureRadio.setValue(true);
125
		group.add(structureRadio);
126
		Radio particulierRadio = new Radio();
127
		particulierRadio.setBoxLabel("Particulier");
128
		group.add(particulierRadio);
129
		droite.add(group);
130
 
131
		// Ajout des colonnes
132
		main.add(gauche, new ColumnData(.5));
133
		main.add(droite, new ColumnData(.5));
134
		panel.add(main);
135
 
136
		// Ajout des boutons au panneau formulaire
137
		Button annulerBtn = new Button("Annuler");
138
		panel.addButton(annulerBtn);
139
		Button validerBtn = new Button("Valider");
140
		panel.addButton(validerBtn);
141
 
142
		// Ajout du panneau Formulaire à la disposition générale
143
		add(panel);
144
	}
145
 
146
	public void rafraichir(Object nouvelleDonnees) {
147
		// TODO Auto-generated method stub
148
 
149
	}
150
 
151
}