Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 935 Rev 982
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
-
 
3
import java.util.Iterator;
2
 
4
 
-
 
5
import org.tela_botanica.client.Mediateur;
3
 
6
import org.tela_botanica.client.RegistreId;
-
 
7
import org.tela_botanica.client.i18n.Constantes;
4
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.i18n.Constantes;
9
import org.tela_botanica.client.modeles.Menu;
-
 
10
import org.tela_botanica.client.modeles.MenuApplicationId;
-
 
11
import org.tela_botanica.client.modeles.projet.Projet;
6
import org.tela_botanica.client.modeles.Menu;
12
import org.tela_botanica.client.modeles.projet.ProjetListe;
7
import org.tela_botanica.client.modeles.MenuApplicationId;
13
 
8
 
14
import com.extjs.gxt.ui.client.event.Events;
9
import com.extjs.gxt.ui.client.event.Events;
15
import com.extjs.gxt.ui.client.GXT;
10
import com.extjs.gxt.ui.client.GXT;
16
import com.extjs.gxt.ui.client.Registry;
-
 
17
import com.extjs.gxt.ui.client.event.Listener;
11
import com.extjs.gxt.ui.client.event.Listener;
18
import com.extjs.gxt.ui.client.event.TreePanelEvent;
12
import com.extjs.gxt.ui.client.event.TreePanelEvent;
19
import com.extjs.gxt.ui.client.store.TreeStore;
13
import com.extjs.gxt.ui.client.store.TreeStore;
20
import com.extjs.gxt.ui.client.widget.ContentPanel;
14
import com.extjs.gxt.ui.client.widget.ContentPanel;
21
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
15
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
22
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
16
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
23
import com.google.gwt.core.client.GWT;
-
 
24
import com.google.gwt.event.dom.client.ChangeEvent;
-
 
25
import com.google.gwt.event.dom.client.ChangeHandler;
-
 
26
import com.google.gwt.user.client.ui.ListBox;
-
 
27
 
17
 
