Subversion Repositories eFlore/Applications.coel

Rev

Rev 119 | Rev 134 | 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;
119 jpm 6
import org.tela_botanica.client.interfaces.Rafraichissable;
61 jpm 7
import org.tela_botanica.client.modeles.Configuration;
60 jpm 8
import org.tela_botanica.client.modeles.Menu;
128 gduche 9
import org.tela_botanica.client.modeles.PersonneListe;
107 aurelien 10
import org.tela_botanica.client.modeles.Publication;
11
import org.tela_botanica.client.modeles.PublicationListe;
60 jpm 12
import org.tela_botanica.client.modeles.Structure;
69 jpm 13
import org.tela_botanica.client.modeles.StructureListe;
61 jpm 14
import org.tela_botanica.client.modeles.Utilisateur;
91 jpm 15
import org.tela_botanica.client.modeles.ValeurListe;
60 jpm 16
import org.tela_botanica.client.vues.ContenuPanneauVue;
17
import org.tela_botanica.client.vues.EntetePanneauVue;
69 jpm 18
import org.tela_botanica.client.vues.FormStructureVue;
128 gduche 19
import org.tela_botanica.client.vues.PersonneVue;
107 aurelien 20
import org.tela_botanica.client.vues.PublicationDetailPanneauVue;
21
import org.tela_botanica.client.vues.PublicationVue;
60 jpm 22
import org.tela_botanica.client.vues.StructureDetailPanneauVue;
23
import org.tela_botanica.client.vues.StructureVue;
24
import org.tela_botanica.client.vues.MenuPanneauVue;
25
 
26
import com.extjs.gxt.ui.client.Registry;
27
import com.extjs.gxt.ui.client.Style.LayoutRegion;
28
import com.extjs.gxt.ui.client.util.Margins;
29
import com.extjs.gxt.ui.client.widget.Viewport;
30
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
31
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
91 jpm 32
import com.google.gwt.core.client.GWT;
60 jpm 33
import com.google.gwt.user.client.Window;
34
import com.google.gwt.user.client.ui.RootPanel;
35
 
36
public class Mediateur {
37
 
119 jpm 38
	private Modele modele = null;
39
	private Utilisateur utilisateur = null;
40
 
60 jpm 41
	private Viewport viewport;
42
	private EntetePanneauVue panneauNord = null;
43
	private MenuPanneauVue panneauOuest = null;
44
	private ContenuPanneauVue panneauCentre = null;
45
 
119 jpm 46
 
60 jpm 47
	public Mediateur() {
48
		// Enregistrement du Médiateur dans le Registre
49
		Registry.register(RegistreId.MEDIATEUR, this);
50
		// Création du Modèle qui s'enregistre lui même dans le Registre
119 jpm 51
		modele = new Modele();
64 jpm 52
	    // Création de l'utilsateur courrant
119 jpm 53
		utilisateur = new Utilisateur(null, false);
65 jpm 54
		Registry.register(RegistreId.UTILISATEUR, utilisateur);
55
		this.connecterUtilisateur(null, null);
56
 
60 jpm 57
		// Création du Viewport qui contient la disposition globale de l'application
58
		viewport = new Viewport();
59
		viewport.setLayout(new BorderLayout());
60
 
61
		// Création des différents panneaux
62
	    creerPanneauNord();
63
	    creerPanneauOuest();
64
	    creerPanneauCentral();
65
 
66
		// Registry utile car présent partout!
67
		Registry.register(RegistreId.VIEWPORT, viewport);
68
		Registry.register(RegistreId.PANNEAU_OUEST, panneauOuest);
69
		Registry.register(RegistreId.PANNEAU_CENTRE, panneauCentre);
70
 
71
		// Chargement du menu
72
		chargeMenu(panneauOuest.listerMenu());
73
 
74
		// Retour à GWT du Viewport une fois constuit
75
		RootPanel.get().add(viewport);
76
	}
77
 
119 jpm 78
	public String getUtilisateurId() {
79
		return utilisateur.getId();
80
	}
81
 
60 jpm 82
	private void creerPanneauNord() {
83
		panneauNord = new EntetePanneauVue();
84
 
85
		BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);
86
		regionNord.setCollapsible(true);
87
		regionNord.setFloatable(true);
88
		regionNord.setSplit(false);
89
		regionNord.setMargins(new Margins(5, 5, 0, 5));
90
 
91
		viewport.add(panneauNord, regionNord);
92
	}
93
 
94
	private void creerPanneauOuest() {
95
		panneauOuest = new MenuPanneauVue();
96
 
97
		BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);
98
		regionOuest.setSplit(true);
99
		regionOuest.setCollapsible(true);
100
		regionOuest.setMargins(new Margins(5));
101
 
102
		viewport.add(panneauOuest, regionOuest);
103
	}
104
 
105
	private void creerPanneauCentral() {
106
		panneauCentre = new ContenuPanneauVue();
107
 
108
		BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);
109
		regionCentre.setMargins(new Margins(5, 5, 5, 0));
110
 
111
		viewport.add(panneauCentre, regionCentre);
112
	}
113
 
114
	public void chargeMenu(Menu menus) {
115
		((MenuPanneauVue) Registry.get(RegistreId.PANNEAU_OUEST)).rafraichir(menus);
116
	}
117
 
