Subversion Repositories eFlore/Archives.cel-v1

Rev

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

Rev 16 Rev 17
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
 CVS $Id$
28
 $Id$
29
 
29
 
30
 
30
 
31
 *
31
 *
32
 */
32
 */
33
 
33
 
34
package org.tela_botanica.client;
34
package org.tela_botanica.client;
35
 
35
 
36
 
36
 
37
import com.google.gwt.json.client.JSONArray;
37
import com.google.gwt.json.client.JSONArray;
38
import com.google.gwt.json.client.JSONBoolean;
38
import com.google.gwt.json.client.JSONBoolean;
39
import com.google.gwt.json.client.JSONParser;
39
import com.google.gwt.json.client.JSONParser;
40
import com.google.gwt.json.client.JSONString;
40
import com.google.gwt.json.client.JSONString;
41
import com.google.gwt.json.client.JSONValue;
41
import com.google.gwt.json.client.JSONValue;
42
import com.google.gwt.user.client.HTTPRequest;
42
import com.google.gwt.user.client.HTTPRequest;
43
import com.google.gwt.user.client.ResponseTextHandler;
43
import com.google.gwt.user.client.ResponseTextHandler;
44
import com.google.gwt.user.client.ui.ClickListener;
44
import com.google.gwt.user.client.ui.ClickListener;
45
import com.google.gwt.user.client.ui.DialogBox;
45
import com.google.gwt.user.client.ui.DialogBox;
46
import com.google.gwt.user.client.ui.Grid;
46
import com.google.gwt.user.client.ui.Grid;
47
import com.google.gwt.user.client.ui.HTML;
47
import com.google.gwt.user.client.ui.HTML;
48
import com.google.gwt.user.client.ui.KeyboardListener;
48
import com.google.gwt.user.client.ui.KeyboardListener;
49
import com.google.gwt.user.client.ui.PasswordTextBox;
49
import com.google.gwt.user.client.ui.PasswordTextBox;
50
import com.google.gwt.user.client.ui.TextBox;
50
import com.google.gwt.user.client.ui.TextBox;
51
import com.google.gwt.user.client.ui.VerticalPanel;
51
import com.google.gwt.user.client.ui.VerticalPanel;
52
import com.google.gwt.user.client.ui.Widget;
52
import com.google.gwt.user.client.ui.Widget;
53
 
53
 
54
public class LoginDialog extends DialogBox {
54
public class LoginDialog extends DialogBox {
55
 
55
 
56
 
56
 
57
  Mediator mediator=null;
57
  Mediator mediator=null;
58
 
58
 
59
  private String serviceBaseUrl = null;
59
  private String serviceBaseUrl = null;
60
  private TextBox login = new TextBox();
60
  private TextBox login = new TextBox();
61
  private PasswordTextBox  password = new PasswordTextBox();
61
  private PasswordTextBox  password = new PasswordTextBox();
62
  private String user=null;
62
  private String user=null;
63
  
63
  
64
  
64
  
65
	
65
	
66
  public LoginDialog(final Mediator med) {
66
  public LoginDialog(final Mediator med) {
67
	  
67
	  
68
    setText("Connexion");
68
    setText("Connexion");
69
 
69
 
70
    mediator=med;
70
    mediator=med;
71
 
71
 
72
    mediator.registerLoginDialog(this);
72
    mediator.registerLoginDialog(this);
73
 
73
 
74
    user=mediator.getUser();
74
    user=mediator.getUser();
75
  
75
  
76
    serviceBaseUrl = mediator.getServiceBaseUrl();
76
    serviceBaseUrl = mediator.getServiceBaseUrl();
77
 
77
 
78
    
78
    
79
    VerticalPanel outer = new VerticalPanel();
79
    VerticalPanel outer = new VerticalPanel();
80
 
80
 
81
    Grid inner = new Grid(3,2);
81
    Grid inner = new Grid(3,2);
82
    
82
    
83
    
83
    
84
   
84
   
85
    HTML textLogin = new HTML("E-mail:");
85
    HTML textLogin = new HTML("E-mail:");
86
    
86
    
87
    
87
    
88
    HTML textPassword = new HTML("Mot de passe:");
88
    HTML textPassword = new HTML("Mot de passe:");
89
 
89
 
90
	
90
	
91
	HTML okButton=new HTML("Ok");
91
	HTML okButton=new HTML("Ok");
92
	okButton.setStyleName("html_button");
92
	okButton.setStyleName("html_button");
93
	okButton.addClickListener(
93
	okButton.addClickListener(
94
	    	new ClickListener() {
94
	    	new ClickListener() {
95
	    		public void onClick(Widget sender) {
95
	    		public void onClick(Widget sender) {
96
					  loginFromService(login.getText(),password.getText());
96
					  loginFromService(login.getText(),password.getText());
97
			        hide();
97
			        hide();
98
	    		}
98
	    		}
99
	     	}
99
	     	}
100
	);		
100
	);		
101
 
101
 
102
	
102
	
103
	
103
	
104
	HTML cancelButton=new HTML("Annuler");
104
	HTML cancelButton=new HTML("Annuler");
105
	cancelButton.setStyleName("html_button");
105
	cancelButton.setStyleName("html_button");
106
	cancelButton.addClickListener(
106
	cancelButton.addClickListener(
107
	    	new ClickListener() {
107
	    	new ClickListener() {
108
	    		public void onClick(Widget sender) {
108
	    		public void onClick(Widget sender) {
109
					        hide();
109
					        hide();
110
	    		}
110
	    		}
111
	     	}
111
	     	}
112
	);		
112
	);		
113
 
113
 
114
	
114
	
115
	  login.addKeyboardListener( new KeyboardListener() {
115
	  login.addKeyboardListener( new KeyboardListener() {
116
 
116
 
117
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
117
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
118
			  
118
			  
119
			  
119
			  
120
			  if(arg1 == KEY_ENTER)
120
			  if(arg1 == KEY_ENTER)
121
			    {
121
			    {
122
				  loginFromService(login.getText(),password.getText());
122
				  loginFromService(login.getText(),password.getText());
123
			        hide();
123
			        hide();
124
			    }
124
			    }
125
 
125
 
126
		  }
126
		  }
127
		  
127
		  
128
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
128
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
129
		  }
129
		  }
130
 
130
 
131
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
131
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
132
		  }
132
		  }
133
		  
133
		  
134
		  }
134
		  }
