jueves, 18 de noviembre de 2010

Código liberado: EventListenHelper

Traducir / Translate

La libreria EventListenHelper guarda y ejecuta las asignaciones de manejo de eventos para luego desactivarlas más fácilmente y sin tener que recordarlas previamente.

Normalmente los widgets se crean en la rutina de setup del asistente y luego se relacionan con sus handlers y eventos. Al final en la rutina cleanup se hace el trabajo inverso, que es eliminar todas las relaciones widgets-eventos-handlers.

La operación de limpieza es muy importante para no dejar cabos sueltos en la aplicación (¡no nos olvidemos que estamos en una aplicación de JavaScript!) y además optimiza el manejo de recursos, tanto de memoria como de ciclos de CPU para la ejecución de eventos.

Normalmente el problema se produce en la rutina de cleanup, porque hay que ser exacto en la limpieza de todas esas relaciones widget-evento-handler. La librería EventListenHelper hace todo ese trabajo con una simple línea como esta:



SampleAssistant.prototype.cleanup = function(event) {
this.event_helper.stopListening();
}


La forma de utilizar la rutina es igualmente sencilla:


SampleAssistant.prototype.setup = function() {

/***
el codigo de la creacion del Widget y de la rutina de setup ha
sido eliminado pues no es importante para el ejemplo en sí.
***/

//este handler es la rutina que manejará el evento
this.firstHandler = this.first.bind(this);

//definición del event_helper
//(se reutiliza para todos los eventos de este asistente!)
this.event_helper = new EventListenHelper(this);

//listen: utiliza tres parametros:
//el nombre del widget, la propiedad y el handle de la rutina.
this.event_helper.listen("firstWgt",Mojo.Event.tap, this.firstHandler);

}


Para descargar el código de la libreria y un ejemplo, aquí les dejo este enlace:

EventListenHelper (código en Google Docs)

0 comentarios:

Publicar un comentario