Subversion Repositories eFlore/Applications.coel

Rev

Rev 134 | Rev 156 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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