Subversion Repositories eFlore/Applications.coel

Rev

Rev 219 | Rev 229 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 219 Rev 227
Line 1... Line 1...
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
Line -... Line 2...
-
 
2
 
-
 
3
import java.util.ArrayList;
-
 
4
import java.util.Iterator;
-
 
5
import java.util.Set;
2
 
6
 
3
import org.tela_botanica.client.Mediateur;
-
 
4
import org.tela_botanica.client.Modele;
7
import org.tela_botanica.client.Mediateur;
5
import org.tela_botanica.client.RegistreId;
8
import org.tela_botanica.client.RegistreId;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
7
import org.tela_botanica.client.modeles.InterneValeur;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.Personne;
10
import org.tela_botanica.client.modeles.PersonneListe;
9
import org.tela_botanica.client.modeles.Publication;
11
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.Structure;
Line 12... Line 13...
12
import org.tela_botanica.client.modeles.StructureValorisation;
13
import org.tela_botanica.client.modeles.StructureListe;
13
 
14
 
14
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
16
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.ComponentEvent;
17
import com.extjs.gxt.ui.client.event.SelectionListener;
18
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.ListStore;
19
import com.extjs.gxt.ui.client.store.Store;
20
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
20
import com.extjs.gxt.ui.client.widget.LayoutContainer;
21
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.button.Button;
22
import com.extjs.gxt.ui.client.widget.form.ComboBox;
23
import com.extjs.gxt.ui.client.widget.form.ComboBox;
Line 27... Line 28...
27
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
28
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.FitLayout;
29
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
30
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.FormData;
31
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
32
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
-
 
33
import com.google.gwt.user.client.Window;
32
import com.google.gwt.core.client.GWT;
34
import com.google.gwt.user.client.ui.HTML;
Line 33... Line 35...
33
 
35
 
