Subversion Repositories eFlore/Archives.cel-v1

Rev

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

Rev 19 Rev 20
1
/**
1
/**
2
 Ce logiciel est régi par la licence CeCILL soumise au droit français et
2
 Ce logiciel est régi par la licence CeCILL soumise au droit français et
3
 respectant les principes de diffusion des logiciels libres. Vous pouvez
3
 respectant les principes de diffusion des logiciels libres. Vous pouvez
4
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
4
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
5
 de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA 
5
 de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA 
6
 sur le site "http://www.cecill.info".
6
 sur le site "http://www.cecill.info".
7
 En contrepartie de l'accessibilité au code source et des droits de copie,
7
 En contrepartie de l'accessibilité au code source et des droits de copie,
8
 de modification et de redistribution accordés par cette licence, il n'est
8
 de modification et de redistribution accordés par cette licence, il n'est
9
 offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
9
 offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
10
 seule une responsabilité restreinte pèse sur l'auteur du programme,  le
10
 seule une responsabilité restreinte pèse sur l'auteur du programme,  le
11
 titulaire des droits patrimoniaux et les concédants successifs.
11
 titulaire des droits patrimoniaux et les concédants successifs.
12
 
12
 
13
 A cet égard  l'attention de l'utilisateur est attirée sur les risques
13
 A cet égard  l'attention de l'utilisateur est attirée sur les risques
14
 associés au chargement,  à l'utilisation,  à la modification et/ou au
14
 associés au chargement,  à l'utilisation,  à la modification et/ou au
15
 développement et à la reproduction du logiciel par l'utilisateur étant 
15
 développement et à la reproduction du logiciel par l'utilisateur étant 
16
 donné sa spécificité de logiciel libre, qui peut le rendre complexe à 
16
 donné sa spécificité de logiciel libre, qui peut le rendre complexe à 
17
 manipuler et qui le réserve donc à des développeurs et des professionnels
17
 manipuler et qui le réserve donc à des développeurs et des professionnels
18
 avertis possédant  des  connaissances  informatiques approfondies.  Les
18
 avertis possédant  des  connaissances  informatiques approfondies.  Les
19
 utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
19
 utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
20
 logiciel à leurs besoins dans des conditions permettant d'assurer la
20
 logiciel à leurs besoins dans des conditions permettant d'assurer la
21
 sécurité de leurs systèmes et ou de leurs données et, plus généralement, 
21
 sécurité de leurs systèmes et ou de leurs données et, plus généralement, 
22
 à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. 
22
 à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. 
23
                                                                                                      
23
                                                                                                      
24
 Le fait que vous puissiez accéder à cet en-tête signifie que vous avez 
24
 Le fait que vous puissiez accéder à cet en-tête signifie que vous avez 
25
 pris connaissance de la licence CeCILL, et que vous en avez accepté les
25
 pris connaissance de la licence CeCILL, et que vous en avez accepté les
26
 termes.
26
 termes.
27
 
27
 
28
 */
28
 */
29
 
29
 
30
/*
30
/*
31
 CVS : $Id$
31
 $Id$
32
 
32
 
33
 */
33
 */
34
 
34
 
-
 
35
 
35
 
36
 
36
package org.tela_botanica.client;
37
package org.tela_botanica.client;
37
 
38
 
38
 
39
 
39
import com.google.gwt.json.client.JSONArray;
40
import com.google.gwt.json.client.JSONArray;
40
import com.google.gwt.json.client.JSONBoolean;
41
import com.google.gwt.json.client.JSONBoolean;
41
import com.google.gwt.json.client.JSONParser;
42
import com.google.gwt.json.client.JSONParser;
42
import com.google.gwt.json.client.JSONString;
43
import com.google.gwt.json.client.JSONString;
43
import com.google.gwt.json.client.JSONValue;
44
import com.google.gwt.json.client.JSONValue;
44
import com.google.gwt.user.client.HTTPRequest;
45
import com.google.gwt.user.client.HTTPRequest;
45
import com.google.gwt.user.client.ResponseTextHandler;
46
import com.google.gwt.user.client.ResponseTextHandler;
46
import com.google.gwt.user.client.ui.ClickListener;
47
import com.google.gwt.user.client.ui.ClickListener;
47
import com.google.gwt.user.client.ui.DialogBox;
48
import com.google.gwt.user.client.ui.DialogBox;
48
import com.google.gwt.user.client.ui.Grid;
49
import com.google.gwt.user.client.ui.Grid;
49
import com.google.gwt.user.client.ui.HTML;
50
import com.google.gwt.user.client.ui.HTML;
50
import com.google.gwt.user.client.ui.KeyboardListener;
51
import com.google.gwt.user.client.ui.KeyboardListener;
51
import com.google.gwt.user.client.ui.PasswordTextBox;
52
import com.google.gwt.user.client.ui.PasswordTextBox;
52
import com.google.gwt.user.client.ui.TextBox;
53
import com.google.gwt.user.client.ui.TextBox;
53
import com.google.gwt.user.client.ui.VerticalPanel;
54
import com.google.gwt.user.client.ui.VerticalPanel;
54
import com.google.gwt.user.client.ui.Widget;
55
import com.google.gwt.user.client.ui.Widget;
55
 
