Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
219 aurelien 1
package org.tela_botanica.client.vues;
2
 
3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.Modele;
5
import org.tela_botanica.client.RegistreId;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.modeles.InterneValeur;
8
import org.tela_botanica.client.modeles.Personne;
9
import org.tela_botanica.client.modeles.Publication;
10
import org.tela_botanica.client.modeles.Structure;
11
import org.tela_botanica.client.modeles.StructureConservation;
12
import org.tela_botanica.client.modeles.StructureValorisation;
13
 
14
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
16
import com.extjs.gxt.ui.client.event.ComponentEvent;
17
import com.extjs.gxt.ui.client.event.SelectionListener;
18
import com.extjs.gxt.ui.client.store.ListStore;
19
import com.extjs.gxt.ui.client.store.Store;
20
import com.extjs.gxt.ui.client.widget.LayoutContainer;
21
import com.extjs.gxt.ui.client.widget.button.Button;
22
import com.extjs.gxt.ui.client.widget.form.ComboBox;
23
import com.extjs.gxt.ui.client.widget.form.DateField;
24
import com.extjs.gxt.ui.client.widget.form.FieldSet;
25
import com.extjs.gxt.ui.client.widget.form.FormPanel;
26
import com.extjs.gxt.ui.client.widget.form.TextField;
27
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
28
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
29
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
30
import com.extjs.gxt.ui.client.widget.layout.FormData;
31
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
32
import com.google.gwt.core.client.GWT;
33
 
34
public class FormPublicationVue extends LayoutContainer implements Rafraichissable {
35
 
36
	private Mediateur mediateur = null;
37
 
38
	FormPanel panel = null ;
39
 
40
	private ComboBox<Personne> comboListeAuteurs = null;
41
	private ListStore<Personne> storePersonne = null;
42
 
43
	private TextField<String> nomArticle = null;
44
	private TextField<String> nomPub = null;
45
	private TextField<String> intituleCollPub = null;
46
	private TextField<String> uriPub = null;
47
 
48
	private ComboBox<Structure> comboListeEditeurs = null;
49
	private ListStore<Structure> storeEditeurs = null;
50
	private DateField datePub = null;
51
	private TextField<String> tomPub = null;
52
	private TextField<String> fasciculePub = null;
53
	private TextField<String> pagesPub = null;
54
	private String mode = "AJOUT";
55
 
56
 
57
	public FormPublicationVue() {
58
 
59
		setLayout(new FitLayout());
60
		mediateur = Registry.get(RegistreId.MEDIATEUR);
61
 
62
		storePersonne = new ListStore<Personne>();
63
 
64
		// Création de la disposition : FIELDSET
65
		FormLayout layoutFieldset = new FormLayout();
66
		layoutFieldset.setLabelWidth(200);
67
		layoutFieldset.setPadding(4);
68
 
69
		//+-----------------------------------------------------------------------------------------------------------+
70
		// Création du panneau Formulaire
71
		panel = new FormPanel();
72
		panel.setFrame(true);
73
		panel.setIconStyle("icone-form-ajouter");
74
		panel.setCollapsible(false);
75
		panel.setHeading("Ajout d'une publication");
76
		panel.setButtonAlign(HorizontalAlignment.CENTER);
77
		panel.setLayout(new FlowLayout());
78
 
79
		add(panel);
80
 
81
		// Fieldset Auteur
82
		FieldSet fieldSetAuteurs = new FieldSet();
83
		fieldSetAuteurs.setHeading("Auteur(s)");
84
		fieldSetAuteurs.setCollapsible(true);
85
		fieldSetAuteurs.setLayout(layoutFieldset);
86
 
87
		panel.add(fieldSetAuteurs);
88
 
89
		this.comboListeAuteurs = new ComboBox<Personne>();
90
		comboListeAuteurs.setEmptyText("Sélectionner un auteur...");
91
		comboListeAuteurs.setFieldLabel("Auteur de la publication");
92
		comboListeAuteurs.setDisplayField("nom");
93
		comboListeAuteurs.setStore(storePersonne);
94
		comboListeAuteurs.setEditable(true);
95
		comboListeAuteurs.setTypeAhead(true);
96
		comboListeAuteurs.setTriggerAction(TriggerAction.ALL);
97
 
98
		fieldSetAuteurs.add(comboListeAuteurs);
99
 
100
		// Création de la disposition : FIELDSET
101
		FormLayout layoutFieldset2 = new FormLayout();
102
		layoutFieldset.setLabelWidth(200);
103
		layoutFieldset.setPadding(4);
104
 
105
		// Fieldset Infos Générales
106
		FieldSet fieldSetInfosGen = new FieldSet();
107
		fieldSetInfosGen.setHeading("Informations générales");
108
		fieldSetInfosGen.setCollapsible(true);
109
		fieldSetInfosGen.setLayout(layoutFieldset2);
110
 
111
 
112
		panel.add(fieldSetInfosGen);
113
 
114
		nomArticle = new TextField<String>();
115
		nomArticle.setName("cpu");
116
		nomArticle.setFieldLabel("Titre de l'article ou de l'ouvrage");
117
 
118
		nomPub = new TextField<String>();
119
		nomPub.setFieldLabel("Intitulé complet de la publication");
120
 
121
		intituleCollPub = new TextField<String>();
122
		intituleCollPub.setFieldLabel("Intitulé de la collection ou de la revue");
123
 
124
		uriPub = new TextField<String>();
125
		uriPub.setFieldLabel("URI de la publication");
126
 
127
		fieldSetInfosGen.add(nomArticle);
128
		fieldSetInfosGen.add(nomPub);
129
		fieldSetInfosGen.add(intituleCollPub);
130
		fieldSetInfosGen.add(uriPub);
131
 
132
		// Création de la disposition : FIELDSET
133
		FormLayout layoutFieldset3 = new FormLayout();
134
		layoutFieldset.setPadding(4);
135
 
136
		// Fieldset Edition
137
		FieldSet fieldSetEdition = new FieldSet();
138
		fieldSetEdition.setHeading("Edition");
139
		fieldSetEdition.setCollapsible(true);
140
		fieldSetEdition.setLayout(layoutFieldset3);
141
 
142
		panel.add(fieldSetEdition);
143
 
144
		storeEditeurs = new ListStore<Structure>();
145
		comboListeEditeurs = new ComboBox<Structure>();
146
		comboListeEditeurs.setEmptyText("Sélectionner un editeur...");
147
		comboListeEditeurs.setFieldLabel("Editeur de la publication");
148
		comboListeEditeurs.setDisplayField("nom");
149
		comboListeEditeurs.setStore(storeEditeurs);
150
		comboListeEditeurs.setEditable(true);
151
		comboListeEditeurs.setTypeAhead(true);
152
		comboListeEditeurs.setTriggerAction(TriggerAction.ALL);
153
 
154
		datePub = new DateField();
155
		datePub.setFieldLabel("Date de publication");
156
 
157
		tomPub = new TextField<String>();
158
		tomPub.setFieldLabel("Tome");
159
 
160
		fasciculePub = new TextField<String>();
161
		fasciculePub.setFieldLabel("Fascicule");
162
 
163
		pagesPub = new TextField<String>();
164
		pagesPub.setFieldLabel("Pages");
165
 
166
		fieldSetEdition.add(comboListeEditeurs);
167
		fieldSetEdition.add(datePub, new FormData(75,20));
168
		fieldSetEdition.add(tomPub);
169
		fieldSetEdition.add(fasciculePub);
170
		fieldSetEdition.add(pagesPub, new FormData(100,20));
171
 
172
		// Ajout des boutons au panneau formulaire
173
		Button annulerBtn = new Button("Annuler");
174
		annulerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
175
 
176
			@Override
177
			public void componentSelected(ComponentEvent ce) {
178
				mediateur.clicMenu("Publications");
179
			}
180
 
181
		});
