SmartGWT – Eventos personalizados

agosto 19, 2009

En realidad los eventos no tienen que ver con smartgwt sino con java. Pero como el primer evento personalizado que necesite fue en una aplicacion que hace uso de smartgwt, decidi dejar el titulo asi.
Bueno para crear un evento personalizado necesitas realizar 4 cosas:

  1. Crear una interfaz que herede de java.util.EventListener con la firma de los eventos que quieres disparar
  2. Crear un arreglo con elementos de esta interfaz (listeners) y metodos para agregar o remover dichos elementos
  3. Crear un metodo por cada evento que manejemos en la interfaz que al invocarlo recorra el arreglo de listeners e invoque el metodo adecuado. Este metodo nos permitira “disparar” nuestro evento desde cualquier parte en nuestra clase.
  4. Disparar nuestros eventos.

Como un ejemplo vale mas que mil palabras, aqui dejo uno sencillo.

public class Car {
//PASO 1
    public static interface CarListener extends EventListener{
        void onCarStarted(String status);
        void onCarStopped(Integer km,String status);
    }
//PASO 2
    private List<CarListener> listeners=new ArrayList<CarListener>();
    public void addCarListener(CarListener listener){
        listeners.add(listener);
    }
    public void removeCarListener(CarListener listener){
        listeners.remove(listener);
    }
//PASO 3
    protected void onCarStarted(String status){
        for(CarListener listener:listeners)
            listener.onCarStarted(status);
    }
    protected void onCarStopped(Integer km,String status){
        for(CarListener listener:listeners)
            listener.onCarStopped(km,status);
    }   
//PASO 4
    public void start(){
        onCarStarted("started");
        ...
    }
    public void stop(){
        onCarStopped(34,"stopped");
        ...
    }
}

Espero que te sea de utilidad, byte!
Fuente: GWT Custom Event – Tutorial

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: