Subversion Repositories eFlore/Applications.cel

Rev

Rev 1488 | 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
 
1488 aurelien 60
  private String liens = "<div id=\"liensExt\"><a href=\"#\" id=\"lienAide\">Aide</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
		}
12 david 124
	}
125
 
126
 
127
 
128
 
129
/**
130
 * Affichage de l'etat de connexion
131
 * @param text
132
 * @param connecte
133
 */
140 aurelien 134
public void setEtat(String identifiant, boolean connecte) {
135
 
136
	if(connecte) {
144 aurelien 137
		labelEtatConnexion = "<div id=\"etatConnexion\">Connecté en tant que "+identifiant+" <a id=\"lienDeconnexion\" href=\"#\">(deconnexion)</a>" ;
140 aurelien 138
		labelEtatConnexion += "</div>" ;
139
 
140
 
141
		labelEtatConnexion += liens ;
142
		setHtml(labelEtatConnexion);
12 david 143
 
140 aurelien 144
		ExtElement lienDeco = Ext.get("etatConnexion");
145
		if(lienDeco != null)
146
		{
147
			lienDeco.addListener("click", new EventCallback() {
148
 
1291 aurelien 149
				@Override
140 aurelien 150
				public void execute(EventObject e) {
151
					carnetEnLigneMediateur.deconnecterUtilisateur();
152
				}
153
 
154
			});
155
		}
156
		else
157
		{
158
			addListener(new ContainerListenerAdapter()
159
			{
1291 aurelien 160
				@Override
140 aurelien 161
				public void onAfterLayout(Container c)
162
				{
163
					ExtElement lienDeco = Ext.get("etatConnexion");
164
 
165
					lienDeco.addListener("click", new EventCallback() {
166
 
1291 aurelien 167
						@Override
140 aurelien 168
						public void execute(EventObject e) {
169
							carnetEnLigneMediateur.deconnecterUtilisateur();
170
							setEtat(null, false);
171
						}
172
 
173
					});
174
				}
175
			});
176
		}
177
	}
178
	else
179
	{
180
		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>";
181
		labelEtatConnexion += liens ;
182
		setHtml(labelEtatConnexion);
183
		ExtElement lienCo = Ext.get("etatConnexion");
184
		if(lienCo != null) {
185
			lienCo.addListener("click", new EventCallback() {
186
 
1291 aurelien 187
				@Override
140 aurelien 188
				public void execute(EventObject e) {
189
 
190
					carnetEnLigneMediateur.afficherDialogueConnexion();
191
				}
192
 
193
			});
194
		}
195
		else
196
		{
197
			addListener(new ContainerListenerAdapter() {
1291 aurelien 198
				@Override
140 aurelien 199
				public void onAfterLayout(Container c) {
200
 
201
					ExtElement lienCo = Ext.get("etatConnexion");
202
 
203
					lienCo.addListener("click", new EventCallback() {
204
 
1291 aurelien 205
						@Override
140 aurelien 206
						public void execute(EventObject e) {
207
 
208
							carnetEnLigneMediateur.afficherDialogueConnexion();
209
						}
210
 
211
					});
212
				}
213
			});
214
		}
215
	}
1488 aurelien 216
 
140 aurelien 217
	ExtElement lienAide = Ext.get("lienAide");
218
	if(lienAide != null)
219
	{
220
		lienAide.removeAllListeners();
221
		lienAide.addListener("click", new EventCallback() {
12 david 222
 
1291 aurelien 223
			@Override
140 aurelien 224
			public void execute(EventObject e) {
225
				String aideUrl = Configuration.getAideBaseUrl() ;
226
				Window.open(aideUrl, "", "") ;
227
			}
228
		});
229
	}
230
	else
231
	{
232
		addListener(new ContainerListenerAdapter() {
1291 aurelien 233
			@Override
140 aurelien 234
			public void onAfterLayout(Container c) {
235
 
236
				ExtElement lienAide = Ext.get("lienAide");
237
				if(lienAide != null)
238
				{
239
					lienAide.removeAllListeners();
240
					lienAide.addListener("click", new EventCallback() {
241
 
1291 aurelien 242
						@Override
140 aurelien 243
						public void execute(EventObject e) {
244
							String aideUrl = Configuration.getAideBaseUrl() ;
245
							Window.open(aideUrl, "", "") ;
246
						}
247
					});
248
				}
249
			}
250
		});
251
	}
12 david 252
 
140 aurelien 253
 
254
}
12 david 255
 
256
}
257
 
258
 
259
/* +--Fin du code ---------------------------------------------------------------------------------------+
260
* $Log$
261
* Revision 1.1  2008-11-13 11:27:05  ddelon
262
* Reecriture gwt-ext
263
*
264
* Revision 1.1  2008-06-09 14:19:37  ddelon
265
* Initialisation observation
266
*
267
* Revision 1.2  2008-04-28 13:10:44  ddelon
268
* Integration MyGwt
269
*
270
* Revision 1.1  2008-01-02 21:26:04  ddelon
271
* mise en place mygwt
272
*
273
* Revision 1.6  2007-12-22 14:48:53  ddelon
274
* Documentation et refactorisation
275
*
276
* Revision 1.5  2007-09-17 19:25:34  ddelon
277
* Documentation
278
*
279
*
280
*/