135
  );
135
  );
136
	
136
	
137
 
137
 
138
		
138
		
139
	  password.addKeyboardListener( new KeyboardListener() {
139
	  password.addKeyboardListener( new KeyboardListener() {
140
 
140
 
141
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
141
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
142
			  
142
			  
143
			  
143
			  
144
			  if(arg1 == KEY_ENTER)
144
			  if(arg1 == KEY_ENTER)
145
			    {
145
			    {
146
				  loginFromService(login.getText(),password.getText());
146
				  loginFromService(login.getText(),password.getText());
147
			        hide();
147
			        hide();
148
			    }
148
			    }
149
 
149
 
150
		  }
150
		  }
151
		  
151
		  
152
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
152
		  public void onKeyUp(Widget arg0, char arg1, int arg2) {
153
		  }
153
		  }
154
 
154
 
155
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
155
		  public void onKeyPress(Widget arg0, char arg1, int arg2) {
156
		  }
156
		  }
157
		  
157
		  
158
		  }
158
		  }
159
  );
159
  );
160
	
160
	
161
	  inner.setWidget(0,0,textLogin);
161
	  inner.setWidget(0,0,textLogin);
162
	  inner.setWidget(0,1,login);
162
	  inner.setWidget(0,1,login);
163
	  inner.setWidget(1,0,textPassword);
163
	  inner.setWidget(1,0,textPassword);
164
	  inner.setWidget(1,1,password);
164
	  inner.setWidget(1,1,password);
165
	  inner.setWidget(2,0,okButton);
165
	  inner.setWidget(2,0,okButton);
166
	  inner.setWidget(2,1,cancelButton);
166
	  inner.setWidget(2,1,cancelButton);
167
	 
167
	 
168
	  inner.setCellPadding(10);
168
	  inner.setCellPadding(10);
169
	  outer.add(inner);
169
	  outer.add(inner);
170
	  
170
	  
171
	 setWidget(outer);
171
	 setWidget(outer);
172
	    
172
	    
173
  }
173
  }
174
  
174
  
175
  
175
  
176
	/**
176
	/**
177
	 * 
177
	 * 
178
	 */
178
	 */
179
	
179
	
180
	private void loginFromService(String login, String password) {
180
	private void loginFromService(String login, String password) {
181
 
181
 
182
 
182
 
183
		HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + login + "/" + password ,
183
		HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + login + "/" + password ,
184
				new ResponseTextHandler() {
184
				new ResponseTextHandler() {
185
 
185
 
186
					public void onCompletion(String str) {
186
					public void onCompletion(String str) {
187
					
187
					
188
						
188
						
189
						JSONValue jsonValue = JSONParser.parse(str);
189
						JSONValue jsonValue = JSONParser.parse(str);
190
						JSONArray jsonArray;
190
						JSONArray jsonArray;
191
						if ((jsonArray = jsonValue.isArray()) != null) {
191
						if ((jsonArray = jsonValue.isArray()) != null) {
192
								user = ((JSONString) jsonArray.get(0)).stringValue();
192
								user = ((JSONString) jsonArray.get(0)).stringValue();
193
								mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
193
								mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
194
						}
194
						}
195
					
195
					
196
						if (mediator.getConnected()) {
196
						if (mediator.getConnected()) {
197
							mediator.onLogin(user);
197
							mediator.onLogin(user);
198
						}
198
						}
199
					}
199
					}
200
				});
200
				});
201
 
201
 
202
	}
202
	}
203
  
203
  
204
  
204
  
205
  public boolean onKeyDownPreview(char key, int modifiers) {
205
  public boolean onKeyDownPreview(char key, int modifiers) {
206
	    // Use the popup's key preview hooks to close the dialog when either
206
	    // Use the popup's key preview hooks to close the dialog when either
207
	    //  escape is pressed.
207
	    //  escape is pressed.
208
	    switch (key) {
208
	    switch (key) {
209
	      case KeyboardListener.KEY_ESCAPE:
209
	      case KeyboardListener.KEY_ESCAPE:
210
	        hide();
210
	        hide();
211
	        break;
211
	        break;
212
	    }
212
	    }
213
 
213
 
214
	    return true;
214
	    return true;
215
  }
215
  }
216
 
216
 
217
  
217
  
218
 
218
 
219
}
219
}
220
 
220
 
221
/* +--Fin du code ---------------------------------------------------------------------------------------+
221
/* +--Fin du code ---------------------------------------------------------------------------------------+
222
* CVS $Log$
222
* $Log$
-
 
223
* Revision 1.3  2007-05-21 11:36:51  ddelon
-
 
224
* meta cvs
-
 
225
* 
223
*/
226
*/