Subversion Repositories eFlore/Applications.cel

Rev

Rev 2615 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2615 Rev 2656
1
package org.tela_botanica.client;
1
package org.tela_botanica.client;
2
 
2
 
3
import org.tela_botanica.client.i18n.Msg;
3
import org.tela_botanica.client.i18n.Msg;
4
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.image.ImageMediateur;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.modeles.objets.Utilisateur;
6
import org.tela_botanica.client.modeles.objets.Utilisateur;
7
import org.tela_botanica.client.observation.ObservationMediateur;
7
import org.tela_botanica.client.observation.ObservationMediateur;
8
import org.tela_botanica.client.vues.EtatConnexionVue;
8
import org.tela_botanica.client.vues.EtatConnexionVue;
9
import org.tela_botanica.client.vues.FenetreLicenceVue;
9
import org.tela_botanica.client.vues.FenetreLicenceVue;
10
import org.tela_botanica.client.vues.FormulaireDeConnexionVue;
10
import org.tela_botanica.client.vues.FormulaireDeConnexionVue;
11
import org.tela_botanica.client.vues.ListeUtilisateurAdminVue;
11
import org.tela_botanica.client.vues.ListeUtilisateurAdminVue;
12
 
12
 
13
import com.google.gwt.core.client.GWT;
13
import com.google.gwt.core.client.GWT;
14
import com.google.gwt.user.client.Timer;
14
import com.google.gwt.user.client.Timer;
15
import com.google.gwt.user.client.Window;
15
import com.google.gwt.user.client.Window;
16
import com.gwtext.client.core.EventCallback;
16
import com.gwtext.client.core.EventCallback;
17
import com.gwtext.client.core.EventObject;
17
import com.gwtext.client.core.EventObject;
18
import com.gwtext.client.core.Ext;
18
import com.gwtext.client.core.Ext;
19
import com.gwtext.client.core.ExtElement;
19
import com.gwtext.client.core.ExtElement;
20
import com.gwtext.client.widgets.BoxComponent;
20
import com.gwtext.client.widgets.BoxComponent;
21
import com.gwtext.client.widgets.Container;
21
import com.gwtext.client.widgets.Container;
22
import com.gwtext.client.widgets.Panel;
22
import com.gwtext.client.widgets.Panel;
23
import com.gwtext.client.widgets.TabPanel;
23
import com.gwtext.client.widgets.TabPanel;
24
import com.gwtext.client.widgets.Tool;
24
import com.gwtext.client.widgets.Tool;
25
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
25
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
26
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
26
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
27
import com.gwtext.client.widgets.layout.FitLayout;
27
import com.gwtext.client.widgets.layout.FitLayout;
28
import com.gwtext.client.widgets.layout.RowLayout;
28
import com.gwtext.client.widgets.layout.RowLayout;
29
import com.gwtext.client.widgets.layout.RowLayoutData;
29
import com.gwtext.client.widgets.layout.RowLayoutData;
30
 
30
 
31
/**
31
/**
32
 * Mediateur gérant les interactions entre vues et les echanges de données
32
 * Mediateur gérant les interactions entre vues et les echanges de données
33
 * C'est un singleton. 
33
 * C'est un singleton. 
34
 * @author david delon 
34
 * @author david delon 
35
 *
35
 *
36
 */
36
 */
37
 
37
 
