Directory

Blackboard - Vaadin Add-on Directory

A generic blackboard system for listening to and firing events. Blackboard - Vaadin Add-on Directory
Sometimes, having a deep component hierarchy poses a problem, when you need to inform a component high up in the tree that something happened deep down below. You normally have one of two choices - either pass the listener all the way down the hierarchy, leading to more coupled code, or let each component in between be a listener/notifier, passing the event all the way back up. With the Blackboard, you can register any listener to listen for any event, and when that event is fired, all the listeners for that event are triggered. This keeps your components clean and rid of unnecessary boilerplate code. Versions 1.1.0 and 1.2.0 have a dependency to Google Collections.
Discussion Forum
Google Collections
Wiki Article / Manual
Source Code & Example Application

Blackboard version 1.0.1
null

Blackboard version 1.1.1
A class now can implement many Listeners

Blackboard version 1.1.2
Changed weak values to soft values. Probably consumes more memory, but doesn't lose listeners instead.

Blackboard version 1.2.0
Logging added

Blackboard version 2.0.0
- API is incompatible with eariler releases - Notifier is removed completely - com.github.wolfie.blackboard.Event is now an interface - Blackboard.register() now accepts only interface-Listeners - The example application is cleaned up - Dependency for Google Collections is removed

Blackboard version 2.0.1
Registering an abstract Event is disallowed.

Blackboard version 2.1.0
Added support for automatically register event/listener pairs

Blackboard version 2.1.1
Added some heuristics to determining a listener method, not strictly requiring an annotation.

Blackboard version 2.2.0
it is now allowed to register one listener to handle several events