Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 23 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
15 ddelon 1
/**
21 ddelon 2
 David Delon david.delon@clapas.net 2007
3
 
15 ddelon 4
 
18 ddelon 5
 */
6
 
7
/*
21 ddelon 8
 * LoginDialog.java  (DialogBox)
9
 *
10
 * Cas d'utilisation :
11
 * Dialogue de validation de l'identification utilisateur
12
 *
13
 * 1 : L'utilisateur saisit son identifiant (e-mail) et son mot de passe
26 ddelon 14
 * 2 : Le dialogue controle aupres du systeme distant la validite des informations saisies
15
 * 3 : Le dialogue transmet au systeme local les informations d'identification
21 ddelon 16
 * 		3a : Le dialogue informe l'utilisateur que les elements d'identification ne sont pas valide : retour au point 1, ou passe au point 4.
26 ddelon 17
 * 4 : Cloture du dialogue
21 ddelon 18
 * 5 : Appel du dialogue d'importation
18 ddelon 19
 */
15 ddelon 20
 
14 ddelon 21
package org.tela_botanica.client;
22
 
23
 
24
import com.google.gwt.json.client.JSONArray;
25
import com.google.gwt.json.client.JSONBoolean;
26
import com.google.gwt.json.client.JSONParser;
27
import com.google.gwt.json.client.JSONValue;
28
import com.google.gwt.user.client.HTTPRequest;
29
import com.google.gwt.user.client.ResponseTextHandler;
21 ddelon 30
import com.google.gwt.user.client.Window;
14 ddelon 31
import com.google.gwt.user.client.ui.ClickListener;
32
import com.google.gwt.user.client.ui.DialogBox;
33
import com.google.gwt.user.client.ui.Grid;
34
import com.google.gwt.user.client.ui.HTML;
35
import com.google.gwt.user.client.ui.KeyboardListener;
36
import com.google.gwt.user.client.ui.PasswordTextBox;
37
import com.google.gwt.user.client.ui.TextBox;
38
import com.google.gwt.user.client.ui.VerticalPanel;
39
import com.google.gwt.user.client.ui.Widget;
40
 
41
public class LoginDialog extends DialogBox {
42
 
43
 
21 ddelon 44
  private Mediator mediator=null;
14 ddelon 45
  private TextBox login = new TextBox();
46
  private PasswordTextBox  password = new PasswordTextBox();
21 ddelon 47
  private Grid inner = new Grid(4,2);
14 ddelon 48
 
49
 
50
  public LoginDialog(final Mediator med) {
51
 
52
    setText("Connexion");
53
 
54
    mediator=med;
55
 
56
    VerticalPanel outer = new VerticalPanel();
57
 
21 ddelon 58
/*
59
 *  E-Mail : Zone_saisie_email
60
 *  Mot-de-passe : Zone_saisie_mot_de_passe
61
 *  Message d'information
62
 *  Bouton_Ok   Bouton_Annuler
63
 */
14 ddelon 64
 
65
 
66
 
21 ddelon 67
// Validation bouton
14 ddelon 68
 
69
	HTML okButton=new HTML("Ok");
70
	okButton.setStyleName("html_button");
71
	okButton.addClickListener(
72
	    	new ClickListener() {
73
	    		public void onClick(Widget sender) {
21 ddelon 74
					loginFromService();
14 ddelon 75
	    		}
76
	     	}
77
	);
78
 
79
 
21 ddelon 80
// Annulation
14 ddelon 81
 
82
	HTML cancelButton=new HTML("Annuler");
83
	cancelButton.setStyleName("html_button");
84
	cancelButton.addClickListener(
85
	    	new ClickListener() {
86
	    		public void onClick(Widget sender) {
87
					        hide();
88
	    		}
89
	     	}
90
	);
91
 
21 ddelon 92
//Validation utilisateur sans utilisation des boutons :
93
 
14 ddelon 94
 
21 ddelon 95
  login.addKeyboardListener( new KeyboardListener() {
14 ddelon 96
 
97
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
98
			  if(arg1 == KEY_ENTER)
99
			    {
21 ddelon 100
				  loginFromService();
14 ddelon 101
			    }
102
		  }
103
 
21 ddelon 104
		  public void onKeyUp(Widget arg0, char arg1, int arg2) { }
105
		  public void onKeyPress(Widget arg0, char arg1, int arg2) { }
14 ddelon 106
 
107
		  }
108
  );
109
 
110
 
21 ddelon 111
// Validation utilisateur sans utilisation des boutons :
112
 
113
  password.addKeyboardListener( new KeyboardListener() {
14 ddelon 114
 
115
		  public void onKeyDown(Widget arg0, char arg1, int arg2) {
116
 
117
			  if(arg1 == KEY_ENTER)
118
			    {
21 ddelon 119
				  loginFromService();
14 ddelon 120
			    }
121
		  }
122
 
21 ddelon 123
		  public void onKeyUp(Widget arg0, char arg1, int arg2) { }
124
		  public void onKeyPress(Widget arg0, char arg1, int arg2) { }
14 ddelon 125
 
126
		  }
127
  );
21 ddelon 128
 
129
 
130
     inner.setHTML(0,0,"E-mail:");
131
	 inner.setWidget(0,1,login);
132
	 inner.setHTML(1,0,"Mot de passe:           ");
133
	 inner.setWidget(1,1,password);
134
	 inner.setWidget(3,0,okButton);
135
	 inner.setWidget(3,1,cancelButton);
14 ddelon 136
 
21 ddelon 137
	 inner.setCellPadding(10);
138
     outer.add(inner);
14 ddelon 139
	 setWidget(outer);
140
 
141
  }
