Subversion Repositories eFlore/Applications.cel

Rev

Rev 989 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
12 david 1
/**
2
 David Delon david.delon@clapas.net 2007
3
 
4
 */
5
 
6
/*
7
 * EtatConnexionVue.java  : affichage information portant sur le statut de la connexion utilisateur
8
 *
9
 *
10
 * 1: Le programme affiche le statut connecte si l'utilisateur s'est connecte precedemment, sinon s'affiche le statut deconnecte
11
 * 2: Le programme arme les actions liees a la connection ou a la deconnection
12
 *    - Connection : affichage de la boite de connexion
13
 *    - Deconnexion : appel du service de deconnexion, et appel de la re-initialisation de l'affichage pour le nouvel identifiant utilisateur obtenu (identifiant  de session)
14
 */
15
 
16
 
17
package org.tela_botanica.client.vues;
18
 
19
 
20
 
21
import org.tela_botanica.client.CarnetEnLigneMediateur;
989 aurelien 22
import org.tela_botanica.client.modeles.objets.Configuration;
12 david 23
 
140 aurelien 24
import com.google.gwt.user.client.Window;
12 david 25
 
140 aurelien 26
import com.gwtext.client.core.EventCallback;
27
import com.gwtext.client.core.EventObject;
28
import com.gwtext.client.core.Ext;
29
import com.gwtext.client.core.ExtElement;
30
import com.gwtext.client.widgets.Container;
12 david 31
import com.gwtext.client.widgets.Panel;
140 aurelien 32
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
12 david 33
 
34
 
35
 
36
/**
37
 * Un indicateur d'etat de connexion
38
 *
39
 * @author David Delon
40
 *
41
 */
42
 
43
 
44
 
45
public class EtatConnexionVue  extends Panel  {
46
 
47
 
48
	/**
49
	 * Médiateur associé à la vue
50
	 */
51
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
52
 
53
  /**
54
   * Texte lié à la connexion.
55
   *
56
   */
57
 
140 aurelien 58
  private String labelEtatConnexion = null;
12 david 59
 
431 aurelien 60
  private String liens = "<div id=\"liensExt\"><a href=\"#\" id=\"lienAide\">Aide</a>  <a href=\"#\" id=\"lienBugs\">Bugs</a> <a href=\"mailto:"+Configuration.getEmailContact()+"\" id=\"nousContacter\"> Nous contacter</a></div>" ;
140 aurelien 61
 
12 david 62
  /**
63
   * Booleen indiquant si utilisateur connecte
64
   *
65
   */
66
 
67
 
68
  public EtatConnexionVue(CarnetEnLigneMediateur cm)  {
69
 
70
	carnetEnLigneMediateur=cm;
71
 
72
    this.setBodyBorder(false) ;
73
    this.setBorder(false) ;
226 aurelien 74
    this.setId("panneau_etat_connexion");
12 david 75
 
76
	// Pas de word wrap
140 aurelien 77
	labelEtatConnexion="";
12 david 78
 
140 aurelien 79
	this.setHtml(labelEtatConnexion+liens);
12 david 80
 
81
 
82
	ajouterListeners();
83
 
140 aurelien 84
 
12 david 85
  	}
86
 
87
   public void ajouterListeners() {
88
 
140 aurelien 89
	   ExtElement lienAide = Ext.get("lienAide");
90
		if(lienAide != null)
91
		{
92
			lienAide.removeAllListeners();
93
			lienAide.addListener("click", new EventCallback() {
12 david 94
 
1291 aurelien 95
				@Override
140 aurelien 96
				public void execute(EventObject e) {
97
					String aideUrl = Configuration.getAideBaseUrl() ;
98
					Window.open(aideUrl, "", "") ;
99
				}
100
			});
101
		}
102
		else
103
		{
104
			addListener(new ContainerListenerAdapter() {
1291 aurelien 105
				@Override
140 aurelien 106
				public void onAfterLayout(Container c) {
107
 
108
					ExtElement lienAide = Ext.get("lienAide");
109
					if(lienAide != null)
110
					{
111
						lienAide.removeAllListeners();
112
						lienAide.addListener("click", new EventCallback() {
113
 
1291 aurelien 114
							@Override
140 aurelien 115
							public void execute(EventObject e) {
116
								String aideUrl = Configuration.getAideBaseUrl() ;
117
								Window.open(aideUrl, "", "") ;
118
							}
119
						});
120
					}
121
				}
122
			});
123
		}
124
 
125
		ExtElement lienBugs = Ext.get("lienBugs");
126
		if(lienBugs != null)
127
		{
128
			lienBugs.removeAllListeners();
129
			lienBugs.addListener("click", new EventCallback() {
12 david 130
 
1291 aurelien 131
				@Override
140 aurelien 132
				public void execute(EventObject e) {
133
					String bugsURL = Configuration.getSuiviBugUrl() ;
134
					Window.open(bugsURL, "", "") ;
135
				}
136
			});
137
		}
138
		else
139
		{
140
			addListener(new ContainerListenerAdapter() {
1291 aurelien 141
				@Override
140 aurelien 142
				public void onAfterLayout(Container c) {
143
 
144
					ExtElement lienBugs = Ext.get("lienBugs");
145
					if(lienBugs != null)
146
					{
147
						lienBugs.removeAllListeners();
148
						lienBugs.addListener("click", new EventCallback() {
149
 
1291 aurelien 150
							@Override
140 aurelien 151
							public void execute(EventObject e) {
152
								String bugsURL = Configuration.getSuiviBugUrl() ;
153
								Window.open(bugsURL, "", "") ;
154
							}
155
						});
156
					}
157
				}
158
			});
159
		}
12 david 160
 
161
	}
162
 
163
 
164
 
165
 
166
/**
167
 * Affichage de l'etat de connexion
168
 * @param text
169
 * @param connecte
170
 */
140 aurelien 171
public void setEtat(String identifiant, boolean connecte) {
172
 
173
	if(connecte) {
144 aurelien 174
		labelEtatConnexion = "<div id=\"etatConnexion\">Connecté en tant que "+identifiant+" <a id=\"lienDeconnexion\" href=\"#\">(deconnexion)</a>" ;
140 aurelien 175
		labelEtatConnexion += "</div>" ;
176
 
177
 
178
		labelEtatConnexion += liens ;
179
		setHtml(labelEtatConnexion);
12 david 180
 
140 aurelien 181
		ExtElement lienDeco = Ext.get("etatConnexion");
182
		if(lienDeco != null)
183
		{
184
			lienDeco.addListener("click", new EventCallback() {
185
 
1291 aurelien 186
				@Override
140 aurelien 187
				public void execute(EventObject e) {
188
					carnetEnLigneMediateur.deconnecterUtilisateur();
189
				}
190
 
191
			});
192
		}
193
		else
194
		{
195
			addListener(new ContainerListenerAdapter()
196
			{
1291 aurelien 197
				@Override
140 aurelien 198
				public void onAfterLayout(Container c)
199
				{
200
					ExtElement lienDeco = Ext.get("etatConnexion");
201
 
202
					lienDeco.addListener("click", new EventCallback() {
203
 
1291 aurelien 204
						@Override
140 aurelien 205
						public void execute(EventObject e) {
206
							carnetEnLigneMediateur.deconnecterUtilisateur();
207
							setEtat(null, false);
208
						}
209
 
210
					});
211
				}
212
			});
213
		}
214
	}
215
	else
216
	{
217
		labelEtatConnexion = "<div id=\"etatConnexion\"> Utilisez ce carnet en ligne pour saisir vos observations, <a id=\"lienConnexion\" href=\"#\">identifiez-vous</a> pour les transmettre à Tela Botanica</div>";
218
		labelEtatConnexion += liens ;
219
		setHtml(labelEtatConnexion);
220
		ExtElement lienCo = Ext.get("etatConnexion");
221
		if(lienCo != null) {
222
			lienCo.addListener("click", new EventCallback() {
223
 
1291 aurelien 224
				@Override
140 aurelien 225
				public void execute(EventObject e) {
226
 
227
					carnetEnLigneMediateur.afficherDialogueConnexion();
228
				}
229
 
230
			});
231
		}
232
		else
233
		{
234
			addListener(new ContainerListenerAdapter() {
1291 aurelien 235
				@Override
140 aurelien 236
				public void onAfterLayout(Container c) {
237
 
238
					ExtElement lienCo = Ext.get("etatConnexion");
239
 
240
					lienCo.addListener("click", new EventCallback() {
241
 
1291 aurelien 242
						@Override
140 aurelien 243
						public void execute(EventObject e) {
244
 
245
							carnetEnLigneMediateur.afficherDialogueConnexion();
246
						}
247
 
248
					});
249
				}
250
			});
251
		}
252
	}
12 david 253
 
140 aurelien 254
	ExtElement lienBugs = Ext.get("lienBugs");
255
	if(lienBugs != null)
256
	{
257
		lienBugs.removeAllListeners();
258
		lienBugs.addListener("click", new EventCallback() {
259
 
1291 aurelien 260
			@Override
140 aurelien 261
			public void execute(EventObject e) {
262
				String bugsURL = Configuration.getSuiviBugUrl() ;
263
				Window.open(bugsURL, "", "") ;
264
			}
265
		});
266
	}
267
	else
268
	{
269
		addListener(new ContainerListenerAdapter() {
1291 aurelien 270
			@Override
140 aurelien 271
			public void onAfterLayout(Container c) {
272
 
273
				ExtElement lienBugs = Ext.get("lienBugs");
274
				if(lienBugs != null)
275
				{
276
					lienBugs.removeAllListeners();
277
					lienBugs.addListener("click", new EventCallback() {
278
 
1291 aurelien 279
						@Override
140 aurelien 280
						public void execute(EventObject e) {
281
							String bugsURL = Configuration.getSuiviBugUrl() ;
282
							Window.open(bugsURL, "", "") ;
283
						}
284
					});
285
				}
286
			}
287
		});
288
	}
12 david 289
 
140 aurelien 290
	ExtElement lienAide = Ext.get("lienAide");
291
	if(lienAide != null)
292
	{
293
		lienAide.removeAllListeners();
294
		lienAide.addListener("click", new EventCallback() {
12 david 295
 
1291 aurelien 296
			@Override
140 aurelien 297
			public void execute(EventObject e) {
298
				String aideUrl = Configuration.getAideBaseUrl() ;
299
				Window.open(aideUrl, "", "") ;
300
			}
301
		});
302
	}
303
	else
304
	{
305
		addListener(new ContainerListenerAdapter() {
1291 aurelien 306
			@Override
140 aurelien 307
			public void onAfterLayout(Container c) {
308
 
309
				ExtElement lienAide = Ext.get("lienAide");
310
				if(lienAide != null)
311
				{
312
					lienAide.removeAllListeners();
313
					lienAide.addListener("click", new EventCallback() {
314
 
1291 aurelien 315
						@Override
140 aurelien 316
						public void execute(EventObject e) {
317
							String aideUrl = Configuration.getAideBaseUrl() ;
318
							Window.open(aideUrl, "", "") ;
319
						}
320
					});
321
				}
322
			}
323
		});
324
	}
12 david 325
 
140 aurelien 326
 
327
}
12 david 328
 
329
}
330
 
331
 
332
/* +--Fin du code ---------------------------------------------------------------------------------------+
333
* $Log$
334
* Revision 1.1  2008-11-13 11:27:05  ddelon
335
* Reecriture gwt-ext
336
*
337
* Revision 1.1  2008-06-09 14:19:37  ddelon
338
* Initialisation observation
339
*
340
* Revision 1.2  2008-04-28 13:10:44  ddelon
341
* Integration MyGwt
342
*
343
* Revision 1.1  2008-01-02 21:26:04  ddelon
344
* mise en place mygwt
345
*
346
* Revision 1.6  2007-12-22 14:48:53  ddelon
347
* Documentation et refactorisation
348
*
349
* Revision 1.5  2007-09-17 19:25:34  ddelon
350
* Documentation
351
*
352
*
353
*/