56
 
56
public class LoginDialog extends DialogBox {
57
public class LoginDialog extends DialogBox {
57
 
58
 
58
 
59
 
59
  Mediator mediator=null;
60
  Mediator mediator=null;
60
 
61
 
61
  private String serviceBaseUrl = null;
62
  private String serviceBaseUrl = null;
62
  private TextBox login = new TextBox();
63
  private TextBox login = new TextBox();
63
  private PasswordTextBox  password = new PasswordTextBox();
64
  private PasswordTextBox  password = new PasswordTextBox();
64
  private String user=null;
65
  private String user=null;
65
  
66
  
66
  
67
  
67
	
68
	
68
  public LoginDialog(final Mediator med) {
69
  public LoginDialog(final Mediator med) {
69
	  
70
	  
70
    setText("Connexion");
71
    setText("Connexion");
71
 
72
 
72
    mediator=med;
73
    mediator=med;
73
 
74
 
74
    mediator.registerLoginDialog(this);
75
    mediator.registerLoginDialog(this);
75
 
76
 
76
    user=mediator.getUser();
77
    user=mediator.getUser();
77
  
78
  
78
    serviceBaseUrl = mediator.getServiceBaseUrl();
79
    serviceBaseUrl = mediator.getServiceBaseUrl();
79
 
80
 
80
    
81
    
81
    VerticalPanel outer = new VerticalPanel();
82
    VerticalPanel outer = new VerticalPanel();
82
 
83
 
83
    Grid inner = new Grid(3,2);
84
    Grid inner = new Grid(3,2);
84
    
85
    
85
    
86
    
86
   
87
   
87
    HTML textLogin = new HTML("E-mail:");
88
    HTML textLogin = new HTML("E-mail:");
88
    
89
    
89
    
90
    
90
    HTML textPassword = new HTML("Mot de passe:");
91
    HTML textPassword = new HTML("Mot de passe:");
91
 
92
 
92
	
93
	
93
	HTML okButton=new HTML("Ok");
94
	HTML okButton=new HTML("Ok");
94
	okButton.setStyleName("html_button");
95
	okButton.setStyleName("html_button");
95
	okButton.addClickListener(
96
	okButton.addClickListener(
96
	    	new ClickListener() {
97
	    	new ClickListener() {
97
	    		public void onClick(Widget sender) {
98
	    		public void onClick(Widget sender) {
98
					  loginFromService(login.getText(),password.getText());
99
					  loginFromService(login.getText(),password.getText());
99
			        hide();
100
			        hide();
100
	    		}
101
	    		}
101
	     	}
102
	     	}
102
	);		
103
	);		
103
 
104
 
104
	
105
	
105
	
106
	
106
	HTML cancelButton=new HTML("Annuler");
107
	HTML cancelButton=new HTML("Annuler");
107
	cancelButton.setStyleName("html_button");
108
	cancelButton.setStyleName("html_button");
108
	cancelButton.addClickListener(
109
	cancelButton.addClickListener(
109
	    	new ClickListener() {
110
	    	new ClickListener() {
110
	    		public void onClick(Widget sender) {
111
	    		public void onClick(Widget sender) {
111
					        hide();
112
					        hide();
112
	    		}
113
	    		}
113
	     	}
114
	     	}
114
	);		
115
	);		
115
 
116
 
116
	
117
	
117
	  login.addKeyboardListener( new KeyboardListener() {
118
	  login.addKeyboardListener( new KeyboardListener() {
118
 
119
 
119
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
120
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
120
			  
121
			  
121
			  
122
			  
122
			  if(arg1 == KEY_ENTER)
123
			  if(arg1 == KEY_ENTER)
123
			    {
124
			    {
124
				  loginFromService(login.getText(),password.getText());
125
				  loginFromService(login.getText(),password.getText());
125
			        hide();
126
			        hide();
126
			    }
127
			    }
127
 
128
 
128
		  }
129
		  }
129
		  
130
		  
130
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
131
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
131
		  }
132
		  }
132
 
133
 
133
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
134
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
134
		  }
135
		  }
135
		  
136
		  
136
		  }
137
		  }
137
  );
138
  );
138
	
139
	
139
 
140
 
140
		
141
		
