New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UIComponent.broadcast only propagate events on ClientBehavior instances #798
Comments
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
|
Comments from: [jsr-314-open] UIComponent.broadcast only propagate events on
ClientBehavior instances
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
Behavior.broadcast(javax.faces.event.BehaviorEvent)}....."
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.
Environment
Operating System: All
Platform: All
Affected Versions
[2.0]
The text was updated successfully, but these errors were encountered: