Subversion Repositories eFlore/Applications.cel

Rev

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