142
 
143
 
144
 
21 ddelon 145
  /**
26 ddelon 146
   * Appel du service d'identification et positionnement de l'etat de connection en fonction du resultat.
21 ddelon 147
   *
148
   * @param login : identifiant saisi
149
   * @param password : mot de passe saisi
150
   *
151
   */
152
 
153
	private void loginFromService() {
154
 
155
		final String login=this.login.getText();
156
		String password=this.password.getText();
14 ddelon 157
 
21 ddelon 158
		HTTPRequest.asyncGet(mediator.getServiceBaseUrl() + "/User/" + login + "/" + password ,
14 ddelon 159
				new ResponseTextHandler() {
160
 
161
					public void onCompletion(String str) {
21 ddelon 162
 
14 ddelon 163
						JSONValue jsonValue = JSONParser.parse(str);
164
						JSONArray jsonArray;
165
						if ((jsonArray = jsonValue.isArray()) != null) {
166
								mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
167
						}
21 ddelon 168
 
14 ddelon 169
						if (mediator.getConnected()) {
21 ddelon 170
							mediator.setUser(login);
171
							hide();
172
							ImportDialog importDialog = new ImportDialog(mediator);
173
 
174
		    				// Position it roughly in the middle of the screen.
175
		    				int left = (Window.getClientWidth() - 512) / 2;
176
		    				int top = (Window.getClientHeight() - 256) / 2;
177
		    				importDialog.setPopupPosition(left, top);
178
		    				importDialog.show();
14 ddelon 179
						}
21 ddelon 180
						else {
181
							inner.setHTML(2,0,"Identification incorrecte !");
182
						}
14 ddelon 183
					}
184
				});
185
 
186
	}
187
 
188
 
21 ddelon 189
 
190
 
191
 
14 ddelon 192
  public boolean onKeyDownPreview(char key, int modifiers) {
193
	    // Use the popup's key preview hooks to close the dialog when either
194
	    //  escape is pressed.
195
	    switch (key) {
196
	      case KeyboardListener.KEY_ESCAPE:
197
	        hide();
198
	        break;
199
	    }
200
 
201
	    return true;
202
  }
203
 
204
 
205
 
206
}
15 ddelon 207
 
208
/* +--Fin du code ---------------------------------------------------------------------------------------+
17 ddelon 209
* $Log$
26 ddelon 210
* Revision 1.9  2007-05-21 21:03:44  ddelon
211
* nettoyage de code
212
*
23 ddelon 213
* Revision 1.8  2007-05-21 18:14:06  ddelon
214
* Gestion importation releve locaux
215
*
21 ddelon 216
* Revision 1.7  2007-05-21 11:47:30  ddelon
217
* meta cvs
218
*
20 ddelon 219
* Revision 1.6  2007-05-21 11:39:48  ddelon
220
* meta cvs
221
*
19 ddelon 222
* Revision 1.5  2007-05-21 11:39:12  ddelon
223
* meta cvs
224
*
18 ddelon 225
* Revision 1.4  2007-05-21 11:37:35  ddelon
226
* meta cvs
227
*
17 ddelon 228
* Revision 1.3  2007-05-21 11:36:51  ddelon
229
* meta cvs
230
*
15 ddelon 231
*/