Rev 64 | Rev 66 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.composants;/** Ext GWT - Ext for GWT* Copyright(c) 2007, 2008, Ext JS, LLC.* licensing@extjs.com** http://extjs.com/license*/import org.tela_botanica.client.Mediateur;import org.tela_botanica.client.RegistreId;import org.tela_botanica.client.modeles.Utilisateur;import com.extjs.gxt.ui.client.Registry;import com.extjs.gxt.ui.client.event.ButtonEvent;import com.extjs.gxt.ui.client.event.ComponentEvent;import com.extjs.gxt.ui.client.event.KeyListener;import com.extjs.gxt.ui.client.event.SelectionListener;import com.extjs.gxt.ui.client.fx.FxConfig;import com.extjs.gxt.ui.client.widget.Dialog;import com.extjs.gxt.ui.client.widget.button.Button;import com.extjs.gxt.ui.client.widget.button.StatusButtonBar;import com.extjs.gxt.ui.client.widget.form.TextField;import com.extjs.gxt.ui.client.widget.layout.FormLayout;import com.google.gwt.user.client.Timer;public class IdentificationFenetre extends Dialog {protected StatusButtonBar buttonBar;protected TextField<String> userName;protected TextField<String> password;protected Button reset;protected Button login;public IdentificationFenetre() {FormLayout layout = new FormLayout();layout.setLabelWidth(90);layout.setDefaultWidth(155);setLayout(layout);setButtons("");setIconStyle("user");setHeading("Collections en ligne - Identification");setModal(true);setBodyBorder(true);setBodyStyle("padding: 10px;background: none");setWidth(310);setResizable(false);setAutoWidth(false);KeyListener keyListener = new KeyListener() {public void componentKeyUp(ComponentEvent event) {validate();}};userName = new TextField<String>();userName.setMinLength(4);userName.setFieldLabel("Courriel");userName.addKeyListener(keyListener);add(userName);password = new TextField<String>();password.setMinLength(4);password.setPassword(true);password.setFieldLabel("Mot de passe");password.addKeyListener(keyListener);add(password);setFocusWidget(userName);buttonBar = new StatusButtonBar();setButtonBar(buttonBar);}@Overrideprotected void createButtons() {reset = new Button("Réinitialiser");reset.addSelectionListener(new SelectionListener<ButtonEvent>() {public void componentSelected(ButtonEvent ce) {userName.reset();password.reset();validate();userName.focus();}});login = new Button("Valider");//login.disable(); // Par défaut : dois être en mode disablelogin.addSelectionListener(new SelectionListener<ButtonEvent>() {public void componentSelected(ButtonEvent ce) {onSubmit();}});buttonBar.add(reset);buttonBar.add(login);}protected void onSubmit() {buttonBar.getStatusBar().showBusy("Chargement en cours ...");buttonBar.disable();Timer t = new Timer() {@Overridepublic void run() {IdentificationFenetre.this.hide();((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(userName.getValue(), password.getValue());}};t.schedule(2);// Par défaut : 2000}protected boolean hasValue(TextField<String> field) {return field.getValue() != null && field.getValue().length() > 0;}protected void validate() {login.setEnabled(hasValue(userName) && hasValue(password) && password.getValue().length() > 3);}}