28
public class MenuVue extends ContentPanel implements Rafraichissable {
18
public class MenuVue extends ContentPanel {
29
 
19
 
30
	private Mediateur mediateur = null;
20
	private Mediateur mediateur = null;
31
	private Constantes i18nC = null;
21
	private Constantes i18nC = null;
32
	
22
	
33
	private TreePanel<Menu> arbreMenus;
23
	private TreePanel<Menu> arbreMenus;
34
	private ListBox listeProjets;
-
 
35
	private ProjetListe projetsCache = null;
-
 
36
	private TreeStore<Menu> menuStore;
24
	private TreeStore<Menu> menuStore;
37
	
25
	
38
	public MenuVue(Mediateur mediateurCourrant) {
26
	public MenuVue(Mediateur mediateurCourrant) {
39
		mediateur = mediateurCourrant;
27
		mediateur = mediateurCourrant;
40
		i18nC = Mediateur.i18nC;
28
		i18nC = Mediateur.i18nC;
41
		
29
		
42
		setHeading(i18nC.titreMenu());
30
		setHeading(i18nC.titreMenu());
43
		setLayout(new FlowLayout());
31
		setLayout(new FitLayout());
44
		setLayoutOnChange(true);
32
		setLayoutOnChange(true);
45
 
-
 
46
		chargerProjets();
-
 
47
		afficherListeProjets();
-
 
48
		
33
		
49
		construireMenu();
34
		construireMenu();
50
		afficherMenu();
35
		afficherMenu();
51
	}
36
	}
52
 
37
 
53
	private void construireMenu() {
38
	private void construireMenu() {
54
		menuStore = new TreeStore<Menu>();
39
		menuStore = new TreeStore<Menu>();
55
		
40
		
56
		Menu accueilMenu = new Menu(i18nC.menuAccueil(), MenuApplicationId.ACCUEIL);
41
		Menu accueilMenu = new Menu(i18nC.menuAccueil(), MenuApplicationId.ACCUEIL);
57
		Menu projetMenu = new Menu(i18nC.menuProjet(), MenuApplicationId.PROJET);
42
		Menu projetMenu = new Menu(i18nC.menuProjet(), MenuApplicationId.PROJET);
58
	    Menu menuInstitution = new Menu(i18nC.menuStructure(), MenuApplicationId.STRUCTURE);
43
	    Menu menuInstitution = new Menu(i18nC.menuStructure(), MenuApplicationId.STRUCTURE);
59
	    Menu menuCollections = new Menu(i18nC.menuCollection(), MenuApplicationId.COLLECTION);
44
	    Menu menuCollections = new Menu(i18nC.menuCollection(), MenuApplicationId.COLLECTION);
60
	    Menu menuPersonnes = new Menu(i18nC.menuPersonne(), MenuApplicationId.PERSONNE);
45
	    Menu menuPersonnes = new Menu(i18nC.menuPersonne(), MenuApplicationId.PERSONNE);
61
	    Menu menuPublications = new Menu(i18nC.menuPublication(), MenuApplicationId.PUBLICATION);
46
	    Menu menuPublications = new Menu(i18nC.menuPublication(), MenuApplicationId.PUBLICATION);
62
	    
47
	    
63
	    menuStore.add(accueilMenu, false);
48
	    menuStore.add(accueilMenu, false);
64
	    menuStore.add(projetMenu, false);
49
	    menuStore.add(projetMenu, false);
65
	    menuStore.add(menuInstitution, false);
50
	    menuStore.add(menuInstitution, false);
66
	    menuStore.add(menuCollections, false);
51
	    menuStore.add(menuCollections, false);
67
	    menuStore.add(menuPersonnes, false);
52
	    menuStore.add(menuPersonnes, false);
68
	    menuStore.add(menuPublications, false);
53
	    menuStore.add(menuPublications, false);
69
	}
54
	}
70
	
55
	
71
	private void afficherMenu() {
56
	private void afficherMenu() {
72
		arbreMenus = new TreePanel<Menu>(menuStore);
57
		arbreMenus = new TreePanel<Menu>(menuStore);
73
		arbreMenus.getStyle().setLeafIcon(GXT.IMAGES.tree_folder());
58
		arbreMenus.getStyle().setLeafIcon(GXT.IMAGES.tree_folder());
74
		arbreMenus.setDisplayProperty("nom");
59
		arbreMenus.setDisplayProperty("nom");
75
		arbreMenus.setHeight("100%");
60
		arbreMenus.setHeight("100%");
76
		arbreMenus.addListener(Events.OnClick, new Listener<TreePanelEvent<Menu>>(){
61
		arbreMenus.addListener(Events.OnClick, new Listener<TreePanelEvent<Menu>>(){
77
			public void handleEvent(TreePanelEvent<Menu> tpe) {
62
			public void handleEvent(TreePanelEvent<Menu> tpe) {
78
				Menu menuCourant = arbreMenus.getSelectionModel().getSelectedItem();
63
				Menu menuCourant = arbreMenus.getSelectionModel().getSelectedItem();
79
				mediateur.clicMenu(menuCourant.getCode());
64
				mediateur.clicMenu(menuCourant.getCode());
80
			}
65
			}
81
		});
66
		});
82
		
67
		
83
		add(arbreMenus);
68
		add(arbreMenus);
84
	}
69
	}
85
	
70
	
86
	public void selectionMenu(String code) {
71
	public void selectionMenu(String code) {
87
		arbreMenus.getSelectionModel().select(menuStore.findModel("code", code), false);
72
		arbreMenus.getSelectionModel().select(menuStore.findModel("code", code), false);
88
	}
-
 
89
	
-
 
90
	private void chargerProjets() {
-
 
91
		mediateur.selectionnerProjet(this, null);
-
 
92
	}
-
 
93
	
-
 
94
	private void ajouterProjetsAListe()	{
-
 
95
		Iterator<Projet> it = projetsCache.values().iterator();
-
 
96
		while (it.hasNext())	{
-
 
97
			Projet projetCourant = it.next();
-
 
98
			listeProjets.addItem(projetCourant.getNom(), projetCourant.getId());
-
 
99
		}
-
 
100
	}
-
 
101
	
-
 
102
	private void afficherListeProjets() {
-
 
103
		// Ajout de la sélection des projets
-
 
104
		listeProjets = new ListBox(false);
-
 
105
		listeProjets.setWidth("100%");
-
 
106
		listeProjets.addItem(i18nC.txtListeProjetDefaut(), "NULL");
-
 
107
		add(listeProjets);
-
 
108
		
-
 
109
	    // Ajout d'un écouteur pour le changement => enregistre la valeur courante du projet dans le registre
-
 
110
	    listeProjets.addChangeHandler(new ChangeHandler() {
-
 
111
			@Override
-
 
112
			public void onChange(ChangeEvent event) {
-
 
113
				mediateur.activerChargement(i18nC.chargement());
-
 
114
				mediateur.selectionnerProjetCourant(projetsCache.get(listeProjets.getValue(listeProjets.getSelectedIndex())));
-
 
115
			}
-
 
116
		});
-
 
117
	}
-
 
118
	
-
 
119
	public void rafraichir(Object nouvellesDonnees) {
-
 
120
		if (nouvellesDonnees instanceof ProjetListe) {
-
 
121
			projetsCache = (ProjetListe) nouvellesDonnees;
-
 
122
			Registry.register(RegistreId.PROJETS, projetsCache);
-
 
123
			ajouterProjetsAListe();
-
 
124
		} else {
-
 
125
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
-
 
126
		}
-
 
127
	}
73
	}		
128
}
74
}
129
75