Subversion Repositories eFlore/Applications.cel

Rev

Rev 2656 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2656 Rev 2675
1
/**
1
/**
2
 David Delon david.delon@clapas.net 2007
2
 David Delon david.delon@clapas.net 2007
3
 
3
 
4
 */
4
 */
5
 
5
 
6
/*
6
/*
7
 * EtatConnexionVue.java  : affichage information portant sur le statut de la connexion utilisateur
7
 * EtatConnexionVue.java  : affichage information portant sur le statut de la connexion utilisateur
8
 * 
8
 * 
9
 * 
9
 * 
10
 * 1: Le programme affiche le statut connecte si l'utilisateur s'est connecte precedemment, sinon s'affiche le statut deconnecte
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
11
 * 2: Le programme arme les actions liees a la connection ou a la deconnection
12
 *    - Connection : affichage de la boite de connexion
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)
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
 */
14
 */
15
 
15
 
16
package org.tela_botanica.client.vues;
16
package org.tela_botanica.client.vues;
17
 
17
 
18
import java.util.Iterator;
18
import java.util.Iterator;
19
import java.util.List;
19
import java.util.List;
20
 
20
 
21
import org.tela_botanica.client.CarnetEnLigneMediateur;
21
import org.tela_botanica.client.CarnetEnLigneMediateur;
22
import org.tela_botanica.client.i18n.Msg;
22
import org.tela_botanica.client.i18n.Msg;
23
import org.tela_botanica.client.modeles.objets.Configuration;
23
import org.tela_botanica.client.modeles.objets.Configuration;
24
 
24
 
25
import com.google.gwt.event.dom.client.ChangeEvent;
25
import com.google.gwt.event.dom.client.ChangeEvent;
26
import com.google.gwt.event.dom.client.ChangeHandler;
26
import com.google.gwt.event.dom.client.ChangeHandler;
27
import com.google.gwt.http.client.URL;
27
import com.google.gwt.http.client.URL;
28
import com.google.gwt.user.client.Window;
28
import com.google.gwt.user.client.Window;
29
import com.google.gwt.user.client.ui.HTML;
29
import com.google.gwt.user.client.ui.HTML;
30
import com.google.gwt.user.client.ui.ListBox;
30
import com.google.gwt.user.client.ui.ListBox;
31
import com.gwtext.client.core.EventCallback;
31
import com.gwtext.client.core.EventCallback;
32
import com.gwtext.client.core.EventObject;
32
import com.gwtext.client.core.EventObject;
33
import com.gwtext.client.core.Ext;
33
import com.gwtext.client.core.Ext;
34
import com.gwtext.client.core.ExtElement;
34
import com.gwtext.client.core.ExtElement;
35
import com.gwtext.client.widgets.Container;
35
import com.gwtext.client.widgets.Container;
36
import com.gwtext.client.widgets.Panel;
36
import com.gwtext.client.widgets.Panel;
37
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
37
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
38
 
38
 
39
/**
39
/**
40
 * Un indicateur d'etat de connexion
40
 * Un indicateur d'etat de connexion
41
 * 
41
 * 
42
 * @author David Delon
42
 * @author David Delon
43
 *
43
 *
44
 */
44
 */
45
 
45
 
