SmartGwt – Control siguiente

agosto 26, 2009


En nuestras aplicaciones un requerimiento comun en los controles, es que cuando den un ENTER el foco cambie automaticamente al siguiente control (en un formulario web normalmente lo haces con un TAB). Pero donde manda capitan no gobierna marinero.
Asi que aqui presento una forma de seleccionar el siguiente control en un formulario cuando el usuario presiona ENTER.

TextItem txtUsuario = new TextItem("usuario", "Usuario");
txtUsuario.setTabIndex(0);
txtUsuario.addKeyPressHandler(new KeyPressHandler() {
@Override
public void onKeyPress(KeyPressEvent event) {
if ("Enter".equals(event.getKeyName())) {
frmLogin.focusInItem(cmbOficina);
}
}
});

Puedes utilizar el siguiente método para recorrer de forma cíclica a través de los controles del formulario

	@Override
	public void onItemKeyPress(ItemKeyPressEvent event) {
		if(event.getKeyName().equals("Enter")){
			event.getItem().getForm().focusInItem(nextItemNumber(event.getItem()));
		}
	}
	
	private Integer nextItemNumber(FormItem item){
		FormItem[] fields = item.getForm().getFields();
		for(int itemNumber=0;itemNumber<fields.length; itemNumber++){
			if(item.equals(fields[itemNumber])&&itemNumber+1<fields.length){
				return itemNumber+1;
			}
		}
		return 0;
	}
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: