Subversion Repositories eFlore/Applications.cel

Rev

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