141
	  password.addKeyboardListener( new KeyboardListener() {
142
	  password.addKeyboardListener( new KeyboardListener() {
142
 
143
 
143
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
144
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
144
			  
145
			  
145
			  
146
			  
146
			  if(arg1 == KEY_ENTER)
147
			  if(arg1 == KEY_ENTER)
147
			    {
148
			    {
148
				  loginFromService(login.getText(),password.getText());
149
				  loginFromService(login.getText(),password.getText());
149
			        hide();
150
			        hide();
150
			    }
151
			    }
151
 
152
 
152
		  }
153
		  }
153
		  
154
		  
154
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
155
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
155
		  }
156
		  }
156
 
157
 
157
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
158
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
158
		  }
159
		  }
159
		  
160
		  
160
		  }
161
		  }
161
  );
162
  );
162
	
163
	
163
	  inner.setWidget(0,0,textLogin);
164
	  inner.setWidget(0,0,textLogin);
164
	  inner.setWidget(0,1,login);
165
	  inner.setWidget(0,1,login);
165
	  inner.setWidget(1,0,textPassword);
166
	  inner.setWidget(1,0,textPassword);
166
	  inner.setWidget(1,1,password);
167
	  inner.setWidget(1,1,password);
167
	  inner.setWidget(2,0,okButton);
168
	  inner.setWidget(2,0,okButton);
168
	  inner.setWidget(2,1,cancelButton);
169
	  inner.setWidget(2,1,cancelButton);
169
	 
170
	 
170
	  inner.setCellPadding(10);
171
	  inner.setCellPadding(10);
171
	  outer.add(inner);
172
	  outer.add(inner);
172
	  
173
	  
173
	 setWidget(outer);
174
	 setWidget(outer);
174
	    
175
	    
175
  }
176
  }
176
  
177
  
177
  
178
  
178
	/**
179
	/**
179
	 * 
180
	 * 
180
	 */
181
	 */
181
	
182
	
182
	private void loginFromService(String login, String password) {
183
	private void loginFromService(String login, String password) {
183
 
184
 
184
 
185
 
185
		HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + login + "/" + password ,
186
		HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + login + "/" + password ,
186
				new ResponseTextHandler() {
187
				new ResponseTextHandler() {
187
 
188
 
188
					public void onCompletion(String str) {
189
					public void onCompletion(String str) {
189
					
190
					
190
						
191
						
191
						JSONValue jsonValue = JSONParser.parse(str);
192
						JSONValue jsonValue = JSONParser.parse(str);
192
						JSONArray jsonArray;
193
						JSONArray jsonArray;
193
						if ((jsonArray = jsonValue.isArray()) != null) {
194
						if ((jsonArray = jsonValue.isArray()) != null) {
194
								user = ((JSONString) jsonArray.get(0)).stringValue();
195
								user = ((JSONString) jsonArray.get(0)).stringValue();
195
								mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
196
								mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
196
						}
197
						}
197
					
198
					
198
						if (mediator.getConnected()) {
199
						if (mediator.getConnected()) {
199
							mediator.onLogin(user);
200
							mediator.onLogin(user);
200
						}
201
						}
201
					}
202
					}
202
				});
203
				});
203
 
204
 
204
	}
205
	}
205
  
206
  
206
  
207
  
207
  public boolean onKeyDownPreview(char key, int modifiers) {
208
  public boolean onKeyDownPreview(char key, int modifiers) {
208
	    // Use the popup's key preview hooks to close the dialog when either
209
	    // Use the popup's key preview hooks to close the dialog when either
209
	    //  escape is pressed.
210
	    //  escape is pressed.
210
	    switch (key) {
211
	    switch (key) {
211
	      case KeyboardListener.KEY_ESCAPE:
212
	      case KeyboardListener.KEY_ESCAPE:
212
	        hide();
213
	        hide();
213
	        break;
214
	        break;
214
	    }
215
	    }
215
 
216
 
216
	    return true;
217
	    return true;
217
  }
218
  }
218
 
219
 
219
  
220
  
220
 
221
 
221
}
222
}
222
 
223
 
223
/* +--Fin du code ---------------------------------------------------------------------------------------+
224
/* +--Fin du code ---------------------------------------------------------------------------------------+
224
* $Log$
225
* $Log$
-
 
226
* Revision 1.6  2007-05-21 11:39:48  ddelon
-
 
227
* meta cvs
-
 
228
*
225
* Revision 1.5  2007-05-21 11:39:12  ddelon
229
* Revision 1.5  2007-05-21 11:39:12  ddelon
226
* meta cvs
230
* meta cvs
227
*
231
*
228
* Revision 1.4  2007-05-21 11:37:35  ddelon
232
* Revision 1.4  2007-05-21 11:37:35  ddelon
229
* meta cvs
233
* meta cvs
230
*
234
*
231
* Revision 1.3  2007-05-21 11:36:51  ddelon
235
* Revision 1.3  2007-05-21 11:36:51  ddelon
232
* meta cvs
236
* meta cvs
233
* 
237
* 
234
*/
238
*/