Subversion Repositories eFlore/Archives.cel-v1

Compare Revisions

Ignore whitespace Rev 21 → Rev 20

/trunk/src/org/tela_botanica/client/ImportDialog.java
File deleted
/trunk/src/org/tela_botanica/client/LoginDialog.java
1,6 → 1,4
/**
David Delon david.delon@clapas.net 2007
Ce logiciel est régi par la licence CeCILL soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
30,19 → 28,12
*/
 
/*
* LoginDialog.java (DialogBox)
*
* Cas d'utilisation :
* Dialogue de validation de l'identification utilisateur
*
* 1 : L'utilisateur saisit son identifiant (e-mail) et son mot de passe
* 2 : Le dialogue contrôle auprès du système distant la validité des informations saisies
* 3 : Le dialogue transmet au système local les informations d'identification
* 3a : Le dialogue informe l'utilisateur que les elements d'identification ne sont pas valide : retour au point 1, ou passe au point 4.
* 4 : Clôture du dialogue
* 5 : Appel du dialogue d'importation
$Id$
*/
 
 
 
package org.tela_botanica.client;
 
 
49,10 → 40,10
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONBoolean;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Grid;
66,11 → 57,14
public class LoginDialog extends DialogBox {
 
 
private Mediator mediator=null;
Mediator mediator=null;
 
private String serviceBaseUrl = null;
private TextBox login = new TextBox();
private PasswordTextBox password = new PasswordTextBox();
private Grid inner = new Grid(4,2);
private String user=null;
public LoginDialog(final Mediator med) {
77,33 → 71,38
setText("Connexion");
 
mediator=med;
 
mediator.registerLoginDialog(this);
 
user=mediator.getUser();
serviceBaseUrl = mediator.getServiceBaseUrl();
 
VerticalPanel outer = new VerticalPanel();
 
/*
* E-Mail : Zone_saisie_email
* Mot-de-passe : Zone_saisie_mot_de_passe
* Message d'information
* Bouton_Ok Bouton_Annuler
*/
Grid inner = new Grid(3,2);
HTML textLogin = new HTML("E-mail:");
// Validation bouton
HTML textPassword = new HTML("Mot de passe:");
HTML okButton=new HTML("Ok");
okButton.setStyleName("html_button");
okButton.addClickListener(
new ClickListener() {
public void onClick(Widget sender) {
loginFromService();
loginFromService(login.getText(),password.getText());
hide();
}
}
);
 
// Annulation
HTML cancelButton=new HTML("Annuler");
cancelButton.setStyleName("html_button");
115,97 → 114,91
}
);
 
//Validation utilisateur sans utilisation des boutons :
 
login.addKeyboardListener( new KeyboardListener() {
login.addKeyboardListener( new KeyboardListener() {
 
public void onKeyDown(Widget arg0, char arg1, int arg2) {
if(arg1 == KEY_ENTER)
{
loginFromService();
loginFromService(login.getText(),password.getText());
hide();
}
 
}
public void onKeyUp(Widget arg0, char arg1, int arg2) { }
public void onKeyPress(Widget arg0, char arg1, int arg2) { }
public void onKeyUp(Widget arg0, char arg1, int arg2) {
}
 
public void onKeyPress(Widget arg0, char arg1, int arg2) {
}
}
);
 
// Validation utilisateur sans utilisation des boutons :
password.addKeyboardListener( new KeyboardListener() {
password.addKeyboardListener( new KeyboardListener() {
 
public void onKeyDown(Widget arg0, char arg1, int arg2) {
if(arg1 == KEY_ENTER)
{
loginFromService();
loginFromService(login.getText(),password.getText());
hide();
}
 
}
public void onKeyUp(Widget arg0, char arg1, int arg2) { }
public void onKeyPress(Widget arg0, char arg1, int arg2) { }
public void onKeyUp(Widget arg0, char arg1, int arg2) {
}
 
public void onKeyPress(Widget arg0, char arg1, int arg2) {
}
}
);
 
inner.setWidget(0,0,textLogin);
inner.setWidget(0,1,login);
inner.setWidget(1,0,textPassword);
inner.setWidget(1,1,password);
inner.setWidget(2,0,okButton);
inner.setWidget(2,1,cancelButton);
inner.setCellPadding(10);
outer.add(inner);
inner.setHTML(0,0,"E-mail:");
inner.setWidget(0,1,login);
inner.setHTML(1,0,"Mot de passe:           ");
inner.setWidget(1,1,password);
inner.setWidget(3,0,okButton);
inner.setWidget(3,1,cancelButton);
inner.setCellPadding(10);
outer.add(inner);
setWidget(outer);
}
/**
*
*/
private void loginFromService(String login, String password) {
 
/**
* Appel du service d'identification et positionnement de l'état de connection en fonction du résultat.
*
* @param login : identifiant saisi
* @param password : mot de passe saisi
*
*/
private void loginFromService() {
final String login=this.login.getText();
String password=this.password.getText();
 
HTTPRequest.asyncGet(mediator.getServiceBaseUrl() + "/User/" + login + "/" + password ,
HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + login + "/" + password ,
new ResponseTextHandler() {
 
public void onCompletion(String str) {
JSONValue jsonValue = JSONParser.parse(str);
JSONArray jsonArray;
if ((jsonArray = jsonValue.isArray()) != null) {
user = ((JSONString) jsonArray.get(0)).stringValue();
mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
}
if (mediator.getConnected()) {
mediator.setUser(login);
hide();
ImportDialog importDialog = new ImportDialog(mediator);
 
// Position it roughly in the middle of the screen.
int left = (Window.getClientWidth() - 512) / 2;
int top = (Window.getClientHeight() - 256) / 2;
importDialog.setPopupPosition(left, top);
importDialog.show();
mediator.onLogin(user);
}
else {
inner.setHTML(2,0,"Identification incorrecte !");
}
}
});
 
212,9 → 205,6
}
public boolean onKeyDownPreview(char key, int modifiers) {
// Use the popup's key preview hooks to close the dialog when either
// escape is pressed.
233,9 → 223,6
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
* Revision 1.7 2007-05-21 11:47:30 ddelon
* meta cvs
*
* Revision 1.6 2007-05-21 11:39:48 ddelon
* meta cvs
*