Estoy trabajando en el desarrollo de un software simple de gráficos que debe implementarse tanto en swing como en gwt. En el lado de gwt, voy a usar gwt-g2d para el lienzo. Esperaba usar un eventbus en ambas implementaciones para simplificar parte del software.¿Cómo se usa SimpleEventBus o EventBus de GWT?
Mi opinión es que debe ser algo como esto:
- Instantiate EventBus
- Instantiate Padres Widget, hundir los eventos que desea para el EventBus (al pasar el ratón o RPC de devolución de llamada, por ejemplo)
- Establezca EventBus para escuchar eventos del Widget principal.
- Crear instancias de widgets secundarios, ¿quién debe registrar con EventBus los oyentes que tiene? (¿Necesitan registrar eventos que podrían desencadenar?)
- Cuando EventBus recibe un evento, debe tomar una decisión sobre el evento y luego actuar en esa decisión, ya sea que eso signifique ignorarlo, cambiar el tipo de evento o simplemente retransmitirlo a todos los widgets secundarios aplicables.
¿Es esto así en general, cómo debería funcionar? SimpleEventBus todavía es algo nuevo, y no puedo encontrar mucho en la web sobre cómo usarlo realmente.
Pensé que parte del encanto de esto era que facilitaba los casos de prueba automatizados usando la inyección de eventos de IU. De todos modos, la razón por la que intenté hacer esto fue porque un lienzo podría tener 4 regiones de gráficos, y esas regiones podrían tener 4 objetos gráficos colocados el uno sobre el otro. Si hago clic en un objeto de gráfico, necesito ejecutar un poco de lógica para ver cuál fue seleccionado, porque un punto puede superponerse. Mis eventos personalizados iban a ser cosas como cambiar el tamaño, nuevos datos, nueva ventana de datos, nueva escala, etc. ... – Brian
Estaba viendo EventBus a través de los ojos del MVP sugerido por los desarrolladores de GWT. Lo que hacen para probar la interfaz de usuario es resumirlo en vistas que pueden intercambiarse por dummies cuando se prueban. Su caso es algo diferente ya que probablemente tendrá un EventBus por lienzo que gestiona todos los eventos de lienzo. Todavía sugiero solo disparar tus propios eventos (cambiar el tamaño, rotar ...) que afectarían a muchos objetivos. –