Subversion Repositories eFlore/Applications.coel

Rev

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

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