Subversion Repositories eFlore/Applications.coel

Rev

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