Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
60 jpm 1
package org.tela_botanica.client;
2
 
3
import org.tela_botanica.client.composants.IdentificationFenetre;
4
import org.tela_botanica.client.modeles.Menu;
5
import org.tela_botanica.client.modeles.Structure;
6
import org.tela_botanica.client.modeles.ListeStructure;
7
import org.tela_botanica.client.vues.ContenuPanneauVue;
8
import org.tela_botanica.client.vues.EntetePanneauVue;
9
import org.tela_botanica.client.vues.StructureDetailPanneauVue;
10
import org.tela_botanica.client.vues.StructureVue;
11
import org.tela_botanica.client.vues.MenuPanneauVue;
12
 
13
import com.extjs.gxt.ui.client.Registry;
14
import com.extjs.gxt.ui.client.Style.LayoutRegion;
15
import com.extjs.gxt.ui.client.util.Margins;
16
import com.extjs.gxt.ui.client.widget.Viewport;
17
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
18
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
19
import com.google.gwt.user.client.Window;
20
import com.google.gwt.user.client.ui.RootPanel;
21
 
22
public class Mediateur {
23
 
24
	private Viewport viewport;
25
	private EntetePanneauVue panneauNord = null;
26
	private MenuPanneauVue panneauOuest = null;
27
	private ContenuPanneauVue panneauCentre = null;
28
 
29
	public Mediateur() {
30
		// Enregistrement du Médiateur dans le Registre
31
		Registry.register(RegistreId.MEDIATEUR, this);
32
		// Création du Modèle qui s'enregistre lui même dans le Registre
33
		new Modele();
34
 
35
		// Création du Viewport qui contient la disposition globale de l'application
36
		viewport = new Viewport();
37
		viewport.setLayout(new BorderLayout());
38
 
39
		// Création des différents panneaux
40
	    creerPanneauNord();
41
	    creerPanneauOuest();
42
	    creerPanneauCentral();
43
 
44
		// Registry utile car présent partout!
45
		Registry.register(RegistreId.VIEWPORT, viewport);
46
		Registry.register(RegistreId.PANNEAU_OUEST, panneauOuest);
47
		Registry.register(RegistreId.PANNEAU_CENTRE, panneauCentre);
48
 
49
		// Chargement du menu
50
		chargeMenu(panneauOuest.listerMenu());
51
 
52
		// Retour à GWT du Viewport une fois constuit
53
		RootPanel.get().add(viewport);
54
	}
55
 
56
	private void creerPanneauNord() {
57
		panneauNord = new EntetePanneauVue();
58
 
59
		BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);
60
		regionNord.setCollapsible(true);
61
		regionNord.setFloatable(true);
62
		regionNord.setSplit(false);
63
		regionNord.setMargins(new Margins(5, 5, 0, 5));
64
 
65
		viewport.add(panneauNord, regionNord);
66
	}
67
 
68
	private void creerPanneauOuest() {
69
		panneauOuest = new MenuPanneauVue();
70
 
71
		BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);
72
		regionOuest.setSplit(true);
73
		regionOuest.setCollapsible(true);
74
		regionOuest.setMargins(new Margins(5));
75
 
76
		viewport.add(panneauOuest, regionOuest);
77
	}
78
 
79
	private void creerPanneauCentral() {
80
		panneauCentre = new ContenuPanneauVue();
81
 
82
		BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);
83
		regionCentre.setMargins(new Margins(5, 5, 5, 0));
84
 
85
		viewport.add(panneauCentre, regionCentre);
86
	}
87
 
88
	public void chargeMenu(Menu menus) {
89
		((MenuPanneauVue) Registry.get(RegistreId.PANNEAU_OUEST)).rafraichir(menus);
90
	}
91
 
92
	public void clicMenu(String s) {
93
		panneauCentre.removeAll();
94
		if (s.equals("Institutions")) {
95
			((Modele) Registry.get(RegistreId.MODELE)).obtenirListeInstitutions();
96
		} else {
97
			Window.alert("Non implémenté!");
98
		}
99
		panneauCentre.layout();
100
	}
101
 
102
	public void clicIdentification() {
103
		// Gestion du login
104
		IdentificationFenetre dialog = new IdentificationFenetre();
105
	    dialog.setClosable(false);
106
	    dialog.show();
107
	}
108
 
109
	public void clicListeInstitution(Structure institution) {
110
		((StructureDetailPanneauVue) Registry.get(RegistreId.PANNEAU_INSTITUTION_DETAIL)).rafraichir(institution);
111
	}
112
 
113
	public void afficherListeInstitutions(ListeStructure nouvelleDonnees) {
114
		// TODO : créer dès l'initialisation de l'application InsitutionVue et la cacher
115
		StructureVue institutionVue = new StructureVue();
116
		panneauCentre.add(institutionVue);
117
		institutionVue.rafraichir(nouvelleDonnees);
118
	}
119
}