Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 23 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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