Comments from: [jsr-314-open] UIComponent.broadcast only propagate events on
Checking the new Behavior api (for implement cc:clientBehavior), I note that the
javadoc of UIComponent.broadcast says this:
"....Broadcast the specified FacesEvent to all registered event listeners who
have expressed an interest in events of this type. Listeners are called in the
order in which they were added.
If the event is an instance of BehaviorEvent and the current component is the
source of the event call BehaviorEvent.getBehavior() to get the Behavior for the
event. If the behavior implements ClientBehavior, call
The wrong line is:
".....If the behavior implements ClientBehavior, call Behavior.broadcast....."
So, if a user try to create a custom Behavior, the method broadcast() will be
useless, and custom behaviors will not catch events. I think it is a bug on the
javadoc, so I'll correct it on myfaces.
Martin Marinschek says:
just so that I get you right: you are saying that broadcast should be
called in any case, not only if the behaviour is a ClientBehavior?
Leonardo Uribe says:
Yes, the Behavior interface has only one method: broadcast(). It does not have
sense to put a method on a base class that only will be called for an specific
child class (in this case ClientBehavior). I think the intention of the
programmer here is call it always.