46
public class EtatConnexionVue  extends Panel  {
46
public class EtatConnexionVue  extends Panel  {
47
 
47
 
48
	/**
48
	/**
49
	 * Médiateur associé à la vue
49
	 * Médiateur associé à la vue
50
	 */
50
	 */
51
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;	
51
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;	
52
	
52
	
53
  /**
53
  /**
54
   * Texte lié à la connexion.
54
   * Texte lié à la connexion.
55
   * 
55
   * 
56
   */
56
   */
57
  private HTML htmlEtatConnexion = new HTML();
57
  private HTML htmlEtatConnexion = new HTML();
58
  private String labelEtatConnexion = null;
58
  private String labelEtatConnexion = null;
59
  
59
  
60
  private ListBox listeLangues = null;
60
  private ListBox listeLangues = null;
61
 
61
 
62
  /**
62
  /**
63
   * Ouh c'est pas beau, ça ! Mais avec Google Web Toolshit, ça
63
   * Ouh c'est pas beau, ça ! Mais avec Google Web Toolshit, ça
64
   * marche toujours mieux que quand on fait des trucs beaux :-)
64
   * marche toujours mieux que quand on fait des trucs beaux :-)
65
   */
65
   */
66
  private String liens = "<div id=\"liensExt\">"
66
  private String liens = "<div id=\"liensExt\">"
67
		  + "<a id=\"lienRemarques\" title=\""+Msg.get("adresser-remarque-probleme")+"\""
67
		  + "<a id=\"lienRemarques\" title=\""+Msg.get("adresser-remarque-probleme")+"\""
68
		  + 	" href=\"" + Configuration.getRemarquesBaseUrl() + "?lang=" + Msg.getLangue() + "&service=" + Configuration.getServiceContact()
68
		  + 	" href=\"" + Configuration.getRemarquesBaseUrl() + "?lang=" + Msg.getLangue() + "&service=" + Configuration.getServiceContact()
69
		  + 	"&pageSource=" + URL.encodeQueryString(Window.Location.getHref()) + "\""
69
		  + 	"&pageSource=" + URL.encodeQueryString(Window.Location.getHref()) + "\""
70
		  + " onClick=\"javascript:window.open(this.getAttribute('href'), 'Tela Botanica - Remarques', config='height=700, width=640, scrollbars=yes, resizable=yes'); return false;\""
70
		  + " onClick=\"javascript:window.open(this.getAttribute('href'), 'Tela Botanica - Remarques', config='height=700, width=640, scrollbars=yes, resizable=yes'); return false;\""
71
		  + " target=\"_blank\""
71
		  + " target=\"_blank\""
72
		  + ">"+Msg.get("remarques")+"</a>"
72
		  + ">"+Msg.get("remarques")+"</a>"
73
		  + "<a href=\"#\" id=\"lienAide\">"+Msg.get("aide")+"</a>"
73
		  + "<a href=\"#\" id=\"lienAide\">"+Msg.get("aide")+"</a>"
74
		  + "</div>" ;
74
		  + "</div>" ;
75
  
75
  
76
  /**
76
  /**
77
   * Booleen indiquant si utilisateur est connecte 
77
   * Booleen indiquant si utilisateur est connecte 
78
   * 
78
   * 
79
   */
79
   */
80
  public EtatConnexionVue(CarnetEnLigneMediateur cm)  {
80
  public EtatConnexionVue(CarnetEnLigneMediateur cm)  {
81
	  
81
	  
82
	carnetEnLigneMediateur=cm;
82
	carnetEnLigneMediateur=cm;
83
 
83
 
84
    this.setBodyBorder(false) ;
84
    this.setBodyBorder(false) ;
85
    this.setBorder(false) ;
85
    this.setBorder(false) ;
86
    this.setId("panneau_etat_connexion");
86
    this.setId("panneau_etat_connexion");
87
	
87
	
88
	// Pas de word wrap
88
	// Pas de word wrap
89
	labelEtatConnexion="";
89
	labelEtatConnexion="";
90
	
90
	
91
	initialiserListeLangues();
91
	initialiserListeLangues();
92
	
92
	
93
	this.add(listeLangues);
93
	this.add(listeLangues);
94
	htmlEtatConnexion.setHTML(labelEtatConnexion+liens);
94
	htmlEtatConnexion.setHTML(labelEtatConnexion+liens);
95
	this.add(htmlEtatConnexion);
95
	this.add(htmlEtatConnexion);
96
	
96
	
97
	ajouterListeners();	
97
	ajouterListeners();	
98
  }
98
  }
99
  
99
  
100
  private void initialiserListeLangues() {
100
  private void initialiserListeLangues() {
101
	  listeLangues = new ListBox();
101
	  listeLangues = new ListBox();
102
	  listeLangues.getElement().setId("liste_selection_langue");
102
	  listeLangues.getElement().setId("liste_selection_langue");
103
	  List<String> languesDispos = Msg.getLanguesDisponibles();
103
	  List<String> languesDispos = Msg.getLanguesDisponibles();
104
	  int indexLangue = 0;
104
	  int indexLangue = 0;
105
	  for (Iterator<String> iterator = languesDispos.iterator(); iterator.hasNext();) {
105
	  for (Iterator<String> iterator = languesDispos.iterator(); iterator.hasNext();) {
106
		  String langue = iterator.next();
106
		  String langue = iterator.next();
107
		  listeLangues.addItem(Msg.get("intitule-langue", langue), langue);
107
		  listeLangues.addItem(Msg.get("intitule-langue", langue), langue);
108
		  if(langue.equals(Msg.getLangue())) {
108
		  if(langue.equals(Msg.getLangue())) {
109
			  listeLangues.setSelectedIndex(indexLangue);
109
			  listeLangues.setSelectedIndex(indexLangue);
110
		  }
110
		  }
111
		  indexLangue++;
111
		  indexLangue++;
112
	  }
112
	  }
113
  }
113
  }
114
	
114
	
115
  private void ajouterListeners() {
115
  private void ajouterListeners() {
116
	  listeLangues.addChangeHandler(new ChangeHandler() {	
116
	  listeLangues.addChangeHandler(new ChangeHandler() {	
117
		@Override
117
		@Override
118
		public void onChange(ChangeEvent event) {
118
		public void onChange(ChangeEvent event) {
119
			int indexLangue = listeLangues.getSelectedIndex();
119
			int indexLangue = listeLangues.getSelectedIndex();
120
			String urlCourante = Window.Location.getHref();
120
			String urlCourante = Window.Location.getHref();
121
			String urlBase = urlCourante;
121
			String urlBase = urlCourante;
122
			if(urlCourante.contains("?")) {
122
			if(urlBase.contains("?")) {
123
				urlBase = urlCourante.substring(0, urlCourante.indexOf("?"));
123
				urlBase = urlBase.substring(0, urlCourante.indexOf("?"));
-
 
124
			}
-
 
125
			if(urlBase.contains("#")) {
-
 
126
				urlBase = urlBase.replace("#", "");
124
			}
127
			}
125
			String urlLangue = urlBase+"?lang="+listeLangues.getValue(indexLangue);
128
			String urlLangue = urlBase+"?lang="+listeLangues.getValue(indexLangue);
126
			Window.Location.replace(urlLangue);
129
			Window.Location.replace(urlLangue);
127
			
130
			
128
			return;
131
			return;
129
		}
132
		}
130
	});
133
	});
131
 
134
 
132
	  ExtElement lienAide = Ext.get("lienAide");
135
	  ExtElement lienAide = Ext.get("lienAide");
133
	  if(lienAide != null) 
136
	  if(lienAide != null) 
134
	  {	
137
	  {	
135
		  lienAide.removeAllListeners();
138
		  lienAide.removeAllListeners();
136
		  lienAide.addListener("click", new EventCallback() {
139
		  lienAide.addListener("click", new EventCallback() {
137
 
140
 
138
			  @Override
141
			  @Override
139
			  public void execute(EventObject e) {
142
			  public void execute(EventObject e) {
140
				  String aideUrl = Configuration.getAideBaseUrl() ;
143
				  String aideUrl = Configuration.getAideBaseUrl() ;
141
				  Window.open(aideUrl, "", "") ;		
144
				  Window.open(aideUrl, "", "") ;		
142
			  }
145
			  }
143
		  });
146
		  });
144
	  }
147
	  }
145
	  else
148
	  else
146
	  {
149
	  {
147
		  addListener(new ContainerListenerAdapter() {
150
		  addListener(new ContainerListenerAdapter() {
148
			  @Override
151
			  @Override
149
			  public void onAfterLayout(Container c) {
152
			  public void onAfterLayout(Container c) {
150
 
153
 
151
				  ExtElement lienAide = Ext.get("lienAide");
154
				  ExtElement lienAide = Ext.get("lienAide");
152
				  if(lienAide != null) 
155
				  if(lienAide != null) 
153
				  {	
156
				  {	
154
					  lienAide.removeAllListeners();
157
					  lienAide.removeAllListeners();
155
					  lienAide.addListener("click", new EventCallback() {
158
					  lienAide.addListener("click", new EventCallback() {
156
 
159
 
157
						  @Override
160
						  @Override
158
						  public void execute(EventObject e) {
161
						  public void execute(EventObject e) {
159
							  String aideUrl = Configuration.getAideBaseUrl() ;
162
							  String aideUrl = Configuration.getAideBaseUrl() ;
160
							  Window.open(aideUrl, "", "") ;		
163
							  Window.open(aideUrl, "", "") ;		
161
						  }
164
						  }
162
					  });
165
					  });
163
				  }
166
				  }
164
			  }
167
			  }
165
		  });
168
		  });
166
	  }
169
	  }
167
	  
170
	  
168
	  
171
	  
169
  }
172
  }
170
 
173
 
171
  /**
174
  /**
172
   * Affichage de l'etat de connexion
175
   * Affichage de l'etat de connexion
173
   * @param text
176
   * @param text
174
   * @param connecte
177
   * @param connecte
175
   */
178
   */
176
  public void setEtat(String identifiant, boolean connecte) {
179
  public void setEtat(String identifiant, boolean connecte) {
177
 
180
 
178
	  if(connecte) {
181
	  if(connecte) {
179
		  String[] params = {identifiant};
182
		  String[] params = {identifiant};
180
		  labelEtatConnexion = "<div id=\"etatConnexion\">"+Msg.get("connecte-en-tant-que", params)+" <a id=\"lienDeconnexion\" href=\"#\">("+Msg.get("deconnexion")+")</a>" ;
183
		  labelEtatConnexion = "<div id=\"etatConnexion\">"+Msg.get("connecte-en-tant-que", params)+" <a id=\"lienDeconnexion\" href=\"#\">("+Msg.get("deconnexion")+")</a>" ;
181
		  labelEtatConnexion += "</div>" ;
184
		  labelEtatConnexion += "</div>" ;
182
 
185
 
183
 
186
 
184
		  labelEtatConnexion += liens ;
187
		  labelEtatConnexion += liens ;
185
		  htmlEtatConnexion.setHTML(labelEtatConnexion);
188
		  htmlEtatConnexion.setHTML(labelEtatConnexion);
186
 
189
 
187
		  ExtElement lienDeco = Ext.get("lienDeconnexion");
190
		  ExtElement lienDeco = Ext.get("lienDeconnexion");
188
		  if(lienDeco != null) 
191
		  if(lienDeco != null) 
189
		  {
192
		  {
190
			  lienDeco.addListener("click", new EventCallback() {
193
			  lienDeco.addListener("click", new EventCallback() {
191
 
194
 
192
				  @Override
195
				  @Override
193
				  public void execute(EventObject e) {
196
				  public void execute(EventObject e) {
194
					  carnetEnLigneMediateur.deconnecterUtilisateur();
197
					  carnetEnLigneMediateur.deconnecterUtilisateur();
195
				  }
198
				  }
196
 
199
 
197
			  });
200
			  });
198
		  }
201
		  }
199
		  else
202
		  else
200
		  {
203
		  {
201
			  addListener(new ContainerListenerAdapter() 
204
			  addListener(new ContainerListenerAdapter() 
202
			  {
205
			  {
203
				  @Override
206
				  @Override
204
				  public void onAfterLayout(Container c) 
207
				  public void onAfterLayout(Container c) 
205
				  {
208
				  {
206
					  ExtElement lienDeco = Ext.get("etatConnexion");
209
					  ExtElement lienDeco = Ext.get("etatConnexion");
207
 
210
 
208
					  lienDeco.addListener("click", new EventCallback() {
211
					  lienDeco.addListener("click", new EventCallback() {
209
 
212
 
210
						  @Override
213
						  @Override
211
						  public void execute(EventObject e) {
214
						  public void execute(EventObject e) {
212
							  carnetEnLigneMediateur.deconnecterUtilisateur();
215
							  carnetEnLigneMediateur.deconnecterUtilisateur();
213
							  setEtat(null, false);
216
							  setEtat(null, false);
214
						  }
217
						  }
215
 
218
 
216
					  });
219
					  });
217
				  }
220
				  }
218
			  });
221
			  });
219
		  }
222
		  }
220
	  }
223
	  }
221
	  else
224
	  else
222
	  {
225
	  {
223
		  labelEtatConnexion = "<div id=\"etatConnexion\"> "+Msg.get("cel-utilisation")+", <a id=\"lienConnexion\" href=\"#\">"+Msg.get("identifiez-vous")+"</a> "+Msg.get("pour-transmettre-tela")+"</div>";
226
		  labelEtatConnexion = "<div id=\"etatConnexion\"> "+Msg.get("cel-utilisation")+", <a id=\"lienConnexion\" href=\"#\">"+Msg.get("identifiez-vous")+"</a> "+Msg.get("pour-transmettre-tela")+"</div>";
224
		  labelEtatConnexion += liens ;
227
		  labelEtatConnexion += liens ;
225
		  htmlEtatConnexion.setHTML(labelEtatConnexion);
228
		  htmlEtatConnexion.setHTML(labelEtatConnexion);
226
		  ExtElement lienCo = Ext.get("etatConnexion");
229
		  ExtElement lienCo = Ext.get("etatConnexion");
227
		  if(lienCo != null) {
230
		  if(lienCo != null) {
228
			  lienCo.addListener("click", new EventCallback() {
231
			  lienCo.addListener("click", new EventCallback() {
229
 
232
 
230
				  @Override
233
				  @Override
231
				  public void execute(EventObject e) {
234
				  public void execute(EventObject e) {
232
 
235
 
233
					  carnetEnLigneMediateur.afficherDialogueConnexion();
236
					  carnetEnLigneMediateur.afficherDialogueConnexion();
234
				  }
237
				  }
235
 
238
 
236
			  });
239
			  });
237
		  }
240
		  }
238
		  else 
241
		  else 
239
		  {
242
		  {
240
			  addListener(new ContainerListenerAdapter() {
243
			  addListener(new ContainerListenerAdapter() {
241
				  @Override
244
				  @Override
242
				  public void onAfterLayout(Container c) {
245
				  public void onAfterLayout(Container c) {
243
 
246
 
244
					  ExtElement lienCo = Ext.get("etatConnexion");
247
					  ExtElement lienCo = Ext.get("etatConnexion");
245
 
248
 
246
					  lienCo.addListener("click", new EventCallback() {
249
					  lienCo.addListener("click", new EventCallback() {
247
 
250
 
248
						  @Override
251
						  @Override
249
						  public void execute(EventObject e) {
252
						  public void execute(EventObject e) {
250
 
253
 
251
							  carnetEnLigneMediateur.afficherDialogueConnexion();
254
							  carnetEnLigneMediateur.afficherDialogueConnexion();
252
						  }
255
						  }
253
 
256
 
254
					  });
257
					  });
255
				  }
258
				  }
256
			  });
259
			  });
257
		  }
260
		  }
258
	  }
261
	  }
259
 
262
 
260
	  ExtElement lienAide = Ext.get("lienAide");
263
	  ExtElement lienAide = Ext.get("lienAide");
261
	  if(lienAide != null) 
264
	  if(lienAide != null) 
262
	  {	
265
	  {	
263
		  lienAide.removeAllListeners();
266
		  lienAide.removeAllListeners();
264
		  lienAide.addListener("click", new EventCallback() {
267
		  lienAide.addListener("click", new EventCallback() {
265
 
268
 
266
			  @Override
269
			  @Override
267
			  public void execute(EventObject e) {
270
			  public void execute(EventObject e) {
268
				  String aideUrl = Configuration.getAideBaseUrl() ;
271
				  String aideUrl = Configuration.getAideBaseUrl() ;
269
				  Window.open(aideUrl, "", "") ;		
272
				  Window.open(aideUrl, "", "") ;		
270
			  }
273
			  }
271
		  });
274
		  });
272
	  }
275
	  }
273
	  else
276
	  else
274
	  {
277
	  {
275
		  addListener(new ContainerListenerAdapter() {
278
		  addListener(new ContainerListenerAdapter() {
276
			  @Override
279
			  @Override
277
			  public void onAfterLayout(Container c) {
280
			  public void onAfterLayout(Container c) {
278
 
281
 
279
				  ExtElement lienAide = Ext.get("lienAide");
282
				  ExtElement lienAide = Ext.get("lienAide");
280
				  if(lienAide != null) 
283
				  if(lienAide != null) 
281
				  {	
284
				  {	
282
					  lienAide.removeAllListeners();
285
					  lienAide.removeAllListeners();
283
					  lienAide.addListener("click", new EventCallback() {
286
					  lienAide.addListener("click", new EventCallback() {
284
 
287
 
285
						  @Override
288
						  @Override
286
						  public void execute(EventObject e) {
289
						  public void execute(EventObject e) {
287
							  String aideUrl = Configuration.getAideBaseUrl() ;
290
							  String aideUrl = Configuration.getAideBaseUrl() ;
288
							  Window.open(aideUrl, "", "") ;		
291
							  Window.open(aideUrl, "", "") ;		
289
						  }
292
						  }
290
					  });
293
					  });
291
				  }
294
				  }
292
			  }
295
			  }
293
		  });
296
		  });
294
	  }
297
	  }
295
 
298
 
296
 
299
 
297
  }
300
  }
298
 
301
 
299
}
302
}
300
 
