Subversion Repositories eFlore/Applications.coel

Rev

Rev 1136 | Rev 1330 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1136 Rev 1248
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import java.util.LinkedList;
3
import java.util.LinkedList;
4
import java.util.List;
4
import java.util.List;
5
 
5
 
6
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.RegistreId;
8
import org.tela_botanica.client.i18n.Constantes;
8
import org.tela_botanica.client.i18n.Constantes;
9
import org.tela_botanica.client.images.Images;
9
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.projet.Projet;
11
import org.tela_botanica.client.modeles.projet.Projet;
12
import org.tela_botanica.client.modeles.projet.ProjetListe;
12
import org.tela_botanica.client.modeles.projet.ProjetListe;
13
 
13
 
14
import com.extjs.gxt.ui.client.Registry;
14
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
15
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
16
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
16
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
17
import com.extjs.gxt.ui.client.store.ListStore;
17
import com.extjs.gxt.ui.client.store.ListStore;
18
import com.extjs.gxt.ui.client.widget.ContentPanel;
18
import com.extjs.gxt.ui.client.widget.ContentPanel;
19
import com.extjs.gxt.ui.client.widget.button.Button;
19
import com.extjs.gxt.ui.client.widget.button.Button;
20
import com.extjs.gxt.ui.client.widget.form.ComboBox;
20
import com.extjs.gxt.ui.client.widget.form.ComboBox;
21
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
21
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
22
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
22
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
23
import com.google.gwt.core.client.GWT;
23
import com.google.gwt.core.client.GWT;
24
 
24
 