118
	public void clicMenu(String s) {
119
		panneauCentre.removeAll();
120
		if (s.equals("Institutions")) {
121
			((Modele) Registry.get(RegistreId.MODELE)).obtenirListeInstitutions();
107 aurelien 122
		}else if (s.equals("Publications")) {
123
			((Modele) Registry.get(RegistreId.MODELE)).obtenirListePublications();
124
		}
128 gduche 125
		else if (s.equals("Personnes")) {
126
			((Modele) Registry.get(RegistreId.MODELE)).obtenirListePersonnes();
127
		}
107 aurelien 128
		else {
60 jpm 129
			Window.alert("Non implémenté!");
130
		}
131
		panneauCentre.layout();
132
	}
133
 
134
	public void clicIdentification() {
135
		// Gestion du login
136
		IdentificationFenetre dialog = new IdentificationFenetre();
137
	    dialog.setClosable(false);
138
	    dialog.show();
139
	}
140
 
141
	public void clicListeInstitution(Structure institution) {
142
		((StructureDetailPanneauVue) Registry.get(RegistreId.PANNEAU_INSTITUTION_DETAIL)).rafraichir(institution);
143
	}
144
 
69 jpm 145
	public void afficherListeInstitutions(StructureListe nouvelleDonnees) {
60 jpm 146
		// TODO : créer dès l'initialisation de l'application InsitutionVue et la cacher
147
		StructureVue institutionVue = new StructureVue();
148
		panneauCentre.add(institutionVue);
149
		institutionVue.rafraichir(nouvelleDonnees);
150
	}
61 jpm 151
 
128 gduche 152
	public void afficherListePersonnes(PersonneListe nouvelleDonnees)	{
153
		PersonneVue personneVue = new PersonneVue();
154
		panneauCentre.add(personneVue);
155
		personneVue.rafraichir(nouvelleDonnees);
156
	}
157
 
61 jpm 158
	public void ouvrirAide() {
159
		AideFenetre aideFenetre = new AideFenetre();
160
		aideFenetre.show();
66 jpm 161
		// FIXME : apparament le fade In/Fade Out pose problème sur les navigateurs...
162
		//aideFenetre.el().fadeIn(FxConfig.NONE);
61 jpm 163
	}
164
 
165
	public void ouvrirParametres() {
66 jpm 166
		ParametreFenetre parametresFenetre = new ParametreFenetre();
167
		parametresFenetre.show();
61 jpm 168
	}
169
 
170
	public void ouvrirIdentification() {
171
		IdentificationFenetre identifFenetre = new IdentificationFenetre();
172
		identifFenetre.show();
173
	}
174
 
175
	public void ouvrirApplis(String id) {
176
		if (id.equals(ComposantId.MENU_CEL)) {
177
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");
178
		} else if (id.equals(ComposantId.MENU_BEL)) {
179
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");
180
		}
181
	}
182
 
65 jpm 183
	public void connecterUtilisateur(String login, String mdp) {
184
		((Modele) Registry.get(RegistreId.MODELE)).connecterUtilisateur(login, mdp);
64 jpm 185
	}
186
 
65 jpm 187
	public void deconnecterUtilisateur() {
188
		((Modele) Registry.get(RegistreId.MODELE)).deconnecterUtilisateur();
64 jpm 189
	}
65 jpm 190
 
64 jpm 191
	public void mettreAJourEtatIdentification(Utilisateur utilisateur) {
65 jpm 192
		panneauNord.rafraichir(utilisateur);
61 jpm 193
	}
66 jpm 194
 
69 jpm 195
	public void clicAjouterStructure() {
196
		panneauCentre.removeAll();
197
		FormStructureVue formStructureVue = new FormStructureVue();
198
		panneauCentre.add(formStructureVue);
91 jpm 199
		panneauCentre.setId(ComposantId.PANNEAU_FORM_STRUCTURE);
69 jpm 200
		panneauCentre.layout();
201
	}
202
 
128 gduche 203
	/* GREG : Ajouter Personne
204
	 * Gestion du clic dans le menu gauche
205
	 * Affiche le formulaire
206
	 * */
207
	public void clicAjouterPersonne()	{
208
		GWT.log("ajouter pers", null);
209
	}
210
 
211
 
91 jpm 212
	public void afficherListeValeurs(ValeurListe nouvelleDonnees) {
213
		if (panneauCentre.getId().equals(ComposantId.PANNEAU_FORM_STRUCTURE)) {
214
			((FormStructureVue) panneauCentre.getItem(0)).rafraichir(nouvelleDonnees);
215
		} else {
216
			GWT.log("Aucun panneau trouvé pour afficher la liste de valeur", null);
217
		}
218
	}
219
 
107 aurelien 220
	public void afficherListePublication(PublicationListe nouvelleDonnees) {
221
 
222
		PublicationVue publicationVue = new PublicationVue() ;
223
		panneauCentre.add(publicationVue);
224
		publicationVue.rafraichir(nouvelleDonnees);
225
 
226
	}
227
 
228
	public void clicListePublication(Publication publication) {
229
 
230
		((PublicationDetailPanneauVue) Registry.get(RegistreId.PANNEAU_PUBLICATION_DETAIL)).rafraichir(publication);
231
	}
232
 
233
	public void clicAjouterPublication() {
234
		// TODO Auto-generated method stub
235
 
236
	}
119 jpm 237
	/**
238
	 * TODO : afficher un message du type "Structure ajoutée".
239
	 * Lance la creation d'une structure
240
	 * @param les données de la structure saisie
241
	 */
242
	public void ajouterStructure(Rafraichissable vue, Structure structure) {
243
		modele.ajouterStructure(vue, structure);
244
	}
107 aurelien 245
 
60 jpm 246
}