Subversion Repositories eFlore/Applications.coel

Rev

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
 
61 jpm 3
import org.tela_botanica.client.composants.AideFenetre;
60 jpm 4
import org.tela_botanica.client.composants.IdentificationFenetre;
66 jpm 5
import org.tela_botanica.client.composants.ParametreFenetre;
61 jpm 6
import org.tela_botanica.client.modeles.Configuration;
60 jpm 7
import org.tela_botanica.client.modeles.Menu;
8
import org.tela_botanica.client.modeles.Structure;
9
import org.tela_botanica.client.modeles.ListeStructure;
61 jpm 10
import org.tela_botanica.client.modeles.Utilisateur;
60 jpm 11
import org.tela_botanica.client.vues.ContenuPanneauVue;
12
import org.tela_botanica.client.vues.EntetePanneauVue;
13
import org.tela_botanica.client.vues.StructureDetailPanneauVue;
14
import org.tela_botanica.client.vues.StructureVue;
15
import org.tela_botanica.client.vues.MenuPanneauVue;
16
 
17
import com.extjs.gxt.ui.client.Registry;
18
import com.extjs.gxt.ui.client.Style.LayoutRegion;
19
import com.extjs.gxt.ui.client.util.Margins;
20
import com.extjs.gxt.ui.client.widget.Viewport;
21
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
22
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
23
import com.google.gwt.user.client.Window;
24
import com.google.gwt.user.client.ui.RootPanel;
25
 
26
public class Mediateur {
27
 
28
	private Viewport viewport;
29
	private EntetePanneauVue panneauNord = null;
30
	private MenuPanneauVue panneauOuest = null;
31
	private ContenuPanneauVue panneauCentre = null;
32
 
33
	public Mediateur() {
34
		// Enregistrement du Médiateur dans le Registre
35
		Registry.register(RegistreId.MEDIATEUR, this);
36
		// Création du Modèle qui s'enregistre lui même dans le Registre
37
		new Modele();
64 jpm 38
	    // Création de l'utilsateur courrant
65 jpm 39
		Utilisateur utilisateur = new Utilisateur(null, false);
40
		Registry.register(RegistreId.UTILISATEUR, utilisateur);
41
		this.connecterUtilisateur(null, null);
42
 
60 jpm 43
		// Création du Viewport qui contient la disposition globale de l'application
44
		viewport = new Viewport();
45
		viewport.setLayout(new BorderLayout());
46
 
47
		// Création des différents panneaux
48
	    creerPanneauNord();
49
	    creerPanneauOuest();
50
	    creerPanneauCentral();
51
 
52
		// Registry utile car présent partout!
53
		Registry.register(RegistreId.VIEWPORT, viewport);
54
		Registry.register(RegistreId.PANNEAU_OUEST, panneauOuest);
55
		Registry.register(RegistreId.PANNEAU_CENTRE, panneauCentre);
56
 
57
		// Chargement du menu
58
		chargeMenu(panneauOuest.listerMenu());
59
 
60
		// Retour à GWT du Viewport une fois constuit
61
		RootPanel.get().add(viewport);
62
	}
63
 
64
	private void creerPanneauNord() {
65
		panneauNord = new EntetePanneauVue();
66
 
67
		BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);
68
		regionNord.setCollapsible(true);
69
		regionNord.setFloatable(true);
70
		regionNord.setSplit(false);
71
		regionNord.setMargins(new Margins(5, 5, 0, 5));
72
 
73
		viewport.add(panneauNord, regionNord);
74
	}
75
 
76
	private void creerPanneauOuest() {
77
		panneauOuest = new MenuPanneauVue();
78
 
79
		BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);
80
		regionOuest.setSplit(true);
81
		regionOuest.setCollapsible(true);
82
		regionOuest.setMargins(new Margins(5));
83
 
84
		viewport.add(panneauOuest, regionOuest);
85
	}
86
 
87
	private void creerPanneauCentral() {
88
		panneauCentre = new ContenuPanneauVue();
89
 
90
		BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);
91
		regionCentre.setMargins(new Margins(5, 5, 5, 0));
92
 
93
		viewport.add(panneauCentre, regionCentre);
94
	}
95
 
96
	public void chargeMenu(Menu menus) {
97
		((MenuPanneauVue) Registry.get(RegistreId.PANNEAU_OUEST)).rafraichir(menus);
98
	}
99
 
100
	public void clicMenu(String s) {
101
		panneauCentre.removeAll();
102
		if (s.equals("Institutions")) {
103
			((Modele) Registry.get(RegistreId.MODELE)).obtenirListeInstitutions();
104
		} else {
105
			Window.alert("Non implémenté!");
106
		}
107
		panneauCentre.layout();
108
	}
109
 
110
	public void clicIdentification() {
111
		// Gestion du login
112
		IdentificationFenetre dialog = new IdentificationFenetre();
113
	    dialog.setClosable(false);
114
	    dialog.show();
115
	}
116
 
117
	public void clicListeInstitution(Structure institution) {
118
		((StructureDetailPanneauVue) Registry.get(RegistreId.PANNEAU_INSTITUTION_DETAIL)).rafraichir(institution);
119
	}
120
 
121
	public void afficherListeInstitutions(ListeStructure nouvelleDonnees) {
122
		// TODO : créer dès l'initialisation de l'application InsitutionVue et la cacher
123
		StructureVue institutionVue = new StructureVue();
124
		panneauCentre.add(institutionVue);
125
		institutionVue.rafraichir(nouvelleDonnees);
126
	}
61 jpm 127
 
128
	public void ouvrirAide() {
129
		AideFenetre aideFenetre = new AideFenetre();
130
		aideFenetre.show();
66 jpm 131
		// FIXME : apparament le fade In/Fade Out pose problème sur les navigateurs...
132
		//aideFenetre.el().fadeIn(FxConfig.NONE);
61 jpm 133
	}
134
 
135
	public void ouvrirParametres() {
66 jpm 136
		ParametreFenetre parametresFenetre = new ParametreFenetre();
137
		parametresFenetre.show();
61 jpm 138
	}
139
 
140
	public void ouvrirIdentification() {
141
		IdentificationFenetre identifFenetre = new IdentificationFenetre();
142
		identifFenetre.show();
143
	}
144
 
145
	public void ouvrirApplis(String id) {
146
		if (id.equals(ComposantId.MENU_CEL)) {
147
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");
148
		} else if (id.equals(ComposantId.MENU_BEL)) {
149
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");
150
		}
151
	}
152
 
65 jpm 153
	public void connecterUtilisateur(String login, String mdp) {
154
		((Modele) Registry.get(RegistreId.MODELE)).connecterUtilisateur(login, mdp);
64 jpm 155
	}
156
 
65 jpm 157
	public void deconnecterUtilisateur() {
158
		((Modele) Registry.get(RegistreId.MODELE)).deconnecterUtilisateur();
64 jpm 159
	}
65 jpm 160
 
64 jpm 161
	public void mettreAJourEtatIdentification(Utilisateur utilisateur) {
65 jpm 162
		panneauNord.rafraichir(utilisateur);
61 jpm 163
	}
66 jpm 164
 
60 jpm 165
}