25
public class FiltreVue extends ContentPanel implements Rafraichissable {
25
public class FiltreVue extends ContentPanel implements Rafraichissable {
26
	private Mediateur mediateur = null;
26
	private Mediateur mediateur = null;
27
	private Constantes i18nC = null;
27
	private Constantes i18nC = null;
28
	private ListStore<Projet> projets = null;
28
	private ListStore<Projet> projets = null;
29
	
29
	
30
	private ComboBox<Projet> listeProjets;
30
	private ComboBox<Projet> listeProjets;
31
	private ProjetListe projetsCache = null;
31
	private ProjetListe projetsCache = null;
32
	
32
	
33
	public FiltreVue(Mediateur mediateurCourrant) {
33
	public FiltreVue(Mediateur mediateurCourrant) {
34
		mediateur = mediateurCourrant;
34
		mediateur = mediateurCourrant;
35
		i18nC = Mediateur.i18nC;
35
		i18nC = Mediateur.i18nC;
36
		
36
		
37
		setHeading(i18nC.titreFiltre());
37
		setHeading(i18nC.titreFiltre());
38
		setLayout(new FitLayout());
38
		setLayout(new FitLayout());
39
		setLayoutOnChange(true);
39
		setLayoutOnChange(true);
40
 
40
 
41
		chargerProjets();
41
		chargerProjets();
42
		initialiserListeProjets();
42
		initialiserListeProjets();
43
	}
43
	}
44
	
44
	
45
	private void chargerProjets() {
45
	private void chargerProjets() {
46
		mediateur.selectionnerProjet(this, null);
46
		mediateur.selectionnerProjet(this, null);
47
	}
47
	}
48
	
48
	
49
	private void initialiserListeProjets() {
49
	private void initialiserListeProjets() {
50
	
50
	
51
		
51
		
52
		// Ajout de la sélection des projets
52
		// Ajout de la sélection des projets
53
		listeProjets = new ComboBox<Projet>();
53
		listeProjets = new ComboBox<Projet>();
54
		projets = new ListStore<Projet>();
54
		projets = new ListStore<Projet>();
55
		listeProjets.setStore(projets);
55
		listeProjets.setStore(projets);
56
		listeProjets.setEditable(false);
56
		listeProjets.setEditable(false);
57
		listeProjets.setDisplayField("nom");
57
		listeProjets.setDisplayField("nom");
58
		listeProjets.setEmptyText(i18nC.txtListeProjetDefaut());
58
		listeProjets.setEmptyText(i18nC.txtListeProjetDefaut());
59
		listeProjets.setTypeAhead(true);
59
		listeProjets.setTypeAhead(true);
60
		listeProjets.setTriggerAction(TriggerAction.ALL);  
60
		listeProjets.setTriggerAction(TriggerAction.ALL);  
61
		  
61
		  
62
		
62
		
63
		// Ajout d'un écouteur pour le changement => enregistre la valeur courante du projet dans le registre
63
		// Ajout d'un écouteur pour le changement => enregistre la valeur courante du projet dans le registre
64
	    listeProjets.addSelectionChangedListener(new SelectionChangedListener<Projet>() {
64
	    listeProjets.addSelectionChangedListener(new SelectionChangedListener<Projet>() {
65
			
-
 
66
			@Override
65
			
67
			public void selectionChanged(SelectionChangedEvent<Projet> se) {
66
			public void selectionChanged(SelectionChangedEvent<Projet> se) {
68
				mediateur.activerChargement(i18nC.chargement());
67
				mediateur.activerChargement(i18nC.chargement());
69
				mediateur.selectionnerProjetCourant(se.getSelectedItem());
68
				mediateur.selectionnerProjetCourant(se.getSelectedItem());
70
			}
69
			}
71
		});
70
		});
72
	    
71
	    
73
	    add(listeProjets);
72
	    add(listeProjets);
74
	}
73
	}
75
	
74
	
76
	private void afficherListeProjets(List projetsRecus) {
75
	private void afficherListeProjets(List projetsRecus) {
77
		projets.removeAll();
76
		projets.removeAll();
78
		
77
		
79
		List<Projet> selection = new LinkedList<Projet>();
78
		List<Projet> selection = new LinkedList<Projet>();
80
		Projet tousProjets = new Projet();
79
		Projet tousProjets = new Projet();
81
		tousProjets.set("nom", i18nC.tousProjets());
80
		tousProjets.set("nom", i18nC.tousProjets());
82
		projetsRecus.add(0, tousProjets);
81
		projetsRecus.add(0, tousProjets);
83
		selection.add(tousProjets);
82
		selection.add(tousProjets);
84
		projets.add(projetsRecus);
83
		projets.add(projetsRecus);
85
		listeProjets.setStore(projets);
84
		listeProjets.setStore(projets);
86
		listeProjets.setSelection(selection);
85
		listeProjets.setSelection(selection);
87
		layout();
86
		layout();
88
	}
87
	}
89
	
-
 
90
	@Override
88
	
91
	public void rafraichir(Object nouvellesDonnees) {
89
	public void rafraichir(Object nouvellesDonnees) {
92
		if (nouvellesDonnees instanceof ProjetListe) {
90
		if (nouvellesDonnees instanceof ProjetListe) {
93
			projetsCache = (ProjetListe) nouvellesDonnees;
91
			projetsCache = (ProjetListe) nouvellesDonnees;
94
			Registry.register(RegistreId.PROJETS, projetsCache);
92
			Registry.register(RegistreId.PROJETS, projetsCache);
95
			afficherListeProjets(projetsCache.toList());
93
			afficherListeProjets(projetsCache.toList());
96
		} else if (nouvellesDonnees instanceof List) {
94
		} else if (nouvellesDonnees instanceof List) {
97
			List<Projet> projets = (List) nouvellesDonnees;
95
			List<Projet> projets = (List) nouvellesDonnees;
98
			Registry.register(RegistreId.PROJETS, projets);
96
			Registry.register(RegistreId.PROJETS, projets);
99
			afficherListeProjets(projets);
97
			afficherListeProjets(projets);
100
		} else {
98
		} else {
101
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
99
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
102
		}		
100
		}		
103
	}
101
	}
104
}
102
}