182
		panel.addButton(annulerBtn);
183
		Button validerBtn = new Button("Valider");
184
		validerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
185
 
186
			@Override
187
			public void componentSelected(ComponentEvent ce) {
188
				soumettreFormulaire();
189
			}
190
 
191
		});
192
		panel.addButton(validerBtn);
193
 
194
	}
195
 
196
	public void rafraichir(Object nouvelleDonnees) {
197
		if(nouvelleDonnees instanceof Publication) {
198
			Publication publi = (Publication)nouvelleDonnees;
199
 
200
			comboListeAuteurs.setRawValue(publi.getAuteur());
201
			nomArticle.setValue(publi.getTitre());
202
			nomPub.setValue(publi.getNomComplet());
203
			intituleCollPub.setValue(publi.getCollection());
204
			uriPub.setValue(publi.getURI());
205
			comboListeEditeurs.setRawValue(publi.getEditeur());
206
			datePub.setRawValue(publi.getDateParution());
207
			tomPub.setValue(publi.getIndicationNvt());
208
			fasciculePub.setValue(publi.getFascicule());
209
			pagesPub.setValue(publi.getPages());
210
 
211
			panel.setHeading("Modification d'une publication");
212
 
213
			mode = "MODIFICATION" ;
214
		}
215
	}
216
 
217
	private void soumettreFormulaire() {
218
 
219
		String auteur = comboListeAuteurs.getRawValue();
220
		String nomArt = nomArticle.getValue();
221
		String pub = nomPub.getValue();
222
		String collPub = intituleCollPub.getValue();
223
		String uri = uriPub.getValue();
224
		String editeur = comboListeEditeurs.getRawValue();
225
		String datePar = datePub.getRawValue();
226
		String tome = tomPub.getValue();
227
		String fascicule = fasciculePub.getValue();
228
		String pages = pagesPub.getValue();
229
 
230
		Publication publi = new Publication(pub,uri,auteur,collPub,nomArt,editeur,datePar,tome,fascicule,pages);
231
 
232
		if (mode.equals("AJOUT")) {
233
			mediateur.ajouterPublication(this, publi);
234
		} else if (mode.equals("MODIF")) {
235
			mediateur.modifierPublication(this, publi);
236
		}
237
	}
238
}