Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 19 | Rev 21 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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