Subversion Repositories eFlore/Applications.coel

Rev

Rev 69 | Rev 100 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
69 jpm 1
package org.tela_botanica.client.vues;
2
 
91 jpm 3
import java.util.ArrayList;
69 jpm 4
import java.util.Collections;
5
import java.util.Comparator;
91 jpm 6
import java.util.Iterator;
69 jpm 7
import java.util.List;
8
 
91 jpm 9
import org.tela_botanica.client.Mediateur;
10
import org.tela_botanica.client.Modele;
11
import org.tela_botanica.client.RegistreId;
69 jpm 12
import org.tela_botanica.client.interfaces.Rafraichissable;
91 jpm 13
import org.tela_botanica.client.modeles.Configuration;
14
import org.tela_botanica.client.modeles.Structure;
15
import org.tela_botanica.client.modeles.StructureListe;
16
import org.tela_botanica.client.modeles.Valeur;
17
import org.tela_botanica.client.modeles.ValeurListe;
69 jpm 18
 
91 jpm 19
import com.extjs.gxt.ui.client.Registry;
69 jpm 20
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
21
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
22
import com.extjs.gxt.ui.client.data.BasePagingLoader;
23
import com.extjs.gxt.ui.client.data.JsonReader;
24
import com.extjs.gxt.ui.client.data.ListLoadResult;
25
import com.extjs.gxt.ui.client.data.ModelData;
26
import com.extjs.gxt.ui.client.data.ModelType;
27
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
28
import com.extjs.gxt.ui.client.data.PagingLoadResult;
29
import com.extjs.gxt.ui.client.data.PagingLoader;
30
import com.extjs.gxt.ui.client.data.ScriptTagProxy;
31
import com.extjs.gxt.ui.client.store.ListStore;
32
import com.extjs.gxt.ui.client.widget.LayoutContainer;
33
import com.extjs.gxt.ui.client.widget.button.Button;
34
import com.extjs.gxt.ui.client.widget.form.ComboBox;
35
import com.extjs.gxt.ui.client.widget.form.FormPanel;
36
import com.extjs.gxt.ui.client.widget.form.Radio;
37
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
38
import com.extjs.gxt.ui.client.widget.form.TextField;
39
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
40
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
41
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
42
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
43
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
44
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
45
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
91 jpm 46
import com.google.gwt.core.client.GWT;
69 jpm 47
 
48
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
49
 
91 jpm 50
	private Modele coelModele = null ;
51
	private ListStore<Valeur> magazinLstpr = null;
52
	private ComboBox<Valeur> comboLstpr = null;
53
	private ListStore<Valeur> magazinLstpu = null;
54
	private ComboBox<Valeur> comboLstpu = null;
55
 
