Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 159 Rev 173
1
package org.tela_botanica.client;
1
package org.tela_botanica.client;
2
 
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
3
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.modeles.Configuration;
5
import org.tela_botanica.client.modeles.Configuration;
6
import org.tela_botanica.client.modeles.ListeObservation;
6
import org.tela_botanica.client.modeles.ListeObservation;
7
import org.tela_botanica.client.modeles.Utilisateur;
7
import org.tela_botanica.client.modeles.Utilisateur;
8
 
8
 
9
import org.tela_botanica.client.observation.ObservationMediateur;
9
import org.tela_botanica.client.observation.ObservationMediateur;
10
import org.tela_botanica.client.vues.EtatConnexionVue;
10
import org.tela_botanica.client.vues.EtatConnexionVue;
11
import org.tela_botanica.client.vues.FormulaireDeConnexionVue;
11
import org.tela_botanica.client.vues.FormulaireDeConnexionVue;
12
import org.tela_botanica.client.vues.ListeUtilisateurAdminVue;
12
import org.tela_botanica.client.vues.ListeUtilisateurAdminVue;
13
 
13
 
14
import com.google.gwt.core.client.JavaScriptObject;
14
import com.google.gwt.core.client.JavaScriptObject;
15
import com.google.gwt.user.client.DOM;
15
import com.google.gwt.user.client.DOM;
16
import com.google.gwt.user.client.Event;
16
import com.google.gwt.user.client.Event;
17
import com.google.gwt.user.client.Timer;
17
import com.google.gwt.user.client.Timer;
18
import com.google.gwt.user.client.Window;
18
import com.google.gwt.user.client.Window;
19
import com.google.gwt.user.client.ui.Image;
19
import com.google.gwt.user.client.ui.Image;
20
import com.gwtext.client.core.EventCallback;
20
import com.gwtext.client.core.EventCallback;
21
import com.gwtext.client.core.EventObject;
21
import com.gwtext.client.core.EventObject;
22
import com.gwtext.client.core.Ext;
22
import com.gwtext.client.core.Ext;
23
import com.gwtext.client.core.ExtElement;
23
import com.gwtext.client.core.ExtElement;
24
import com.gwtext.client.core.Function;
24
import com.gwtext.client.core.Function;
25
import com.gwtext.client.widgets.BoxComponent;
25
import com.gwtext.client.widgets.BoxComponent;
26
import com.gwtext.client.widgets.Component;
26
import com.gwtext.client.widgets.Component;
27
import com.gwtext.client.widgets.Container;
27
import com.gwtext.client.widgets.Container;
28
import com.gwtext.client.widgets.Panel;
28
import com.gwtext.client.widgets.Panel;
29
import com.gwtext.client.widgets.TabPanel;
29
import com.gwtext.client.widgets.TabPanel;
30
import com.gwtext.client.widgets.Tool;
30
import com.gwtext.client.widgets.Tool;
31
import com.gwtext.client.widgets.ToolTip;
31
import com.gwtext.client.widgets.ToolTip;
32
import com.gwtext.client.widgets.event.ContainerListener;
32
import com.gwtext.client.widgets.event.ContainerListener;
33
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
33
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
34
import com.gwtext.client.widgets.event.PanelListener;
34
import com.gwtext.client.widgets.event.PanelListener;
35
import com.gwtext.client.widgets.event.PanelListenerAdapter;
35
import com.gwtext.client.widgets.event.PanelListenerAdapter;
36
import com.gwtext.client.widgets.layout.FitLayout;
36
import com.gwtext.client.widgets.layout.FitLayout;
37
import com.gwtext.client.widgets.layout.RowLayout;
37
import com.gwtext.client.widgets.layout.RowLayout;
38
import com.gwtext.client.widgets.layout.RowLayoutData;
38
import com.gwtext.client.widgets.layout.RowLayoutData;
39
 
39
 
