Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 982 Rev 1078
Line 1... Line 1...
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
Line 2... Line -...
2
 
-
 
3
import java.util.Iterator;
-
 
4
 
2
 
5
import org.tela_botanica.client.Mediateur;
3
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.i18n.Constantes;
5
import org.tela_botanica.client.i18n.Constantes;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.modeles.projet.Projet;
7
import org.tela_botanica.client.modeles.projet.Projet;
Line 10... Line 8...
10
import org.tela_botanica.client.modeles.projet.ProjetListe;
8
import org.tela_botanica.client.modeles.projet.ProjetListe;
-
 
9
 
-
 
10
import com.extjs.gxt.ui.client.Registry;
-
 
11
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
11
 
12
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
-
 
13
import com.extjs.gxt.ui.client.store.ListStore;
12
import com.extjs.gxt.ui.client.Registry;
14
import com.extjs.gxt.ui.client.widget.ContentPanel;
13
import com.extjs.gxt.ui.client.widget.ContentPanel;
15
import com.extjs.gxt.ui.client.widget.form.ComboBox;
14
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
-
 
15
import com.google.gwt.core.client.GWT;
-
 
16
import com.google.gwt.event.dom.client.ChangeEvent;
-
 
Line 17... Line 16...
17
import com.google.gwt.event.dom.client.ChangeHandler;
16
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
18
import com.google.gwt.user.client.ui.ListBox;
17
import com.google.gwt.core.client.GWT;
19
 
18
 
-
 
19
public class FiltreVue extends ContentPanel implements Rafraichissable {
Line 20... Line 20...
20
public class FiltreVue extends ContentPanel implements Rafraichissable {
20
	private Mediateur mediateur = null;
21
	private Mediateur mediateur = null;
21
	private Constantes i18nC = null;
Line 22... Line 22...
22
	private Constantes i18nC = null;
22
	private ListStore<Projet> projets = null;
23
	
23
	
24
	private ListBox listeProjets;
24
	private ComboBox<Projet> listeProjets;
Line 25... Line 25...
25
	private ProjetListe projetsCache = null;
25
	private ProjetListe projetsCache = null;
26
	
26
	
27
	public FiltreVue(Mediateur mediateurCourrant) {
27
	public FiltreVue(Mediateur mediateurCourrant) {
Line 28... Line 28...
28
		mediateur = mediateurCourrant;
28
		mediateur = mediateurCourrant;
29
		i18nC = Mediateur.i18nC;
29
		i18nC = Mediateur.i18nC;
30
		
30
		
Line 31... Line 31...
31
		setHeading(i18nC.titreFiltre());
31
		setHeading(i18nC.titreFiltre());
32
		setLayout(new FlowLayout());
32
		setLayout(new FitLayout());
33
		setLayoutOnChange(true);
33
		setLayoutOnChange(true);
Line 34... Line 34...
34
 
34
 
-
 
35
		chargerProjets();
35
		chargerProjets();
36
		initialiserListeProjets();
36
		afficherListeProjets();
37
	}
-
 
38
	
37
	}
39
	private void chargerProjets() {
38
	
40
		mediateur.selectionnerProjet(this, null);
39
	private void chargerProjets() {
41
	}
-
 
42
	
Line 40... Line 43...
40
		mediateur.selectionnerProjet(this, null);
43
	private void initialiserListeProjets() {
41
	}
44
	
-
 
45
		// Ajout de la sélection des projets
42
	
46
		listeProjets = new ComboBox<Projet>();
43
	private void afficherListeProjets() {
47
		projets = new ListStore<Projet>();
44
		// Ajout de la sélection des projets
48
		listeProjets.setStore(projets);
45
		listeProjets = new ListBox(false);
49
		listeProjets.setEditable(false);
46
		listeProjets.setWidth("100%");
50
		listeProjets.setDisplayField("nom");
47
		listeProjets.addItem(i18nC.txtListeProjetDefaut(), "NULL");
51
		listeProjets.setEmptyText(i18nC.txtListeProjetDefaut());
-
 
52
		
-
 
53
		// Ajout d'un écouteur pour le changement => enregistre la valeur courante du projet dans le registre
-
 
54
	    listeProjets.addSelectionChangedListener(new SelectionChangedListener<Projet>() {
-
 
55
			
-
 
56
			@Override
-
 
57
			public void selectionChanged(SelectionChangedEvent<Projet> se) {
-
 
58
				mediateur.activerChargement(i18nC.chargement());
-
 
59
				mediateur.selectionnerProjetCourant(se.getSelectedItem());
-
 
60
			}
48
		add(listeProjets);
61
		});
Line 49... Line 62...
49
		
62
	    
50
	    // Ajout d'un écouteur pour le changement => enregistre la valeur courante du projet dans le registre
63
	    add(listeProjets);
51
	    listeProjets.addChangeHandler(new ChangeHandler() {
64
	}
52
			@Override
65
	
53
			public void onChange(ChangeEvent event) {
66
	private void afficherListeProjets(ProjetListe projetsRecus) {
54
				mediateur.activerChargement(i18nC.chargement());
67
		projets.removeAll();
55
				mediateur.selectionnerProjetCourant(projetsCache.get(listeProjets.getValue(listeProjets.getSelectedIndex())));
68
		projets.add(projetsRecus.toList());
56
			}
69
		listeProjets.setStore(projets);
57
		});
70
		layout();
58
	}
71
	}
59
	
-
 
60
	@Override
-
 
61
	public void rafraichir(Object nouvellesDonnees) {
-
 
62
		if (nouvellesDonnees instanceof ProjetListe) {
-
 
63
			projetsCache = (ProjetListe) nouvellesDonnees;
-
 
64
			Registry.register(RegistreId.PROJETS, projetsCache);
-
 
65
			ajouterProjetsAListe();
-
 
66
		} else {
-
 
67
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
72
	
68
		}		
73
	@Override