Hi Martin

2010/5/4 Martin Marinschek <mmarinschek@apache.org>
Hi Leonardo,

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?


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.

best regards,

Leonardo Uribe
 
(sorry if this question doesn't make a lot of sense; I am not too deep
in the behavior stuff right now ;)

best regards,

Martin

On 5/5/10, Leonardo Uribe <lu4242@gmail.com> wrote:
> Hi
>
> 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.
>
> regards,
>
> Leonardo Uribe
>


--

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces