Subversion Repositories eFlore/Applications.coel

Rev

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