next up previous
Next: Arquitectura Up: Interacción Previous: Interacción

El modelo de eventos

Anteriormente hablamos de la importancia actual de las aplicaciones dirigidas por eventos. En consecuencia no es extraño que como de hecho sucede, existan extensas y exhaustivas aproximaciones propuestas para modelar el problema. Nuestro equipo investigó el estado del arte en el tema y optó por el modelo de delegación usado entre otros por las últimas versiones del lenguaje Java${}^{TM}$ como modelo general de eventos.

El modelo de delegación presupone la existencia de tres tipos de objetos:

La jerarquía básica de eventos tendría la siguiente forma.

Figure 6: Los Eventos
\includegraphics[scale=0.5]{Events.eps}

Los tres son muy claros. En primer lugar el Container que no es más que el escenario donde están montados los actores, puede ser movido o cambiarse su tamaño. Un evento Mouse debe informar el estado del mouse en el instante en que se dispara el evento. Un evento Keyboard que se dispara si una tecla se oprimió o soltó y debe capturar cual fue.

>Cuales son nuestras fuentes de eventos? Entendemos que podría ser cualquier actor o la escena misma. Surge en consecuencia la necesidad de diferenciar los distintos elementos de una imagen ya que los requerimientos de interacción de los actores dentro de una misma escena pueden ser muy diversos. En resumen se deben poder individualizar los actores lo que deriva en la existencia de la clase actor.

Figure 7: Las Fuentes de Eventos
\includegraphics[scale=0.5]{Sources.eps}

La figura anterior muestra la jerarquía de estas fuentes de eventos. Un objeto bicotiInteractionSource puede ser por lo tanto: la escena (Container) o un actor particular (bicotiActor). El container puede disparar cualquier tipo de evento de los previstos, mientras que el actor solo dispara eventos del mouse. El actor debe contener la información que le permita al visualizador presentarlo dentro de la escena (una vez fijada su posición) independientemente de la biblioteca gráfica.

Figure 8: Los Observadores
\includegraphics[scale=0.5]{Listener.eps}

El último de los componentes involucrados en el modelo de delegación es el observador(Listener) responsable de procesar los eventos disparados por las fuentes ante las que está acreditado.

El modelo de delegación provee un mecanismo: flexible, extensible, fácil de entender, que permite la creación de código de manejo de eventos robusto y poco propenso a error. Un análisis extenso de las virtudes del modelo contrastadas con modelos anteriores se encuentra en [Inc99] y más en detalle en [Ham97].


next up previous
Next: Arquitectura Up: Interacción Previous: Interacción
Claudio Risso 2001-06-02