Login dialog (Ext GWT)
/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* [email protected]
*
* http://extjs.com/license
*/
package com.google.gwt.sample.hello.client;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
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.util.IconHelper;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.Status;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget. form .TextField;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.RootPanel;
public class Hello implements EntryPoint {
public void onModuleLoad () {
// RootPanel.get().add(new ReorderingTreeGridExample());
LoginDialog d = new LoginDialog () ;
d.show () ;
}
}
class LoginDialog extends Dialog {
protected TextField<String> userName;
protected TextField<String> password;
protected Button reset;
protected Button login;
protected Status status;
public LoginDialog () {
FormLayout layout = new FormLayout () ;
layout.setLabelWidth ( 90 ) ;
layout.setDefaultWidth ( 155 ) ;
setLayout ( layout ) ;
setButtonAlign ( HorizontalAlignment.LEFT ) ;
setButtons ( "" ) ;
setIcon ( IconHelper.createStyle ( "user" )) ;
setHeading ( "GXT Mail Demo Login" ) ;
setModal ( true ) ;
setBodyBorder ( true ) ;
setBodyStyle ( "padding: 8px;background: none" ) ;
setWidth ( 300 ) ;
setResizable ( false ) ;
KeyListener keyListener = new KeyListener () {
public void componentKeyUp ( ComponentEvent event ) {
validate () ;
}
} ;
userName = new TextField<String> () ;
userName.setMinLength ( 4 ) ;
userName.setFieldLabel ( "Username" ) ;
userName.addKeyListener ( keyListener ) ;
add ( userName ) ;
password = new TextField<String> () ;
password.setMinLength ( 4 ) ;
password.setPassword ( true ) ;
password.setFieldLabel ( "Password" ) ;
password.addKeyListener ( keyListener ) ;
add ( password ) ;
setFocusWidget ( userName ) ;
}
@Override
protected void createButtons () {
super .createButtons () ;
status = new Status () ;
status.setBusy ( "please wait..." ) ;
status.hide () ;
status.setAutoWidth ( true ) ;
getButtonBar () .add ( status ) ;
getButtonBar () .add ( new FillToolItem ()) ;
reset = new Button ( "Reset" ) ;
reset.addSelectionListener ( new SelectionListener<ButtonEvent> () {
public void componentSelected ( ButtonEvent ce ) {
userName.reset () ;
password.reset () ;
validate () ;
userName.focus () ;
}
}) ;
login = new Button ( "Login" ) ;
login.disable () ;
login.addSelectionListener ( new SelectionListener<ButtonEvent> () {
public void componentSelected ( ButtonEvent ce ) {
onSubmit () ;
}
}) ;
addButton ( reset ) ;
addButton ( login ) ;
}
protected void onSubmit () {
status.show () ;
getButtonBar () .disable () ;
Timer t = new Timer () {
@Override
public void run () {
LoginDialog. this .hide () ;
}
} ;
t.schedule ( 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 ) ;
}
}
Ext-GWT.zip( 4,297 k)
Related examples in the same category