303
 
301
 
304
 
302
/* +--Fin du code ---------------------------------------------------------------------------------------+
305
/* +--Fin du code ---------------------------------------------------------------------------------------+
303
* $Log$
306
* $Log$
304
* Revision 1.1  2008-11-13 11:27:05  ddelon
307
* Revision 1.1  2008-11-13 11:27:05  ddelon
305
* Reecriture gwt-ext
308
* Reecriture gwt-ext
306
*
309
*
307
* Revision 1.1  2008-06-09 14:19:37  ddelon
310
* Revision 1.1  2008-06-09 14:19:37  ddelon
308
* Initialisation observation
311
* Initialisation observation
309
*
312
*
310
* Revision 1.2  2008-04-28 13:10:44  ddelon
313
* Revision 1.2  2008-04-28 13:10:44  ddelon
311
* Integration MyGwt
314
* Integration MyGwt
312
*
315
*
313
* Revision 1.1  2008-01-02 21:26:04  ddelon
316
* Revision 1.1  2008-01-02 21:26:04  ddelon
314
* mise en place mygwt
317
* mise en place mygwt
315
*
318
*
316
* Revision 1.6  2007-12-22 14:48:53  ddelon
319
* Revision 1.6  2007-12-22 14:48:53  ddelon
317
* Documentation et refactorisation
320
* Documentation et refactorisation
318
*
321
*
319
* Revision 1.5  2007-09-17 19:25:34  ddelon
322
* Revision 1.5  2007-09-17 19:25:34  ddelon
320
* Documentation
323
* Documentation
321
*
324
*
322
* 
325
* 
323
*/
326
*/