Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | 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
package org.tela_botanica.client.vues;
17
 
18
import org.tela_botanica.client.CarnetEnLigneMediateur;
989 aurelien 19
import org.tela_botanica.client.modeles.objets.Configuration;
12 david 20
 
2081 mathias 21
import com.google.gwt.http.client.URL;
140 aurelien 22
import com.google.gwt.user.client.Window;
23
import com.gwtext.client.core.EventCallback;
24
import com.gwtext.client.core.EventObject;
25
import com.gwtext.client.core.Ext;
26
import com.gwtext.client.core.ExtElement;
27
import com.gwtext.client.widgets.Container;
12 david 28
import com.gwtext.client.widgets.Panel;
140 aurelien 29
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
12 david 30
 
31
/**
32
 * Un indicateur d'etat de connexion
33
 *
34
 * @author David Delon
35
 *
36
 */
37
 
38
public class EtatConnexionVue  extends Panel  {
39
 
40
	/**
41
	 * Médiateur associé à la vue
42
	 */
43
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
44
 
45
  /**
46
   * Texte lié à la connexion.
47
   *
48
   */
49
 
140 aurelien 50
  private String labelEtatConnexion = null;
2081 mathias 51
 
52
  /**
53
   * Ouh c'est pas beau, ça ! Mais avec Google Web Toolshit, ça
54
   * marche toujours mieux que quand on fait des trucs beaux :-)
55
   */
56
  private String liens = "<div id=\"liensExt\">"
57
		  + "<a id=\"lienRemarques\" title=\"Adressez-nous vos remarques ou signalez-nous un problème\""
58
		  + 	" href=\"" + Configuration.getRemarquesBaseUrl() + "?email=" + Configuration.getEmailContact()
59
		  + 	"&pageSource=" + URL.encodeQueryString(Window.Location.getHref()) + "\""
60
		  + " onClick=\"javascript:window.open(this.getAttribute('href'), 'Tela Botanica - Remarques', config='height=700, width=640, scrollbars=yes, resizable=yes'); return false;\""
61
		  + " target=\"_blank\""
62
		  + ">Remarques</a>"
63
		  + "<a href=\"#\" id=\"lienAide\">Aide</a>"
64
		  + "</div>" ;
12 david 65
 
66
  /**
2081 mathias 67
   * Booleen indiquant si utilisateur est connecte
12 david 68
   *
69
   */
70
  public EtatConnexionVue(CarnetEnLigneMediateur cm)  {
71
 
72
	carnetEnLigneMediateur=cm;
73
 
74
    this.setBodyBorder(false) ;
75
    this.setBorder(false) ;
226 aurelien 76
    this.setId("panneau_etat_connexion");
12 david 77
 
78
	// Pas de word wrap
140 aurelien 79
	labelEtatConnexion="";
12 david 80
 
140 aurelien 81
	this.setHtml(labelEtatConnexion+liens);
12 david 82
 
83
 
84
	ajouterListeners();
85
 
140 aurelien 86
 
12 david 87
  	}
88
 
89
   public void ajouterListeners() {
90
 
140 aurelien 91
	   ExtElement lienAide = Ext.get("lienAide");
92
		if(lienAide != null)
93
		{
94
			lienAide.removeAllListeners();
95
			lienAide.addListener("click", new EventCallback() {
12 david 96
 
1291 aurelien 97
				@Override
140 aurelien 98
				public void execute(EventObject e) {
99
					String aideUrl = Configuration.getAideBaseUrl() ;
100
					Window.open(aideUrl, "", "") ;
101
				}
102
			});
103
		}
104
		else
105
		{
106
			addListener(new ContainerListenerAdapter() {
1291 aurelien 107
				@Override
140 aurelien 108
				public void onAfterLayout(Container c) {
109
 
110
					ExtElement lienAide = Ext.get("lienAide");
111
					if(lienAide != null)
112
					{
113
						lienAide.removeAllListeners();
114
						lienAide.addListener("click", new EventCallback() {
115
 
1291 aurelien 116
							@Override
140 aurelien 117
							public void execute(EventObject e) {
118
								String aideUrl = Configuration.getAideBaseUrl() ;
119
								Window.open(aideUrl, "", "") ;
120
							}
121
						});
122
					}
123
				}
124
			});
125
		}
12 david 126
	}
127
 
128
/**
129
 * Affichage de l'etat de connexion
130
 * @param text
131
 * @param connecte
132
 */
140 aurelien 133
public void setEtat(String identifiant, boolean connecte) {
2081 mathias 134
 
140 aurelien 135
	if(connecte) {
144 aurelien 136
		labelEtatConnexion = "<div id=\"etatConnexion\">Connecté en tant que "+identifiant+" <a id=\"lienDeconnexion\" href=\"#\">(deconnexion)</a>" ;
140 aurelien 137
		labelEtatConnexion += "</div>" ;
138
 
139
 
140
		labelEtatConnexion += liens ;
141
		setHtml(labelEtatConnexion);
12 david 142
 
2081 mathias 143
		ExtElement lienDeco = Ext.get("lienDeconnexion");
140 aurelien 144
		if(lienDeco != null)
2081 mathias 145
		{
140 aurelien 146
			lienDeco.addListener("click", new EventCallback() {
147
 
1291 aurelien 148
				@Override
140 aurelien 149
				public void execute(EventObject e) {
150
					carnetEnLigneMediateur.deconnecterUtilisateur();
151
				}
152
 
153
			});
154
		}
155
		else
156
		{
157
			addListener(new ContainerListenerAdapter()
158
			{
1291 aurelien 159
				@Override
140 aurelien 160
				public void onAfterLayout(Container c)
161
				{
162
					ExtElement lienDeco = Ext.get("etatConnexion");
163
 
164
					lienDeco.addListener("click", new EventCallback() {
165
 
1291 aurelien 166
						@Override
140 aurelien 167
						public void execute(EventObject e) {
168
							carnetEnLigneMediateur.deconnecterUtilisateur();
169
							setEtat(null, false);
170
						}
171
 
172
					});
173
				}
174
			});
175
		}
176
	}
177
	else
178
	{
179
		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>";
180
		labelEtatConnexion += liens ;
181
		setHtml(labelEtatConnexion);
182
		ExtElement lienCo = Ext.get("etatConnexion");
183
		if(lienCo != null) {
184
			lienCo.addListener("click", new EventCallback() {
185
 
1291 aurelien 186
				@Override
140 aurelien 187
				public void execute(EventObject e) {
188
 
189
					carnetEnLigneMediateur.afficherDialogueConnexion();
190
				}
191
 
192
			});
193
		}
194
		else
195
		{
196
			addListener(new ContainerListenerAdapter() {
1291 aurelien 197
				@Override
140 aurelien 198
				public void onAfterLayout(Container c) {
199
 
200
					ExtElement lienCo = Ext.get("etatConnexion");
201
 
202
					lienCo.addListener("click", new EventCallback() {
203
 
1291 aurelien 204
						@Override
140 aurelien 205
						public void execute(EventObject e) {
206
 
207
							carnetEnLigneMediateur.afficherDialogueConnexion();
208
						}
209
 
210
					});
211
				}
212
			});
213
		}
214
	}
1488 aurelien 215
 
140 aurelien 216
	ExtElement lienAide = Ext.get("lienAide");
217
	if(lienAide != null)
218
	{
219
		lienAide.removeAllListeners();
220
		lienAide.addListener("click", new EventCallback() {
12 david 221
 
1291 aurelien 222
			@Override
140 aurelien 223
			public void execute(EventObject e) {
224
				String aideUrl = Configuration.getAideBaseUrl() ;
225
				Window.open(aideUrl, "", "") ;
226
			}
227
		});
228
	}
229
	else
230
	{
231
		addListener(new ContainerListenerAdapter() {
1291 aurelien 232
			@Override
140 aurelien 233
			public void onAfterLayout(Container c) {
234
 
235
				ExtElement lienAide = Ext.get("lienAide");
236
				if(lienAide != null)
237
				{
238
					lienAide.removeAllListeners();
239
					lienAide.addListener("click", new EventCallback() {
240
 
1291 aurelien 241
						@Override
140 aurelien 242
						public void execute(EventObject e) {
243
							String aideUrl = Configuration.getAideBaseUrl() ;
244
							Window.open(aideUrl, "", "") ;
245
						}
246
					});
247
				}
248
			}
249
		});
250
	}
12 david 251
 
140 aurelien 252
 
253
}
12 david 254
 
255
}
256
 
257
 
258
/* +--Fin du code ---------------------------------------------------------------------------------------+
259
* $Log$
260
* Revision 1.1  2008-11-13 11:27:05  ddelon
261
* Reecriture gwt-ext
262
*
263
* Revision 1.1  2008-06-09 14:19:37  ddelon
264
* Initialisation observation
265
*
266
* Revision 1.2  2008-04-28 13:10:44  ddelon
267
* Integration MyGwt
268
*
269
* Revision 1.1  2008-01-02 21:26:04  ddelon
270
* mise en place mygwt
271
*
272
* Revision 1.6  2007-12-22 14:48:53  ddelon
273
* Documentation et refactorisation
274
*
275
* Revision 1.5  2007-09-17 19:25:34  ddelon
276
* Documentation
277
*
278
*
279
*/