40
/**
40
/**
41
 * Mediateur gérant les interactions entre vues et les echanges de données
41
 * Mediateur gérant les interactions entre vues et les echanges de données
42
 * C'est un singleton. 
42
 * C'est un singleton. 
43
 * @author david delon 
43
 * @author david delon 
44
 *
44
 *
45
 */
45
 */
46
 
46
 
47
public class CarnetEnLigneMediateur implements Rafraichissable {
47
public class CarnetEnLigneMediateur implements Rafraichissable {
48
	
48
	
49
	
49
	
50
	/**
50
	/**
51
	 * booleen qui verifie l'unicite de l'instance
51
	 * booleen qui verifie l'unicite de l'instance
52
	 */
52
	 */
53
	private static boolean estInstancie = false ;
53
	private static boolean estInstancie = false ;
54
 
54
 
55
	/**
55
	/**
56
	 * pointeur vers le médiateur lui même (pour le pattern singleton)
56
	 * pointeur vers le médiateur lui même (pour le pattern singleton)
57
	 */
57
	 */
58
	private static CarnetEnLigneMediateur thisMediateur = null ;  
58
	private static CarnetEnLigneMediateur thisMediateur = null ;  
59
		
59
		
60
	/**
60
	/**
61
	 * modele de données
61
	 * modele de données
62
	 */
62
	 */
63
	
63
	
64
	private  CarnetEnLigneModele carnetEnLigneModele=null;
64
	private  CarnetEnLigneModele carnetEnLigneModele=null;
65
 
65
 
66
	
66
	
67
	/**
67
	/**
68
	 * panneau principal de l'application "Carnet en ligne"
68
	 * panneau principal de l'application "Carnet en ligne"
69
	 */
69
	 */
70
 
70
 
71
	private Panel panneauPrincipalCarnetEnLigne= null ;
71
	private Panel panneauPrincipalCarnetEnLigne= null ;
72
	
72
	
73
	
73
	
74
	
74
	
75
	/**
75
	/**
76
	 * panneau a onglet pour les observation et les images
76
	 * panneau a onglet pour les observation et les images
77
	 */ 
77
	 */ 
78
	
78
	
79
	
79
	
80
	private com.gwtext.client.widgets.TabPanel ongletsObservationsImages=null;
80
	private com.gwtext.client.widgets.TabPanel ongletsObservationsImages=null;
81
	
81
	
82
	
82
	
83
	/**
83
	/**
84
	 * Indicateur d'etat de la connexion utilisateur
84
	 * Indicateur d'etat de la connexion utilisateur
85
	 */
85
	 */
86
	
86
	
87
	private EtatConnexionVue etatConnexionVue=null;
87
	private EtatConnexionVue etatConnexionVue=null;
88
	
88
	
89
	
89
	
90
	/**
90
	/**
91
	 * Texte d'invite connexion  
91
	 * Texte d'invite connexion  
92
	 */
92
	 */
93
	private final String texteDeconnexion="Utilisez ce carnet en ligne pour saisir vos observations, <u>identifiez-vous</u> pour les transmettre à Tela Botanica"; 
93
	private final String texteDeconnexion="Utilisez ce carnet en ligne pour saisir vos observations, <u>identifiez-vous</u> pour les transmettre à Tela Botanica"; 
94
 
94
 
95
	/**
95
	/**
96
	 * Boolean indiquant un essai de connexion
96
	 * Boolean indiquant un essai de connexion
97
	 */
97
	 */
98
	
98
	
99
	private boolean tentativeConnection=false;
99
	private boolean tentativeConnection=false;
100
	
100
	
101
 
101
 
102
	/**
102
	/**
103
	 *  Formulaire de connexion (lazy instantiation)
103
	 *  Formulaire de connexion (lazy instantiation)
104
	 *  
104
	 *  
105
	 */
105
	 */
106
	
106
	
107
	private FormulaireDeConnexionVue formulaireDeConnexionVue=null;
107
	private FormulaireDeConnexionVue formulaireDeConnexionVue=null;
108
	
108
	
109
	/**
109
	/**
110
	 * 
110
	 * 
111
	 */
111
	 */
112
	private Panel bandeau = null ;
112
	private Panel bandeau = null ;
113
	
113
	
114
	private Panel panneauAdmin = null ;
114
	private Panel panneauAdmin = null ;
115
	
115
	
116
	Tool cacherPanneau = null ;
116
	Tool cacherPanneau = null ;
117
	
117
	
118
	/**
118
	/**
119
	 * Mediateur Gestion des images
119
	 * Mediateur Gestion des images
120
	 */
120
	 */
121
	
121
	
122
	private ImageMediateur imageMediateur=null;
122
	private ImageMediateur imageMediateur=null;
123
	
123
	
124
	/**
124
	/**
125
	 * Mediateur Gestion des observations
125
	 * Mediateur Gestion des observations
126
	 */
126
	 */
127
	
127
	
128
	private ObservationMediateur observationMediateur=null;
128
	private ObservationMediateur observationMediateur=null;
129
	
129
	
130
	/**
130
	/**
131
	 * Un tooltip pour l'aide
131
	 * Un tooltip pour l'aide
132
	 */
132
	 */
133
	private ToolTip tp = new ToolTip() ;
133
	private ToolTip tp = new ToolTip() ;
134
 
134
 
135
 
135
 
136
	/**
136
	/**
137
	 * Utilisateur en cours
137
	 * Utilisateur en cours
138
	 */
138
	 */
139
 
139
 
140
		
140
		
141
	private Utilisateur utilisateur=null; 
141
	private Utilisateur utilisateur=null; 
142
	
142
	
143
 
143
 
144
	
144
	
145
	public static CarnetEnLigneMediateur Instance()
145
	public static CarnetEnLigneMediateur Instance()
146
	{
146
	{
147
			if(!estInstancie || thisMediateur==null)
147
			if(!estInstancie || thisMediateur==null)
148
			{
148
			{
149
				estInstancie = true ;
149
				estInstancie = true ;
150
				thisMediateur = new CarnetEnLigneMediateur() ;
150
				thisMediateur = new CarnetEnLigneMediateur() ;
151
			}
151
			}
152
			
152
			
153
			return thisMediateur ;
153
			return thisMediateur ;
154
			
154
			
155
	}
155
	}
156
	
156
	
157
	
157
	
158
	/**
158
	/**
159
	 * constructeur privé (on accède a la classe par la méthode getInstance
159
	 * constructeur privé (on accède a la classe par la méthode getInstance
160
	 */
160
	 */
161
	
161
	
162
	private CarnetEnLigneMediateur() {
162
	private CarnetEnLigneMediateur() {
163
	
163
	
164
		
164
		
165
		panneauPrincipalCarnetEnLigne = new Panel("Carnet en ligne");
165
		panneauPrincipalCarnetEnLigne = new Panel("Carnet en ligne");
166
		
166
		
167
//		Disposition 
167
//		Disposition 
168
		
168
		
169
		panneauPrincipalCarnetEnLigne.setLayout(new RowLayout());
169
		panneauPrincipalCarnetEnLigne.setLayout(new RowLayout());
170
 
170
 
171
		
171
		
172
//		On crée un modèle d'acces aux donnnes 
172
//		On crée un modèle d'acces aux donnnes 
173
		
173
		
174
		carnetEnLigneModele=CarnetEnLigneModele.Instance();
174
		carnetEnLigneModele=CarnetEnLigneModele.Instance();
175
		
175
		
176
		
176
		
177
		//Image bandeau = new Image("Bandeau-haut.gif") ;
177
		//Image bandeau = new Image("Bandeau-haut.gif") ;
178
		bandeau = new Panel();
178
		bandeau = new Panel();
179
		bandeau.setId("x-up-bandeau") ;
179
		bandeau.setId("x-up-bandeau") ;
180
		Image logoND = new Image("logo_n_d.gif") ;
180
		Image logoND = new Image("logo_n_d.gif") ;
181
		logoND.setStylePrimaryName("x-img-logo_nd") ;
181
		logoND.setStylePrimaryName("x-img-logo_nd") ;
182
		final Image img = new Image("bandeau-haut.gif") {
182
		final Image img = new Image("bandeau-haut.gif") {
183
			public void onBrowserEvent(Event e) {
183
			public void onBrowserEvent(Event e) {
184
				
184
				
185
				if(DOM.eventGetType(e) == Event.ONCLICK)
185
				if(DOM.eventGetType(e) == Event.ONCLICK)
186
				{
186
				{
187
					bandeau.toggleCollapse(true);
187
					bandeau.toggleCollapse(true);
188
				}
188
				}
189
				if(DOM.eventGetType(e) == Event.ONMOUSEOVER && bandeau.isRendered()) {
189
				if(DOM.eventGetType(e) == Event.ONMOUSEOVER && bandeau.isRendered()) {
190
					tp.setHtml("<div class=\"x-tooltip-help\"> Cliquez sur l'image ou sur la flèche en haut à droite pour replier le panneau </div>");
190
					tp.setHtml("<div class=\"x-tooltip-help\"> Cliquez sur l'image ou sur la flèche en haut à droite pour replier le panneau </div>");
191
					tp.showBy(bandeau.getId());
191
					tp.showBy(bandeau.getId());
192
				}
192
				}
193
				
193
				
194
				
194
				
195
				if(DOM.eventGetType(e) == Event.ONMOUSEOUT) {
195
				if(DOM.eventGetType(e) == Event.ONMOUSEOUT) {
196
					if(tp.isVisible()) {
196
					if(tp.isVisible()) {
197
						tp.hide();
197
						tp.hide();
198
					}
198
					}
199
				}
199
				}
200
			}
200
			}
201
		};
201
		};
202
		tp.setHtml("<div class=\"x-tooltip-help\"> Cliquez sur l'image ou sur la flèche en haut à droite pour replier le panneau </div>");
202
		tp.setHtml("<div class=\"x-tooltip-help\"> Cliquez sur l'image ou sur la flèche en haut à droite pour replier le panneau </div>");
203
		
203
		
204
		bandeau.add(img) ;
204
		bandeau.add(img) ;
205
		img.setSize("50%", "100%");
205
		img.setSize("50%", "100%");
206
		bandeau.add(logoND) ;
206
		bandeau.add(logoND) ;
207
		logoND.setSize("10%", "100%");
207
		logoND.setSize("10%", "100%");
208
		bandeau.setBorder(false) ;
208
		bandeau.setBorder(false) ;
209
		// La vue affichant le statut de la connexion 
209
		// La vue affichant le statut de la connexion 
210
		bandeau.setSize("60%","80%") ;
210
		bandeau.setSize("60%","80%") ;
211
		etatConnexionVue=new EtatConnexionVue(this);
211
		etatConnexionVue=new EtatConnexionVue(this);
212
		etatConnexionVue.setLayout(new FitLayout()) ;
212
		etatConnexionVue.setLayout(new FitLayout()) ;
213
		
213
		
214
		// Le panneau à onglet qui contient les 2 applications Observation et Images 
214
		// Le panneau à onglet qui contient les 2 applications Observation et Images 
215
		
215
		
216
		ongletsObservationsImages = new TabPanel();
216
		ongletsObservationsImages = new TabPanel();
217
		
217
		
218
		panneauPrincipalCarnetEnLigne.add(etatConnexionVue,new RowLayoutData(20));
218
		panneauPrincipalCarnetEnLigne.add(etatConnexionVue,new RowLayoutData(20));
219
		panneauPrincipalCarnetEnLigne.add(bandeau, new RowLayoutData("10%")) ;
219
		panneauPrincipalCarnetEnLigne.add(bandeau, new RowLayoutData("10%")) ;
220
		
220
		
221
		img.sinkEvents(Event.ONCLICK);
221
		img.sinkEvents(Event.ONCLICK);
222
		img.sinkEvents(Event.ONMOUSEOVER);
222
		img.sinkEvents(Event.ONMOUSEOVER);
223
		img.sinkEvents(Event.ONMOUSEOUT);
223
		img.sinkEvents(Event.ONMOUSEOUT);
224
		
224
		
225
		//	on ajoute le panneau a onglet au panneau principal
225
		//	on ajoute le panneau a onglet au panneau principal
226
		cacherPanneau = new Tool(Tool.TOGGLE, new Function() {
226
		cacherPanneau = new Tool(Tool.TOGGLE, new Function() {
227
 
227
 
228
			public void execute() {
228
			public void execute() {
229
				
229
				
230
				if(!bandeau.isCollapsed()) {
230
				if(!bandeau.isCollapsed()) {
231
					bandeau.toggleCollapse(true) ;
231
					bandeau.toggleCollapse(true) ;
232
				}
232
				}
233
				else {
233
				else {
234
					bandeau.toggleCollapse(true) ;
234
					bandeau.toggleCollapse(true) ;
235
				}
235
				}
236
				
236
				
237
			}
237
			}
238
			
238
			
239
		}) ;
239
		}) ;
240
		
240
		
241
		panneauAdmin = new Panel();
241
		panneauAdmin = new Panel();
242
		panneauPrincipalCarnetEnLigne.add(panneauAdmin, new RowLayoutData(20));
242
		panneauPrincipalCarnetEnLigne.add(panneauAdmin, new RowLayoutData(20));
243
		panneauAdmin.setBorder(false);
243
		panneauAdmin.setBorder(false);
244
		panneauAdmin.hide();
244
		panneauAdmin.hide();
245
		
245
		
246
		panneauPrincipalCarnetEnLigne.add(ongletsObservationsImages);
246
		panneauPrincipalCarnetEnLigne.add(ongletsObservationsImages);
247
		panneauPrincipalCarnetEnLigne.addTool(cacherPanneau) ;
247
		panneauPrincipalCarnetEnLigne.addTool(cacherPanneau) ;
248
		
248
		
249
		panneauPrincipalCarnetEnLigne.setAutoScroll(true);
249
		panneauPrincipalCarnetEnLigne.setAutoScroll(true);
250
		
250
		
251
		// On ajoute les applications 		
251
		// On ajoute les applications 		
252
		observationMediateur = ObservationMediateur.Instance(this);
252
		observationMediateur = ObservationMediateur.Instance(this);
253
		imageMediateur= ImageMediateur.Instance(this);
253
		imageMediateur= ImageMediateur.Instance(this);
254
		
254
		
255
		//temp dd viewport desactive ajout de cette  ligne
255
		//temp dd viewport desactive ajout de cette  ligne
256
		getPanneauPrincipalCarnetEnLigne().setHeight(Window.getClientHeight()) ;
256
		getPanneauPrincipalCarnetEnLigne().setHeight(Window.getClientHeight()) ;
257
		
257
		
258
		//	on ajoute les panneaux  principaux des applications au panneau à onglets
258
		//	on ajoute les panneaux  principaux des applications au panneau à onglets
259
		ongletsObservationsImages.add(observationMediateur.getPanneauPrincipalObservation());
259
		ongletsObservationsImages.add(observationMediateur.getPanneauPrincipalObservation());
260
		ongletsObservationsImages.add(imageMediateur.getPanneauPrincipalImage());
260
		ongletsObservationsImages.add(imageMediateur.getPanneauPrincipalImage());
261
	}
261
	}
262
	
262
	
263
	
263
	
264
	public void getEtatUtilisateur() { 
264
	public void getEtatUtilisateur() { 
265
		
265
		
266
			
266
			
267
		carnetEnLigneModele.getEtatUtilisateur(this); 
267
		carnetEnLigneModele.getEtatUtilisateur(this); 
268
				
268
				
269
		
269
		
270
	}
270
	}
271
 
271
 
272
 
272
 
273
	// Methode publiques
273
	// Methode publiques
274
	
274
	
275
	
275
	
276
	
276
	
277
	/**
277
	/**
278
	 * Recherche Identifiant utilisateur en cours et etat de connection
278
	 * Recherche Identifiant utilisateur en cours et etat de connection
279
	 * @return Utilisateur
279
	 * @return Utilisateur
280
	 */
280
	 */
281
	
281
	
282
	
282
	
283
	public Utilisateur getUtilisateur() {
283
	public Utilisateur getUtilisateur() {
284
		return utilisateur;
284
		return utilisateur;
285
	}
285
	}
286
 
286
 
287
	/**
287
	/**
288
	 * Deconnecte l'utilisateur passe en parametre
288
	 * Deconnecte l'utilisateur passe en parametre
289
	 */
289
	 */
290
    public void deconnecterUtilisateur() {
290
    public void deconnecterUtilisateur() {
291
 
291
 
292
    	// TODO: vider proprement toutes les vues (méthode à voir)
292
    	// TODO: vider proprement toutes les vues (méthode à voir)
293
		carnetEnLigneModele.deconnecterUtilisateur(this, utilisateur.getIdentifiant());
293
		carnetEnLigneModele.deconnecterUtilisateur(this, utilisateur.getIdentifiant());
294
		
294
		
295
		observationMediateur.deconnecterUtilisateur() ;
295
		observationMediateur.deconnecterUtilisateur() ;
296
		imageMediateur.deconnecterUtilisateur();
296
		imageMediateur.deconnecterUtilisateur();
297
		
297
		
298
		panneauAdmin.setVisible(false);
298
		panneauAdmin.setVisible(false);
299
	}
299
	}
300
 
300
 
301
	public void connecterUtilisateur(String login, String password) {
301
	public void connecterUtilisateur(String login, String password) {
302
	
302
	
303
		tentativeConnection=true;
303
		tentativeConnection=true;
304
		carnetEnLigneModele.connecterUtilisateur(this, login, password); 
304
		carnetEnLigneModele.connecterUtilisateur(this, login, password); 
305
		
305
		
306
	}
306
	}
307
 
307
 
308
 
308
 
309
	
309
	
310
	/**
310
	/**
311
	 *  Affichage etat de la connexion
311
	 *  Affichage etat de la connexion
312
	 */
312
	 */
313
	
313
	
314
	
314
	
315
	private void afficheEtatConnexion() {
315
	private void afficheEtatConnexion() {
316
		 
316
		 
317
		
317
		
318
		if (!utilisateur.isIdentifie()) {
318
		if (!utilisateur.isIdentifie()) {
319
			   etatConnexionVue.setEtat("",false);
319
			   etatConnexionVue.setEtat("",false);
320
		}
320
		}
321
		else {
321
		else {
322
			if(utilisateur.isAdmin()) {
322
			if(utilisateur.isAdmin()) {
323
		    	  afficherLienAdmin();
323
		    	  afficherLienAdmin();
324
		    }
324
		    }
325
			
325
			
326
			panneauAdmin.setVisible(utilisateur.isAdmin());
326
			panneauAdmin.setVisible(utilisateur.isAdmin());
327
		    etatConnexionVue.setEtat(utilisateur.getIdentifiant(),true);
327
		    etatConnexionVue.setEtat(utilisateur.getIdentifiant(),true);
328
		      
328
		      
329
		}
329
		}
330
		
330
		
331
	}
331
	}
332
 
332
 
333
	
333
	
334
	/**
334
	/**
335
	 * 
335
	 * 
336
	 * Affichage boite de connexion
336
	 * Affichage boite de connexion
337
	 *
337
	 *
338
	 */
338
	 */
339
	
339
	
340
	
340
	
341
	public void afficherDialogueConnexion() {
341
	public void afficherDialogueConnexion() {
342
		
342
		
343
		  if (formulaireDeConnexionVue==null) { 
343
		  if (formulaireDeConnexionVue==null) { 
344
			  formulaireDeConnexionVue= new FormulaireDeConnexionVue(this);
344
			  formulaireDeConnexionVue= new FormulaireDeConnexionVue(this);
345
		  }
345
		  }
346
		  
346
		  
347
		  // On le positionne à peu près au milieu de l'écran
347
		  // On le positionne à peu près au milieu de l'écran
348
		  int left = (Window.getClientWidth() - 512) / 2;
348
		  int left = (Window.getClientWidth() - 512) / 2;
349
		  int top = (Window.getClientHeight() - 256) / 2;
349
		  int top = (Window.getClientHeight() - 256) / 2;
350
		  
350
		  
351
		  formulaireDeConnexionVue.setPopupPosition(left, top);
351
		  formulaireDeConnexionVue.setPopupPosition(left, top);
352
		  formulaireDeConnexionVue.show();
352
		  formulaireDeConnexionVue.show();
353
		
353
		
354
	}
354
	}
355
 
-
 
356
 
-
 
357
	
-
 
358
 
355
 
359
	public Panel getPanneauPrincipalCarnetEnLigne() {
356
	public Panel getPanneauPrincipalCarnetEnLigne() {
360
		return panneauPrincipalCarnetEnLigne;
357
		return panneauPrincipalCarnetEnLigne;
361
	}
358
	}
362
 
359
 
363
	
360
	
364
//	 TODO : repandre rafraichissement
361
//	 TODO : repandre rafraichissement
365
 
362
 
366
	public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {
363
	public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {
367
 
364
 
368
			if (nouvelleDonnees instanceof Utilisateur) {
365
			if (nouvelleDonnees instanceof Utilisateur) {
369
							      
366
							      
370
				utilisateur = (Utilisateur) nouvelleDonnees;
367
				utilisateur = (Utilisateur) nouvelleDonnees;
371
								
368
								
372
				afficheEtatConnexion();
369
				afficheEtatConnexion();
373
				
370
				
374
				if ((tentativeConnection) && !utilisateur.isIdentifie()) {
371
				if ((tentativeConnection) && !utilisateur.isIdentifie()) {
375
					
372
					
376
					panneauAdmin.setVisible(false);
373
					panneauAdmin.setVisible(false);
377
					//formulaireDeConnexionVue.afficherMessageAlerte();
374
					formulaireDeConnexionVue.afficherMessageAlerte();
378
				}
375
				}
379
				else {
376
				else {
380
					if ((tentativeConnection) && utilisateur.isIdentifie()) {						
377
					if ((tentativeConnection) && utilisateur.isIdentifie()) {						
381
						formulaireDeConnexionVue.hide();
378
						formulaireDeConnexionVue.cacher();
382
					}
379
					}
383
				}
380
				}
384
 
381
 
385
			// On lance l'affichage des observations
382
			// On lance l'affichage des observations
386
				observationMediateur.connecterUtilisateur();
383
				observationMediateur.connecterUtilisateur();
387
				imageMediateur.connecterUtilisateur();
384
				imageMediateur.connecterUtilisateur();
388
 
385
 
389
			}
386
			}
390
 
387
 
391
	}
388
	}
392
 
389
 
393
	public void afficherListeUtilisateurs() {
390
	public void afficherListeUtilisateurs() {
394
		
391
		
395
		ListeUtilisateurAdminVue listeUtilisateur = new ListeUtilisateurAdminVue(this) ;
392
		ListeUtilisateurAdminVue listeUtilisateur = new ListeUtilisateurAdminVue(this) ;
396
		listeUtilisateur.show(Ext.get("LienChangerUtilisateur").getDOM());
393
		listeUtilisateur.show(Ext.get("LienChangerUtilisateur").getDOM());
397
		
394
		
398
	}
395
	}
399
	
396
	
400
	public void afficherLienAdmin() {
397
	public void afficherLienAdmin() {
401
 
398
 
402
		String labelAdmin = "<div id=\"lienAdmin\">Vous consultez les données de "+utilisateur.getIdentite()+"  <a id=\"LienChangerUtilisateur\" href=\"#\">Changer d'utilisateur</a></div>" ;
399
		String labelAdmin = "<div id=\"lienAdmin\">Vous consultez les données de "+utilisateur.getIdentite()+"  <a id=\"LienChangerUtilisateur\" href=\"#\">Changer d'utilisateur</a></div>" ;
403
		panneauAdmin.setHtml(labelAdmin);
400
		panneauAdmin.setHtml(labelAdmin);
404
		
401
		
405
		ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
402
		ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
406
		if(lienChangerUt != null) 
403
		if(lienChangerUt != null) 
407
		{	
404
		{	
408
			lienChangerUt.removeAllListeners();
405
			lienChangerUt.removeAllListeners();
409
			lienChangerUt.addListener("click", new EventCallback() {
406
			lienChangerUt.addListener("click", new EventCallback() {
410
 
407
 
411
				public void execute(EventObject e) {
408
				public void execute(EventObject e) {
412
					afficherListeUtilisateurs();
409
					afficherListeUtilisateurs();
413
				}
410
				}
414
				
411
				
415
			});
412
			});
416
		}
413
		}
417
		else
414
		else
418
		{
415
		{
419
			panneauAdmin.addListener(new ContainerListenerAdapter() 
416
			panneauAdmin.addListener(new ContainerListenerAdapter() 
420
			{
417
			{
421
				public void onAfterLayout(Container c) 
418
				public void onAfterLayout(Container c) 
422
				{
419
				{
423
					ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
420
					ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
424
					lienChangerUt.removeAllListeners();
421
					lienChangerUt.removeAllListeners();
425
					lienChangerUt.addListener("click", new EventCallback() {
422
					lienChangerUt.addListener("click", new EventCallback() {
426
 
423
 
427
						public void execute(EventObject e) {
424
						public void execute(EventObject e) {
428
							afficherListeUtilisateurs();
425
							afficherListeUtilisateurs();
429
						}
426
						}
430
						
427
						
431
					});
428
					});
432
				}
429
				}
433
			});
430
			});
434
		}
431
		}
435
	}
432
	}
436
	
433
	
437
	public void changerIdentite(String nouvelleIdentite) {
434
	public void changerIdentite(String nouvelleIdentite) {
438
		utilisateur.setIdentite(nouvelleIdentite);
435
		utilisateur.setIdentite(nouvelleIdentite);
439
		afficherLienAdmin();
436
		afficherLienAdmin();
440
		observationMediateur.connecterUtilisateur();
437
		observationMediateur.connecterUtilisateur();
441
		imageMediateur.connecterUtilisateur();
438
		imageMediateur.connecterUtilisateur();
442
	}
439
	}
443
 
-
 
444
 
440
 
445
	public void obtenirListeUtilisateurs(String rech, Rafraichissable r) {
441
	public void obtenirListeUtilisateurs(String rech, Rafraichissable r) {
446
		carnetEnLigneModele.obtenirListeUtilisateur(r,rech,utilisateur.getIdentifiant());
442
		carnetEnLigneModele.obtenirListeUtilisateur(r,rech,utilisateur.getIdentifiant());
447
	}
443
	}
448
 
-
 
449
 
444
 
450
	public void donneesImagesVersObs(Object o) {
445
	public void donneesImagesVersObs(Object o) {
451
		observationMediateur.donneesExterieures(o);
446
		observationMediateur.donneesExterieures(o);
452
	}
447
	}
453
	
448
	
454
	public void donneesObsVersImages(Object o) {
449
	public void donneesObsVersImages(Object o) {
455
		imageMediateur.donneesExterieures(o);
450
		imageMediateur.donneesExterieures(o);
456
	}
451
	}
457
	
452
	
458
	public void obtenirListeObservations(Rafraichissable r) {
453
	public void obtenirListeObservations(Rafraichissable r) {
459
		observationMediateur.obtenirCacheObservation(r) ;
454
		observationMediateur.obtenirCacheObservation(r) ;
460
	}
455
	}
461
 
456
 
462
}
457
}