Line 34... Line 36...
34
public class FormPublicationVue extends LayoutContainer implements Rafraichissable {
36
public class FormPublicationVue extends LayoutContainer implements Rafraichissable {
Line 35... Line 37...
35
 
37
 
Line 36... Line 38...
36
	private Mediateur mediateur = null;
38
	private Mediateur mediateur = null;
-
 
39
	
37
	
40
	FormPanel panel = null ;
Line 38... Line 41...
38
	FormPanel panel = null ;
41
	
39
	
42
	private String idStructureEdition = "" ; 
40
	private ComboBox<Personne> comboListeAuteurs = null;
43
	
41
	private ListStore<Personne> storePersonne = null;
44
	private ArrayList<TextField<String>> listeAuteurs = null;
Line 51... Line 54...
51
	private TextField<String> tomPub = null;
54
	private TextField<String> tomPub = null;
52
	private TextField<String> fasciculePub = null;
55
	private TextField<String> fasciculePub = null;
53
	private TextField<String> pagesPub = null;
56
	private TextField<String> pagesPub = null;
54
	private String mode = "AJOUT";
57
	private String mode = "AJOUT";
Line -... Line 58...
-
 
58
	
-
 
59
	FieldSet fieldSetAuteurs = null ;
Line 55... Line 60...
55
	
60
	
Line 56... Line 61...
56
 
61
 
57
	public FormPublicationVue() {
62
	public FormPublicationVue() {
Line 58... Line -...
58
		
-
 
59
		setLayout(new FitLayout());
-
 
60
		mediateur = Registry.get(RegistreId.MEDIATEUR);
63
		
61
		
64
		setLayout(new FitLayout());
62
		storePersonne = new ListStore<Personne>();
65
		mediateur = Registry.get(RegistreId.MEDIATEUR);
63
		
66
		
Line 77... Line 80...
77
		panel.setLayout(new FlowLayout());
80
		panel.setLayout(new FlowLayout());
Line 78... Line 81...
78
		
81
		
Line 79... Line 82...
79
		add(panel);
82
		add(panel);
80
		
83
		
81
		// Fieldset Auteur
84
		// Fieldset Auteur
82
		FieldSet fieldSetAuteurs = new FieldSet();
85
		fieldSetAuteurs = new FieldSet();
83
		fieldSetAuteurs.setHeading("Auteur(s)");
86
		fieldSetAuteurs.setHeading("Auteur(s)");
Line 84... Line 87...
84
		fieldSetAuteurs.setCollapsible(true);
87
		fieldSetAuteurs.setCollapsible(true);
Line 85... Line -...
85
		fieldSetAuteurs.setLayout(layoutFieldset);
-
 
86
		
-
 
87
		panel.add(fieldSetAuteurs);
-
 
88
		
-
 
89
		this.comboListeAuteurs = new ComboBox<Personne>();  
-
 
90
		comboListeAuteurs.setEmptyText("Sélectionner un auteur...");
88
		fieldSetAuteurs.setLayout(layoutFieldset);
91
		comboListeAuteurs.setFieldLabel("Auteur de la publication");
-
 
92
		comboListeAuteurs.setDisplayField("nom");
-
 
93
		comboListeAuteurs.setStore(storePersonne);
-
 
94
		comboListeAuteurs.setEditable(true);
-
 
Line 95... Line 89...
95
		comboListeAuteurs.setTypeAhead(true);  
89
		
96
		comboListeAuteurs.setTriggerAction(TriggerAction.ALL);
90
		panel.add(fieldSetAuteurs);
97
		
91
		
98
		fieldSetAuteurs.add(comboListeAuteurs);
92
		genererChampsAuteur("",false);
Line 147... Line 141...
147
		comboListeEditeurs.setFieldLabel("Editeur de la publication");
141
		comboListeEditeurs.setFieldLabel("Editeur de la publication");
148
		comboListeEditeurs.setDisplayField("nom");
142
		comboListeEditeurs.setDisplayField("nom");
149
		comboListeEditeurs.setStore(storeEditeurs);
143
		comboListeEditeurs.setStore(storeEditeurs);
150
		comboListeEditeurs.setEditable(true);
144
		comboListeEditeurs.setEditable(true);
151
		comboListeEditeurs.setTypeAhead(true);  
145
		comboListeEditeurs.setTypeAhead(true);  
152
		comboListeEditeurs.setTriggerAction(TriggerAction.ALL);
146
		comboListeEditeurs.setTriggerAction(TriggerAction.QUERY);
Line 153... Line 147...
153
		
147
		
154
		datePub = new DateField();
148
		datePub = new DateField();
Line 155... Line 149...
155
		datePub.setFieldLabel("Date de publication");
149
		datePub.setFieldLabel("Date de publication");
Line 161... Line 155...
161
		fasciculePub.setFieldLabel("Fascicule");
155
		fasciculePub.setFieldLabel("Fascicule");
Line 162... Line 156...
162
		
156
		
163
		pagesPub = new TextField<String>();
157
		pagesPub = new TextField<String>();
Line 164... Line 158...
164
		pagesPub.setFieldLabel("Pages");
158
		pagesPub.setFieldLabel("Pages");
165
		
159
		
166
		fieldSetEdition.add(comboListeEditeurs);
160
		fieldSetEdition.add(comboListeEditeurs,new FormData(500,20));
167
		fieldSetEdition.add(datePub, new FormData(75,20));
161
		fieldSetEdition.add(datePub, new FormData(75,20));
168
		fieldSetEdition.add(tomPub);
162
		fieldSetEdition.add(tomPub);
Line 192... Line 186...
192
		panel.addButton(validerBtn);
186
		panel.addButton(validerBtn);
Line 193... Line 187...
193
		
187
		
Line 194... Line 188...
194
	}
188
	}
-
 
189
	
-
 
190
	public void rafraichir(Object nouvelleDonnees) {
195
	
191
		
-
 
192
		// Si on a reçu les details d'une publication
-
 
193
		if(nouvelleDonnees instanceof Publication) {
-
 
194
 
196
	public void rafraichir(Object nouvelleDonnees) {
195
			mode = "MODIF" ;
Line 197... Line 196...
197
		if(nouvelleDonnees instanceof Publication) {
196
			
-
 
197
			Publication publi = (Publication)nouvelleDonnees;
198
			Publication publi = (Publication)nouvelleDonnees;
198
			
199
			
199
			genererChampsAuteur(publi.getAuteur(),false);
200
			comboListeAuteurs.setRawValue(publi.getAuteur());
200
			
201
			nomArticle.setValue(publi.getTitre());
201
			nomArticle.setValue(publi.getTitre());
202
			nomPub.setValue(publi.getNomComplet());
-
 
203
			intituleCollPub.setValue(publi.getCollection());
202
			nomPub.setValue(publi.getNomComplet());
204
			uriPub.setValue(publi.getURI());
203
			intituleCollPub.setValue(publi.getCollection());
205
			comboListeEditeurs.setRawValue(publi.getEditeur());
204
			uriPub.setValue(publi.getURI());
206
			datePub.setRawValue(publi.getDateParution());
205
			datePub.setRawValue(publi.getDateParution());
Line -... Line 206...
-
 
206
			tomPub.setValue(publi.getIndicationNvt());
-
 
207
			fasciculePub.setValue(publi.getFascicule());
-
 
208
			pagesPub.setValue(publi.getPages());
-
 
209
			
207
			tomPub.setValue(publi.getIndicationNvt());
210
			idStructureEdition = publi.getEditeur();
-
 
211
			
-
 
212
			mediateur.clicObtenirListeEditeurs(this);
-
 
213
			
-
 
214
			panel.setHeading("Modification d'une publication");
-
 
215
		}
-
 
216
		
-
 
217
		// Si on a reçu une liste des editeurs
-
 
218
		if(nouvelleDonnees instanceof StructureListe) {
-
 
219
			storeEditeurs.removeAll();
-
 
220
			StructureListe listeStructure = (StructureListe)nouvelleDonnees;
Line 208... Line 221...
208
			fasciculePub.setValue(publi.getFascicule());
221
			Set<String> listeStructureSet = listeStructure.keySet();
-
 
222
			for(Iterator<String> it = listeStructureSet.iterator() ; it.hasNext() ;) {
-
 
223
				storeEditeurs.add(listeStructure.get(it.next()));
-
 
224
			}
-
 
225
			
209
			pagesPub.setValue(publi.getPages());
226
			if(mode.equals("MODIF")) {	
210
			
227
				//Window.alert(""+idStructureEdition);
Line 211... Line 228...
211
			panel.setHeading("Modification d'une publication");
228
				comboListeEditeurs.setValue(listeStructure.get(idStructureEdition));
Line -... Line 229...
-
 
229
			}
-
 
230
			comboListeEditeurs.expand();
212
			
231
		}
-
 
232
	}
-
 
233
	
-
 
234
	private void soumettreFormulaire() {
-
 
235
		
213
			mode = "MODIFICATION" ;
236
		String auteur = "" ;
214
		}
237
		for(int i = 0 ; i < listeAuteurs.size() ; i++) {
215
	}
238
			auteur += listeAuteurs.get(i).getValue();
216
	
239
			if(i != listeAuteurs.size() -1) {
217
	private void soumettreFormulaire() {
240
				auteur += "|";
Line 227... Line 250...
227
		String fascicule = fasciculePub.getValue();
250
		String fascicule = fasciculePub.getValue();
228
		String pages = pagesPub.getValue();
251
		String pages = pagesPub.getValue();
Line 229... Line 252...
229
		
252
		
Line -... Line 253...
-
 
253
		Publication publi = new Publication(pub,uri,auteur,collPub,nomArt,editeur,datePar,tome,fascicule,pages);
-
 
254
		
230
		Publication publi = new Publication(pub,uri,auteur,collPub,nomArt,editeur,datePar,tome,fascicule,pages);
255
		Window.alert(auteur);
231
		
256
		
232
		if (mode.equals("AJOUT")) {
257
		if (mode.equals("AJOUT")) {
233
			mediateur.ajouterPublication(this, publi);
258
			mediateur.ajouterPublication(this, publi);
234
		} else if (mode.equals("MODIF")) {
259
		} else if (mode.equals("MODIF")) {
235
			mediateur.modifierPublication(this, publi);
260
			mediateur.modifierPublication(this, publi);
-
 
261
		}
-
 
262
	}
-
 
263
	
-
 
264
	private void genererChampsAuteur(String auteursStr, boolean ajouter) {
-
 
265
				
-
 
266
		String[] auteurs = auteursStr.split("\\|");
-
 
267
		LayoutContainer conteneurChamps = new LayoutContainer(); 
-
 
268
		
-
 
269
		Window.alert("longueur "+auteurs.length);
-
 
270
		
-
 
271
		if(auteurs.length != 0) {
-
 
272
			listeAuteurs = new ArrayList<TextField<String>>(auteurs.length);
-
 
273
		}
-
 
274
		else{
-
 
275
			listeAuteurs = new ArrayList<TextField<String>>(1);
-
 
276
			ajouter = true ;
-
 
277
		}
-
 
278
		
-
 
279
		fieldSetAuteurs.removeAll();
-
 
280
		
-
 
281
		//final Label labelAuteur = new Label("Auteur de la publication :");
-
 
282
		final HTML labelAuteur = new HTML("<label class=\"x-form-item-label x-formulaire-auteur-label\" style=\"width: 100px;\">Auteur(s) de l'article ou de l'ouvrage:</label>");
-
 
283
		fieldSetAuteurs.add(labelAuteur);
-
 
284
		int i = 0;
-
 
285
		
-
 
286
		for(i = 0 ; i < auteurs.length ; i++) {
-
 
287
			conteneurChamps.add(creerTextFieldEtBouton(auteurs[i]));
-
 
288
		}
-
 
289
		
-
 
290
		if(ajouter) {
-
 
291
			conteneurChamps.add(creerTextFieldEtBouton(null));
-
 
292
		}
-
 
293
		
-
 
294
		Button ajoutAuteurBtn = new Button("Ajouter un auteur");
-
 
295
		ajoutAuteurBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
-
 
296
 
-
 
297
			@Override
-
 
298
			public void componentSelected(ComponentEvent ce) {
-
 
299
				
-
 
300
				String idsAuteurs = "" ;
-
 
301
				
-
 
302
				for(int i = 0 ; i < listeAuteurs.size() ; i++) {
-
 
303
					
-
 
304
					String valeurChampAuteur = listeAuteurs.get(i).getValue();
-
 
305
					if(valeurChampAuteur != null)
-
 
306
					{
-
 
307
						idsAuteurs += valeurChampAuteur ;
-
 
308
					}
-
 
309
					else {
-
 
310
						idsAuteurs += "" ;
-
 
311
					}
-
 
312
					if(i != 0 && i != listeAuteurs.size() - 1) {
-
 
313
						idsAuteurs+= "|";
-
 
314
					}
-
 
315
				}
-
 
316
				genererChampsAuteur(idsAuteurs,true);
-
 
317
			}
-
 
318
			
-
 
319
		});
-
 
320
		
-
 
321
		fieldSetAuteurs.add(conteneurChamps);
-
 
322
		fieldSetAuteurs.add(ajoutAuteurBtn);
-
 
323
		fieldSetAuteurs.layout();
-
 
324
	}
-
 
325
	
-
 
326
	public HorizontalPanel creerTextFieldEtBouton(String valeurDefaut) {
-
 
327
		
-
 
328
		HorizontalPanel p = new HorizontalPanel() ;
-
 
329
		
-
 
330
		// Création de la disposition : FIELDSET
-
 
331
		FormLayout layoutPanelTF = new FormLayout();
-
 
332
		p.setLayout(layoutPanelTF);
-
 
333
		
-
 
334
		final TextField<String> tf = new TextField<String>() ;
-
 
335
		if(valeurDefaut != null) {
-
 
336
			tf.setValue(valeurDefaut);
-
 
337
		}
-
 
338
		tf.setSize(200, 20);
-
 
339
		listeAuteurs.add(tf);
-
 
340
		
-
 
341
		Button supp = new Button("-");
-
 
342
		supp.addSelectionListener(new SelectionListener<ComponentEvent>() {
-
 
343
			@Override
-
 
344
			public void componentSelected(ComponentEvent ce) {
-
 
345
				
-
 
346
				String idsAuteurs = "" ;
-
 
347
				listeAuteurs.remove(tf);
-
 
348
				
-
 
349
				for(int i = 0 ; i < listeAuteurs.size() ; i++) {
-
 
350
					
-
 
351
					String valeurChampAuteur = listeAuteurs.get(i).getValue();
-
 
352
					if(valeurChampAuteur != null & !valeurChampAuteur.equals(""))
-
 
353
					{
-
 
354
						idsAuteurs += valeurChampAuteur ;
-
 
355
					}
-
 
356
					if(i != listeAuteurs.size() - 1) {
-
 
357
						idsAuteurs+= "|";
-
 
358
					}
-
 
359
				}
-
 
360
				genererChampsAuteur(idsAuteurs,false);
-
 
361
			}
-
 
362
			
-
 
363
		});
-
 
364
		p.add(tf);
-
 
365
		p.add(supp);
-
 
366
		fieldSetAuteurs.add(p);
-
 
367
		
236
		}
368
		return p ;