Subversion Repositories eFlore/Applications.coel

Rev

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