Rev 21 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/**David Delon david.delon@clapas.net 2007Ce logiciel est régi par la licence CeCILL soumise au droit français etrespectant les principes de diffusion des logiciels libres. Vous pouvezutiliser, modifier et/ou redistribuer ce programme sous les conditionsde la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIAsur le site "http://www.cecill.info".En contrepartie de l'accessibilité au code source et des droits de copie,de modification et de redistribution accordés par cette licence, il n'estoffert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,seule une responsabilité restreinte pèse sur l'auteur du programme, letitulaire des droits patrimoniaux et les concédants successifs.A cet égard l'attention de l'utilisateur est attirée sur les risquesassociés au chargement, à l'utilisation, à la modification et/ou audéveloppement et à la reproduction du logiciel par l'utilisateur étantdonné sa spécificité de logiciel libre, qui peut le rendre complexe àmanipuler et qui le réserve donc à des développeurs et des professionnelsavertis possédant des connaissances informatiques approfondies. Lesutilisateurs sont donc invités à charger et tester l'adéquation dulogiciel à leurs besoins dans des conditions permettant d'assurer lasécurité de leurs systèmes et ou de leurs données et, plus généralement,à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.Le fait que vous puissiez accéder à cet en-tête signifie que vous avezpris connaissance de la licence CeCILL, et que vous en avez accepté lestermes.*//** 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*/package org.tela_botanica.client;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.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;import com.google.gwt.user.client.ui.HTML;import com.google.gwt.user.client.ui.KeyboardListener;import com.google.gwt.user.client.ui.PasswordTextBox;import com.google.gwt.user.client.ui.TextBox;import com.google.gwt.user.client.ui.VerticalPanel;import com.google.gwt.user.client.ui.Widget;public class LoginDialog extends DialogBox {private Mediator mediator=null;private TextBox login = new TextBox();private PasswordTextBox password = new PasswordTextBox();private Grid inner = new Grid(4,2);public LoginDialog(final Mediator med) {setText("Connexion");mediator=med;VerticalPanel outer = new VerticalPanel();/** E-Mail : Zone_saisie_email* Mot-de-passe : Zone_saisie_mot_de_passe* Message d'information* Bouton_Ok Bouton_Annuler*/// Validation boutonHTML okButton=new HTML("Ok");okButton.setStyleName("html_button");okButton.addClickListener(new ClickListener() {public void onClick(Widget sender) {loginFromService();}});// AnnulationHTML cancelButton=new HTML("Annuler");cancelButton.setStyleName("html_button");cancelButton.addClickListener(new ClickListener() {public void onClick(Widget sender) {hide();}});//Validation utilisateur sans utilisation des boutons :login.addKeyboardListener( new KeyboardListener() {public void onKeyDown(Widget arg0, char arg1, int arg2) {if(arg1 == KEY_ENTER){loginFromService();}}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() {public void onKeyDown(Widget arg0, char arg1, int arg2) {if(arg1 == KEY_ENTER){loginFromService();}}public void onKeyUp(Widget arg0, char arg1, int arg2) { }public void onKeyPress(Widget arg0, char arg1, int arg2) { }});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);}/*** 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 ,new ResponseTextHandler() {public void onCompletion(String str) {JSONValue jsonValue = JSONParser.parse(str);JSONArray jsonArray;if ((jsonArray = jsonValue.isArray()) != null) {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();}else {inner.setHTML(2,0,"Identification incorrecte !");}}});}public boolean onKeyDownPreview(char key, int modifiers) {// Use the popup's key preview hooks to close the dialog when either// escape is pressed.switch (key) {case KeyboardListener.KEY_ESCAPE:hide();break;}return true;}}/* +--Fin du code ---------------------------------------------------------------------------------------+* $Log$* Revision 1.8 2007-05-21 18:14:06 ddelon* Gestion importation releve locaux** Revision 1.7 2007-05-21 11:47:30 ddelon* meta cvs** Revision 1.6 2007-05-21 11:39:48 ddelon* meta cvs** Revision 1.5 2007-05-21 11:39:12 ddelon* meta cvs** Revision 1.4 2007-05-21 11:37:35 ddelon* meta cvs** Revision 1.3 2007-05-21 11:36:51 ddelon* meta cvs**/