38
public class CarnetEnLigneMediateur implements Rafraichissable {
38
public class CarnetEnLigneMediateur implements Rafraichissable {
39
	
39
	
40
	
40
	
41
	/**
41
	/**
42
	 * booleen qui verifie l'unicite de l'instance
42
	 * booleen qui verifie l'unicite de l'instance
43
	 */
43
	 */
44
	private static boolean estInstancie = false ;
44
	private static boolean estInstancie = false ;
45
 
45
 
46
	/**
46
	/**
47
	 * pointeur vers le médiateur lui même (pour le pattern singleton)
47
	 * pointeur vers le médiateur lui même (pour le pattern singleton)
48
	 */
48
	 */
49
	private static CarnetEnLigneMediateur thisMediateur = null ;  
49
	private static CarnetEnLigneMediateur thisMediateur = null ;  
50
		
50
		
51
	/**
51
	/**
52
	 * modele de données
52
	 * modele de données
53
	 */
53
	 */
54
	
54
	
55
	private  CarnetEnLigneModele carnetEnLigneModele=null;
55
	private  CarnetEnLigneModele carnetEnLigneModele=null;
56
 
56
 
57
	
57
	
58
	/**
58
	/**
59
	 * panneau principal de l'application "Carnet en ligne"
59
	 * panneau principal de l'application "Carnet en ligne"
60
	 */
60
	 */
61
 
61
 
62
	private Panel panneauPrincipalCarnetEnLigne= null ;
62
	private Panel panneauPrincipalCarnetEnLigne= null ;
63
	
63
	
64
	
64
	
65
	
65
	
66
	/**
66
	/**
67
	 * panneau a onglet pour les observation et les images
67
	 * panneau a onglet pour les observation et les images
68
	 */ 
68
	 */ 
69
	
69
	
70
	
70
	
71
	private com.gwtext.client.widgets.TabPanel ongletsObservationsImages=null;
71
	private com.gwtext.client.widgets.TabPanel ongletsObservationsImages=null;
72
	
72
	
73
	
73
	
74
	/**
74
	/**
75
	 * Indicateur d'etat de la connexion utilisateur
75
	 * Indicateur d'etat de la connexion utilisateur
76
	 */
76
	 */
77
	
77
	
78
	private EtatConnexionVue etatConnexionVue=null;
78
	private EtatConnexionVue etatConnexionVue=null;
79
	
79
	
80
	
80
	
81
	/**
81
	/**
82
	 * Texte d'invite connexion  
82
	 * Texte d'invite connexion  
83
	 */
83
	 */
84
	private final String texteDeconnexion= Msg.get("cel-utilisation")+", <u>"+Msg.get("identifiez-vous")+"</u> "+Msg.get("pour-transmettre-tela"); 
84
	private final String texteDeconnexion= Msg.get("cel-utilisation")+", <u>"+Msg.get("identifiez-vous")+"</u> "+Msg.get("pour-transmettre-tela"); 
85
 
85
 
86
	/**
86
	/**
87
	 * Boolean indiquant un essai de connexion
87
	 * Boolean indiquant un essai de connexion
88
	 */
88
	 */
89
	
89
	
90
	private boolean tentativeConnection=false;
90
	private boolean tentativeConnection=false;
91
	
91
	
92
	/**
92
	/**
93
	 * Booleen indique que la licence a été acceptée
93
	 * Booleen indique que la licence a été acceptée
94
	 */
94
	 */
95
	private boolean licenceUtilisateurAcceptee = false;
95
	private boolean licenceUtilisateurAcceptee = false;
96
	
96
	
97
 
97
 
98
	/**
98
	/**
99
	 *  Formulaire de connexion (lazy instantiation)
99
	 *  Formulaire de connexion (lazy instantiation)
100
	 *  
100
	 *  
101
	 */
101
	 */
102
	
102
	
103
	private FormulaireDeConnexionVue formulaireDeConnexionVue=null;
103
	private FormulaireDeConnexionVue formulaireDeConnexionVue=null;
104
	
104
	
105
	/**
105
	/**
106
	 * 
106
	 * 
107
	 */
107
	 */
108
	private Panel bandeau = null ;
108
	private Panel bandeau = null ;
109
	
109
	
110
	private Panel panneauAdmin = null ;
110
	private Panel panneauAdmin = null ;
111
	
111
	
112
	Tool cacherPanneau = null ;
112
	Tool cacherPanneau = null ;
113
	
113
	
114
	private FenetreLicenceVue fenetreAcceptationLicence = null;
114
	private FenetreLicenceVue fenetreAcceptationLicence = null;
115
	
115
	
116
	/**
116
	/**
117
	 * Mediateur Gestion des images
117
	 * Mediateur Gestion des images
118
	 */
118
	 */
119
	
119
	
120
	private ImageMediateur imageMediateur=null;
120
	private ImageMediateur imageMediateur=null;
121
	
121
	
122
	/**
122
	/**
123
	 * Mediateur Gestion des observations
123
	 * Mediateur Gestion des observations
124
	 */
124
	 */
125
	
125
	
126
	private ObservationMediateur observationMediateur=null;
126
	private ObservationMediateur observationMediateur=null;
127
	
127
	
128
	/**
128
	/**
129
	 * Utilisateur en cours
129
	 * Utilisateur en cours
130
	 */
130
	 */
131
 
131
 
132
		
132
		
133
	private Utilisateur utilisateur=null; 
133
	private Utilisateur utilisateur=null; 
134
	
134
	
135
 
135
 
136
	
136
	
137
	public static CarnetEnLigneMediateur Instance()
137
	public static CarnetEnLigneMediateur Instance()
138
	{
138
	{
139
			if(!estInstancie || thisMediateur==null)
139
			if(!estInstancie || thisMediateur==null)
140
			{
140
			{
141
				estInstancie = true ;
141
				estInstancie = true ;
142
				thisMediateur = new CarnetEnLigneMediateur() ;
142
				thisMediateur = new CarnetEnLigneMediateur() ;
143
			}
143
			}
144
			
144
			
145
			return thisMediateur ;
145
			return thisMediateur ;
146
			
146
			
147
	}
147
	}
148
	
148
	
149
	
149
	
150
	/**
150
	/**
151
	 * constructeur privé (on accède a la classe par la méthode getInstance
151
	 * constructeur privé (on accède a la classe par la méthode getInstance
152
	 */
152
	 */
153
	
153
	
154
	private CarnetEnLigneMediateur() {
154
	private CarnetEnLigneMediateur() {
155
	
155
	
156
		
156
		
157
		panneauPrincipalCarnetEnLigne = new Panel("Carnet en ligne");
157
		panneauPrincipalCarnetEnLigne = new Panel("Carnet en ligne");
158
		
158
		
159
//		Disposition 
159
//		Disposition 
160
		
160
		
161
		panneauPrincipalCarnetEnLigne.setLayout(new RowLayout());
161
		panneauPrincipalCarnetEnLigne.setLayout(new RowLayout());
162
 
162
 
163
		
163
		
164
		// Pourrait etre fait plus loin ... 
164
		// Pourrait etre fait plus loin ... 
165
		carnetEnLigneModele=CarnetEnLigneModele.Instance();
165
		carnetEnLigneModele=CarnetEnLigneModele.Instance();
166
		
166
		
167
		
167
		
168
		bandeau = new Panel();
168
		bandeau = new Panel();
169
		bandeau.setId("x-up-bandeau") ;
169
		bandeau.setId("x-up-bandeau") ;
170
		etatConnexionVue=new EtatConnexionVue(this);
170
		etatConnexionVue=new EtatConnexionVue(this);
171
		etatConnexionVue.setLayout(new FitLayout()) ;
-
 
172
		
171
		
173
		// Le panneau à onglet qui contient les 2 applications Observation et Images 
172
		// Le panneau à onglet qui contient les 2 applications Observation et Images 
174
		
173
		
175
		ongletsObservationsImages = new TabPanel();
174
		ongletsObservationsImages = new TabPanel();
176
		
175
		
177
		panneauPrincipalCarnetEnLigne.add(etatConnexionVue,new RowLayoutData(16));
176
		panneauPrincipalCarnetEnLigne.add(etatConnexionVue,new RowLayoutData(16));
178
		
177
		
179
		panneauAdmin = new Panel();
178
		panneauAdmin = new Panel();
180
		panneauAdmin.setId("panneau_admin");
179
		panneauAdmin.setId("panneau_admin");
181
		panneauPrincipalCarnetEnLigne.add(panneauAdmin, new RowLayoutData(16));
180
		panneauPrincipalCarnetEnLigne.add(panneauAdmin, new RowLayoutData(16));
182
		panneauAdmin.setBorder(false);
181
		panneauAdmin.setBorder(false);
183
		panneauAdmin.hide();
182
		panneauAdmin.hide();
184
		
183
		
185
		panneauPrincipalCarnetEnLigne.add(ongletsObservationsImages,new RowLayoutData());
184
		panneauPrincipalCarnetEnLigne.add(ongletsObservationsImages,new RowLayoutData());
186
		//panneauPrincipalCarnetEnLigne.addTool(cacherPanneau) ;
185
		//panneauPrincipalCarnetEnLigne.addTool(cacherPanneau) ;
187
		
186
		
188
	
187
	
189
		
188
		
190
		// On ajoute les applications 		
189
		// On ajoute les applications 		
191
		observationMediateur = ObservationMediateur.Instance(this);
190
		observationMediateur = ObservationMediateur.Instance(this);
192
		imageMediateur= ImageMediateur.Instance(this);
191
		imageMediateur= ImageMediateur.Instance(this);
193
		
192
		
194
		if(!GWT.isScript()) {
193
		if(!GWT.isScript()) {
195
			//temp dd viewport desactive ajout de cette  ligne
194
			//temp dd viewport desactive ajout de cette  ligne
196
			getPanneauPrincipalCarnetEnLigne().setHeight(Window.getClientHeight()) ;
195
			getPanneauPrincipalCarnetEnLigne().setHeight(Window.getClientHeight()) ;
197
		}
196
		}
198
		
197
		
199
		panneauPrincipalCarnetEnLigne.addListener(new ContainerListenerAdapter() {
198
		panneauPrincipalCarnetEnLigne.addListener(new ContainerListenerAdapter() {
200
 
199
 
201
			@Override
200
			@Override
202
			public void onResize(BoxComponent component, int adjWidth,
201
			public void onResize(BoxComponent component, int adjWidth,
203
					int adjHeight, int rawWidth, int rawHeight) {
202
					int adjHeight, int rawWidth, int rawHeight) {
204
				CarnetEnLigneMediateur.fireResize();
203
				CarnetEnLigneMediateur.fireResize();
205
				observationMediateur.redimensionnerPanneaux(adjHeight, adjWidth);
204
				observationMediateur.redimensionnerPanneaux(adjHeight, adjWidth);
206
				
205
				
207
			}
206
			}
208
		});
207
		});
209
		
208
		
210
		ongletsObservationsImages.addListener(new TabPanelListenerAdapter() {
209
		ongletsObservationsImages.addListener(new TabPanelListenerAdapter() {
211
									
210
									
212
			@Override
211
			@Override
213
			public void onTabChange(TabPanel source, Panel tab) {
212
			public void onTabChange(TabPanel source, Panel tab) {
214
				if(tab.equals(imageMediateur.getPanneauPrincipalImage())) {
213
				if(tab.equals(imageMediateur.getPanneauPrincipalImage())) {
215
					
214
					
216
					Timer t = new Timer() {
215
					Timer t = new Timer() {
217
						
216
						
218
						@Override
217
						@Override
219
						public void run() {
218
						public void run() {
220
							imageMediateur.obtenirNombreMiniListeObservations();
219
							imageMediateur.obtenirNombreMiniListeObservations();
221
							imageMediateur.rafraichirToutesVues();
220
							imageMediateur.rafraichirToutesVues();
222
						}
221
						}
223
					};
222
					};
224
					
223
					
225
					t.schedule(150);
224
					t.schedule(150);
226
				}
225
				}
227
			}
226
			}
228
		});
227
		});
229
		
228
		
230
		//	on ajoute les panneaux  principaux des applications au panneau à onglets
229
		//	on ajoute les panneaux  principaux des applications au panneau à onglets
231
		ongletsObservationsImages.add(observationMediateur.getPanneauPrincipalObservation());
230
		ongletsObservationsImages.add(observationMediateur.getPanneauPrincipalObservation());
232
		ongletsObservationsImages.add(imageMediateur.getPanneauPrincipalImage());
231
		ongletsObservationsImages.add(imageMediateur.getPanneauPrincipalImage());
233
	}
232
	}
234
	
233
	
235
	
234
	
236
	public void getEtatUtilisateur() { 
235
	public void getEtatUtilisateur() { 
237
							
236
							
238
		
237
		
239
		carnetEnLigneModele.getEtatUtilisateur(this); 
238
		carnetEnLigneModele.getEtatUtilisateur(this); 
240
				
239
				
241
		
240
		
242
	}
241
	}
243
 
242
 
244
 
243
 
245
	// Methode publiques
244
	// Methode publiques
246
	
245
	
247
	
246
	
248
	
247
	
249
	/**
248
	/**
250
	 * Recherche Identifiant utilisateur en cours et etat de connection
249
	 * Recherche Identifiant utilisateur en cours et etat de connection
251
	 * @return Utilisateur
250
	 * @return Utilisateur
252
	 */
251
	 */
253
	
252
	
254
	
253
	
255
	public Utilisateur getUtilisateur() {
254
	public Utilisateur getUtilisateur() {
256
		return utilisateur;
255
		return utilisateur;
257
	}
256
	}
258
 
257
 
259
	/**
258
	/**
260
	 * Deconnecte l'utilisateur passe en parametre
259
	 * Deconnecte l'utilisateur passe en parametre
261
	 */
260
	 */
262
    public void deconnecterUtilisateur() {
261
    public void deconnecterUtilisateur() {
263
    	
262
    	
264
    	licenceUtilisateurAcceptee = false;
263
    	licenceUtilisateurAcceptee = false;
265
    	
264
    	
266
    	// TODO: vider proprement toutes les vues (méthode à voir)
265
    	// TODO: vider proprement toutes les vues (méthode à voir)
267
		carnetEnLigneModele.deconnecterUtilisateur(this, Utilisateur.getInstance().getIdentifiantUtilisateurConsulte());
266
		carnetEnLigneModele.deconnecterUtilisateur(this, Utilisateur.getInstance().getIdentifiantUtilisateurConsulte());
268
		
267
		
269
		observationMediateur.deconnecterUtilisateur() ;
268
		observationMediateur.deconnecterUtilisateur() ;
270
		imageMediateur.deconnecterUtilisateur();
269
		imageMediateur.deconnecterUtilisateur();
271
		
270
		
272
		panneauAdmin.setVisible(false);
271
		panneauAdmin.setVisible(false);
273
	}
272
	}
274
 
273
 
275
	public void connecterUtilisateur(String login, String password) {
274
	public void connecterUtilisateur(String login, String password) {
276
	
275
	
277
		tentativeConnection=true;
276
		tentativeConnection=true;
278
		carnetEnLigneModele.connecterUtilisateur(this, login, password); 
277
		carnetEnLigneModele.connecterUtilisateur(this, login, password); 
279
		
278
		
280
	}
279
	}
281
 
280
 
282
 
281
 
283
	
282
	
284
	/**
283
	/**
285
	 *  Affichage etat de la connexion
284
	 *  Affichage etat de la connexion
286
	 */
285
	 */
287
	
286
	
288
	
287
	
289
	private void afficheEtatConnexion() {
288
	private void afficheEtatConnexion() {
290
		
289
		
291
		if (!utilisateur.isIdentifie()) {
290
		if (!utilisateur.isIdentifie()) {
292
			   etatConnexionVue.setEtat("",false);
291
			   etatConnexionVue.setEtat("",false);
293
		}
292
		}
294
		else {
293
		else {
295
			if(utilisateur.isAdmin()) {
294
			if(utilisateur.isAdmin()) {
296
		    	afficherLienAdmin();
295
		    	afficherLienAdmin();
297
				panneauAdmin.setVisible(true);
296
				panneauAdmin.setVisible(true);
298
		    } else {
297
		    } else {
299
		    	cacherLienAdmin();
298
		    	cacherLienAdmin();
300
		    }
299
		    }
301
			
300
			
302
		    etatConnexionVue.setEtat(Utilisateur.getInstance().getLoginUtilisateurConsulte(),true);
301
		    etatConnexionVue.setEtat(Utilisateur.getInstance().getLoginUtilisateurConsulte(),true);
303
		      
302
		      
304
		}
303
		}
305
		
304
		
306
	}
305
	}
307
	
306
	
308
	private void afficherFenetreAcceptationLicence()  {
307
	private void afficherFenetreAcceptationLicence()  {
309
		
308
		
310
		fenetreAcceptationLicence = new FenetreLicenceVue(this);
309
		fenetreAcceptationLicence = new FenetreLicenceVue(this);
311
		
310
		
312
		// On le positionne à peu près au milieu de l'écran
311
		// On le positionne à peu près au milieu de l'écran
313
		int left = (Window.getClientWidth() - 512) / 2;
312
		int left = (Window.getClientWidth() - 512) / 2;
314
		int top = (Window.getClientHeight() - 256) / 5;
313
		int top = (Window.getClientHeight() - 256) / 5;
315
		  
314
		  
316
		fenetreAcceptationLicence.setPosition(left, top);
315
		fenetreAcceptationLicence.setPosition(left, top);
317
		fenetreAcceptationLicence.setHeight(350);
316
		fenetreAcceptationLicence.setHeight(350);
318
		fenetreAcceptationLicence.setWidth(550);
317
		fenetreAcceptationLicence.setWidth(550);
319
		fenetreAcceptationLicence.setModal(true);
318
		fenetreAcceptationLicence.setModal(true);
320
		fenetreAcceptationLicence.show();
319
		fenetreAcceptationLicence.show();
321
	}
320
	}
322
 
321
 
323
	
322
	
324
	/**
323
	/**
325
	 * 
324
	 * 
326
	 * Affichage boite de connexion
325
	 * Affichage boite de connexion
327
	 *
326
	 *
328
	 */
327
	 */
329
	
328
	
330
	
329
	
331
	public void afficherDialogueConnexion() {
330
	public void afficherDialogueConnexion() {
332
		
331
		
333
		  if (formulaireDeConnexionVue==null) { 
332
		  if (formulaireDeConnexionVue==null) { 
334
			  formulaireDeConnexionVue= new FormulaireDeConnexionVue(this);
333
			  formulaireDeConnexionVue= new FormulaireDeConnexionVue(this);
335
		  }
334
		  }
336
		  
335
		  
337
		  // On le positionne à peu près au milieu de l'écran
336
		  // On le positionne à peu près au milieu de l'écran
338
		  int left = (Window.getClientWidth() - 512) / 2;
337
		  int left = (Window.getClientWidth() - 512) / 2;
339
		  int top = (Window.getClientHeight() - 256) / 2;
338
		  int top = (Window.getClientHeight() - 256) / 2;
340
		  
339
		  
341
		  formulaireDeConnexionVue.setPopupPosition(left, top);
340
		  formulaireDeConnexionVue.setPopupPosition(left, top);
342
		  formulaireDeConnexionVue.show();
341
		  formulaireDeConnexionVue.show();
343
		
342
		
344
	}
343
	}
345
 
344
 
346
	public Panel getPanneauPrincipalCarnetEnLigne() {
345
	public Panel getPanneauPrincipalCarnetEnLigne() {
347
		return panneauPrincipalCarnetEnLigne;
346
		return panneauPrincipalCarnetEnLigne;
348
	}
347
	}
349
 
348
 
350
	@Override
349
	@Override
351
	public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {
350
	public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {
352
 
351
 
353
			if (nouvelleDonnees instanceof Utilisateur) {
352
			if (nouvelleDonnees instanceof Utilisateur) {
354
							      
353
							      
355
				utilisateur = (Utilisateur) nouvelleDonnees;
354
				utilisateur = (Utilisateur) nouvelleDonnees;
356
				
355
				
357
				if ((tentativeConnection) && !utilisateur.isIdentifie()) {
356
				if ((tentativeConnection) && !utilisateur.isIdentifie()) {
358
					
357
					
359
					panneauAdmin.setVisible(false);
358
					panneauAdmin.setVisible(false);
360
					formulaireDeConnexionVue.afficherMessageAlerte();
359
					formulaireDeConnexionVue.afficherMessageAlerte();
361
				}
360
				}
362
				else {
361
				else {
363
					if ((tentativeConnection) && utilisateur.isIdentifie()) {
362
					if ((tentativeConnection) && utilisateur.isIdentifie()) {
364
						afficherLienAdmin();
363
						afficherLienAdmin();
365
						formulaireDeConnexionVue.cacher();
364
						formulaireDeConnexionVue.cacher();
366
					}
365
					}
367
				}
366
				}
368
				
367
				
369
				if(utilisateur.isIdentifie() && !utilisateur.getLicenceAcceptee()) {
368
				if(utilisateur.isIdentifie() && !utilisateur.getLicenceAcceptee()) {
370
					afficherFenetreAcceptationLicence();
369
					afficherFenetreAcceptationLicence();
371
				} else {
370
				} else {
372
					
371
					
373
				  if(tentativeConnection && utilisateur.isIdentifie() && observationMediateur.listeAvoirObservations() && !utilisateur.isAdmin()) {
372
				  if(tentativeConnection && utilisateur.isIdentifie() && observationMediateur.listeAvoirObservations() && !utilisateur.isAdmin()) {
374
					  if(Window.confirm(Msg.get("question-import-anonyme-connecte")+" ?")) {
373
					  if(Window.confirm(Msg.get("question-import-anonyme-connecte")+" ?")) {
375
						  observationMediateur.setImporterObservationsAnonymes(true);
374
						  observationMediateur.setImporterObservationsAnonymes(true);
376
					  }
375
					  }
377
				  }
376
				  }
378
				
377
				
379
				  afficheEtatConnexion();
378
				  afficheEtatConnexion();
380
				  // On lance l'affichage des observations
379
				  // On lance l'affichage des observations
381
				  observationMediateur.connecterUtilisateur();
380
				  observationMediateur.connecterUtilisateur();
382
				  imageMediateur.connecterUtilisateur();
381
				  imageMediateur.connecterUtilisateur();
383
					
382
					
384
				}
383
				}
385
			}
384
			}
386
			
385
			
387
			if(nouvelleDonnees instanceof String) {
386
			if(nouvelleDonnees instanceof String) {
388
				
387
				
389
				String evenement = (String)nouvelleDonnees;
388
				String evenement = (String)nouvelleDonnees;
390
				
389
				
391
				if(evenement.equals("licence_acceptee")) {
390
				if(evenement.equals("licence_acceptee")) {
392
					licenceUtilisateurAcceptee = true;
391
					licenceUtilisateurAcceptee = true;
393
					accepterLicenceUtilisateur();
392
					accepterLicenceUtilisateur();
394
				} else {
393
				} else {
395
					if(utilisateur.isIdentifie()) {
394
					if(utilisateur.isIdentifie()) {
396
						deconnecterUtilisateur();
395
						deconnecterUtilisateur();
397
						return;
396
						return;
398
					}
397
					}
399
				}
398
				}
400
				
399
				
401
				if(observationMediateur.listeAvoirObservations() && !utilisateur.isAdmin()) {
400
				if(observationMediateur.listeAvoirObservations() && !utilisateur.isAdmin()) {
402
					if(Window.confirm(Msg.get("question-import-anonyme-connecte")+" ?")) {
401
					if(Window.confirm(Msg.get("question-import-anonyme-connecte")+" ?")) {
403
					  observationMediateur.setImporterObservationsAnonymes(true);
402
					  observationMediateur.setImporterObservationsAnonymes(true);
404
					}
403
					}
405
				}
404
				}
406
				
405
				
407
				afficheEtatConnexion();
406
				afficheEtatConnexion();
408
				observationMediateur.connecterUtilisateur();
407
				observationMediateur.connecterUtilisateur();
409
				imageMediateur.connecterUtilisateur();
408
				imageMediateur.connecterUtilisateur();
410
				
409
				
411
				fenetreAcceptationLicence.close();
410
				fenetreAcceptationLicence.close();
412
			}
411
			}
413
	}
412
	}
414
	
413
	
415
	private void accepterLicenceUtilisateur() {
414
	private void accepterLicenceUtilisateur() {
416
		utilisateur.setLicenceAcceptee(true);
415
		utilisateur.setLicenceAcceptee(true);
417
		carnetEnLigneModele.accepterLicenceUtilisateur(Utilisateur.getInstance().getIdentifiantUtilisateurConsulte());
416
		carnetEnLigneModele.accepterLicenceUtilisateur(Utilisateur.getInstance().getIdentifiantUtilisateurConsulte());
418
	}
417
	}
419
 
418
 
420
	public void afficherListeUtilisateurs() {
419
	public void afficherListeUtilisateurs() {
421
		
420
		
422
		ListeUtilisateurAdminVue listeUtilisateur = new ListeUtilisateurAdminVue(this) ;
421
		ListeUtilisateurAdminVue listeUtilisateur = new ListeUtilisateurAdminVue(this) ;
423
		listeUtilisateur.show(Ext.get("LienChangerUtilisateur").getDOM());
422
		listeUtilisateur.show(Ext.get("LienChangerUtilisateur").getDOM());
424
		listeUtilisateur.focusChampUtilisateur();
423
		listeUtilisateur.focusChampUtilisateur();
425
		
424
		
426
	}
425
	}
427
	
426
	
428
	public void afficherLienAdmin() {
427
	public void afficherLienAdmin() {
429
		String[] paramsU = {Utilisateur.getInstance().getLoginUtilisateurConsulte()};
428
		String[] paramsU = {Utilisateur.getInstance().getLoginUtilisateurConsulte()};
430
		String labelAdmin = "<div id=\"lienAdmin\"> "+Msg.get("admin-consulter-donnees", paramsU)+" <a id=\"LienChangerUtilisateur\" href=\"#\">"+Msg.get("changer-utilisateur")+"</a></div>" ;
429
		String labelAdmin = "<div id=\"lienAdmin\"> "+Msg.get("admin-consulter-donnees", paramsU)+" <a id=\"LienChangerUtilisateur\" href=\"#\">"+Msg.get("changer-utilisateur")+"</a></div>" ;
431
		panneauAdmin.setHtml(labelAdmin);
430
		panneauAdmin.setHtml(labelAdmin);
432
		
431
		
433
		ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
432
		ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
434
		if(lienChangerUt != null) 
433
		if(lienChangerUt != null) 
435
		{	
434
		{	
436
			lienChangerUt.removeAllListeners();
435
			lienChangerUt.removeAllListeners();
437
			lienChangerUt.addListener("click", new EventCallback() {
436
			lienChangerUt.addListener("click", new EventCallback() {
438
 
437
 
439
				@Override
438
				@Override
440
				public void execute(EventObject e) {
439
				public void execute(EventObject e) {
441
					afficherListeUtilisateurs();
440
					afficherListeUtilisateurs();
442
				}				
441
				}				
443
			});
442
			});
444
		}
443
		}
445
		else
444
		else
446
		{
445
		{
447
			panneauAdmin.addListener(new ContainerListenerAdapter() 
446
			panneauAdmin.addListener(new ContainerListenerAdapter() 
448
			{
447
			{
449
				@Override
448
				@Override
450
				public void onAfterLayout(Container c) 
449
				public void onAfterLayout(Container c) 
451
				{
450
				{
452
					ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
451
					ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
453
					lienChangerUt.removeAllListeners();
452
					lienChangerUt.removeAllListeners();
454
					lienChangerUt.addListener("click", new EventCallback() {
453
					lienChangerUt.addListener("click", new EventCallback() {
455
 
454
 
456
						@Override
455
						@Override
457
						public void execute(EventObject e) {
456
						public void execute(EventObject e) {
458
							afficherListeUtilisateurs();
457
							afficherListeUtilisateurs();
459
						}
458
						}
460
						
459
						
461
					});
460
					});
462
				}
461
				}
463
			});
462
			});
464
		}
463
		}
465
	}
464
	}
466
	
465
	
467
	public void cacherLienAdmin() { 
466
	public void cacherLienAdmin() { 
468
		panneauAdmin.hide();
467
		panneauAdmin.hide();
469
	}
468
	}
470
	
469
	
471
	public void changerIdentite(String idNouvelleIdentite, String loginNouvelleIdentite) {
470
	public void changerIdentite(String idNouvelleIdentite, String loginNouvelleIdentite) {
472
		Utilisateur.getInstance().setUtilisateurConsulte(idNouvelleIdentite, loginNouvelleIdentite);
471
		Utilisateur.getInstance().setUtilisateurConsulte(idNouvelleIdentite, loginNouvelleIdentite);
473
		afficherLienAdmin();
472
		afficherLienAdmin();
474
		observationMediateur.connecterUtilisateur();
473
		observationMediateur.connecterUtilisateur();
475
		imageMediateur.connecterUtilisateur();
474
		imageMediateur.connecterUtilisateur();
476
	}
475
	}
477
 
476
 
478
	public void obtenirListeUtilisateurs(String rech, Rafraichissable r) {
477
	public void obtenirListeUtilisateurs(String rech, Rafraichissable r) {
479
		carnetEnLigneModele.obtenirListeUtilisateur(r,rech,Utilisateur.getInstance().getIdentifiantUtilisateurConnecte());
478
		carnetEnLigneModele.obtenirListeUtilisateur(r,rech,Utilisateur.getInstance().getIdentifiantUtilisateurConnecte());
480
	}
479
	}
481
 
480
 
482
	public void donneesImagesVersObs(Object o) {
481
	public void donneesImagesVersObs(Object o) {
483
		observationMediateur.donneesExterieures(o);
482
		observationMediateur.donneesExterieures(o);
484
	}
483
	}
485
	
484
	
486
	public void donneesObsVersImages(Object o) {
485
	public void donneesObsVersImages(Object o) {
487
		imageMediateur.donneesExterieures(o);
486
		imageMediateur.donneesExterieures(o);
488
	}
487
	}
489
	
488
	
490
	public void obtenirListeObservations(Rafraichissable r) {
489
	public void obtenirListeObservations(Rafraichissable r) {
491
		observationMediateur.obtenirCacheObservation(r) ;
490
		observationMediateur.obtenirCacheObservation(r) ;
492
	}
491
	}
493
 
492
 
494
 
493
 
495
	public static native void fireResize() /*-{
494
	public static native void fireResize() /*-{
496
		 $wnd.Ext.EventManager.fireResize();
495
		 $wnd.Ext.EventManager.fireResize();
497
	}-*/;
496
	}-*/;
498
 
497
 
499
}
498
}