69 jpm 56
	public FormStructureVue() {
57
		setLayout(new FitLayout());
58
 
91 jpm 59
		// Initialisation de variables
60
		coelModele = Registry.get(RegistreId.MODELE);
61
 
69 jpm 62
		// Création du panneau Formulaire
63
		FormPanel panel = new FormPanel();
64
		panel.setFrame(true);
65
		panel.setIconStyle("icone-form-ajouter");
66
		panel.setCollapsible(false);
67
		panel.setHeading("Ajout d'une institution");
68
		panel.setButtonAlign(HorizontalAlignment.CENTER);
69
		panel.setLayout(new FlowLayout());
70
 
71
		LayoutContainer main = new LayoutContainer();
72
		main.setLayout(new ColumnLayout());
73
 
74
		// Création de la dispostion : GAUCHE
75
		LayoutContainer gauche = new LayoutContainer();
76
		FormLayout layout = new FormLayout();
77
		layout.setLabelAlign(LabelAlign.LEFT);
78
		layout.setLabelWidth(200);
79
		gauche.setLayout(layout);
80
 
81
		// Création de la dispostion : DROITE
82
		LayoutContainer droite = new LayoutContainer();
83
		layout = new FormLayout();
84
		layout.setLabelAlign(LabelAlign.LEFT);
85
		droite.setLayout(layout);
86
 
87
		// Formulaire GAUCHE
88
		TextField<String> nomStructureChp = new TextField<String>();
89
		nomStructureChp.setFieldLabel("Nom de la structure");
90
		nomStructureChp.setAllowBlank(false);
91
		gauche.add(nomStructureChp);
92
 
93
		TextField<String> ihChp = new TextField<String>();
94
		ihChp.setFieldLabel("Acronyme Index Herbariorum");
95
		ihChp.setToolTip("Herbier de plus de 5000 échantillons");
96
		gauche.add(ihChp);
97
 
98
		TextField<String> mnhnChp = new TextField<String>();
99
		mnhnChp.setFieldLabel("Acronyme MNHN");
100
		mnhnChp.setToolTip("Herbier de moins de 5000 échantillons");
101
		gauche.add(mnhnChp);
102
 
103
		// Combobox
91 jpm 104
		coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
105
		magazinLstpu = new ListStore<Valeur>();
106
		magazinLstpu.add(new ArrayList<Valeur>());
107
		comboLstpu = new ComboBox<Valeur>();
108
		comboLstpu.setFieldLabel("Statut des structures publiques");
109
		comboLstpu.setDisplayField("nom");
110
		comboLstpu.setTriggerAction(TriggerAction.ALL);
111
		comboLstpu.setStore(magazinLstpu);
112
		gauche.add(comboLstpu);
69 jpm 113
 
91 jpm 114
		coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
115
		magazinLstpr = new ListStore<Valeur>();
116
		magazinLstpr.add(new ArrayList<Valeur>());
117
		comboLstpr = new ComboBox<Valeur>();
118
		comboLstpr.setFieldLabel("Statut des structures privées");
119
		comboLstpr.setDisplayField("nom");
120
		comboLstpr.setTriggerAction(TriggerAction.ALL);
121
		comboLstpr.setStore(magazinLstpr);
122
		gauche.add(comboLstpr);
69 jpm 123
 
91 jpm 124
		TextField<String> adrChp = new TextField<String>();
125
		adrChp.setFieldLabel("Adresse");
126
		gauche.add(adrChp);
69 jpm 127
 
91 jpm 128
		TextField<String> cpChp = new TextField<String>();
129
		cpChp.setFieldLabel("Code postal");
130
		gauche.add(cpChp);
69 jpm 131
 
91 jpm 132
		TextField<String> villeChp = new TextField<String>();
133
		villeChp.setFieldLabel("Ville");
134
		gauche.add(villeChp);
69 jpm 135
 
91 jpm 136
		TextField<String> regionChp = new TextField<String>();
137
		regionChp.setFieldLabel("Région");
138
		gauche.add(regionChp);
139
 
140
		TextField<String> paysChp = new TextField<String>();
141
		paysChp.setFieldLabel("Pays");
142
		gauche.add(paysChp);
143
 
144
		TextField<String> telChp = new TextField<String>();
145
		telChp.setFieldLabel("Téléphone");
146
		gauche.add(telChp);
147
 
148
		TextField<String> faxChp = new TextField<String>();
149
		faxChp.setFieldLabel("Fax");
150
		gauche.add(faxChp);
151
 
152
		TextField<String> emailChp = new TextField<String>();
153
		emailChp.setFieldLabel("Courriel");
154
		emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org");
155
		gauche.add(emailChp);
156
 
157
		TextField<String> urlChp = new TextField<String>();
158
		urlChp.setFieldLabel("Site web");
159
		gauche.add(urlChp);
160
 
161
		TextField<String> dateFondationChp = new TextField<String>();
162
		dateFondationChp.setFieldLabel("Date de fondation");
163
		gauche.add(dateFondationChp);
164
 
69 jpm 165
		// Formulaire DROITE
166
		RadioGroup group = new RadioGroup();
167
		group.setFieldLabel("Type");
168
		Radio structureRadio = new Radio();
169
		structureRadio.setBoxLabel("Structure");
170
		structureRadio.setValue(true);
171
		group.add(structureRadio);
172
		Radio particulierRadio = new Radio();
173
		particulierRadio.setBoxLabel("Particulier");
174
		group.add(particulierRadio);
175
		droite.add(group);
176
 
177
		// Ajout des colonnes
178
		main.add(gauche, new ColumnData(.5));
179
		main.add(droite, new ColumnData(.5));
180
		panel.add(main);
181
 
182
		// Ajout des boutons au panneau formulaire
183
		Button annulerBtn = new Button("Annuler");
184
		panel.addButton(annulerBtn);
185
		Button validerBtn = new Button("Valider");
186
		panel.addButton(validerBtn);
187
 
188
		// Ajout du panneau Formulaire à la disposition générale
189
		add(panel);
190
	}
191
 
192
	public void rafraichir(Object nouvelleDonnees) {
91 jpm 193
		if (nouvelleDonnees instanceof ValeurListe) {
194
			ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;
195
 
196
			List<Valeur> liste = new ArrayList<Valeur>();
197
			for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
198
				liste.add(listeValeurs.get(it.next()));
199
			}
200
			// Test pour savoir si la liste contient des éléments
201
			if (liste.size() > 0) {
202
				Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
203
				if (listeValeurs.getId().equals(config.getListeId("stpr"))) {
204
					GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
205
					magazinLstpr.removeAll();
206
					magazinLstpr.add(liste);
207
					comboLstpr.setStore(magazinLstpr);
208
				}
209
				if (listeValeurs.getId().equals(config.getListeId("stpu"))) {
210
					GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
211
					magazinLstpu.removeAll();
212
					magazinLstpu.add(liste);
213
					comboLstpu.setStore(magazinLstpu);
214
				}
215
			} else {
216
				GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);
217
			}
218
		}
69 jpm 219
	}
220
}