Subversion Repositories eFlore/Applications.coel

Rev

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