[ 
https://issues.apache.org/jira/browse/MYFACES-2455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leonardo Uribe resolved MYFACES-2455.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.0-alpha-2

> ClientBehaviorHolder interface should be tracked by myfaces-builder-plugin 
> metadata
> -----------------------------------------------------------------------------------
>
>                 Key: MYFACES-2455
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2455
>             Project: MyFaces Core
>          Issue Type: Task
>          Components: JSR-314
>    Affects Versions: 2.0.0-alpha
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.0-alpha-2
>
>
> Actually we use something like this:
> @JSFComponent
> (name = "h:commandButton",
> clazz = "javax.faces.component.html.HtmlCommandButton",template=true,
> tagClass = "org.apache.myfaces.taglib.html.HtmlCommandButtonTag",
> defaultRendererType = "javax.faces.Button",
> implementz = "javax.faces.component.behavior.ClientBehaviorHolder",
> defaultEventName = "action"
> )
> Look the part that says implementz. In this way we notice if the component is 
> implementing ClientBehaviorHolder interface and the method:
> java.util.Collection<String> getEventNames()
> is override properly in a similar way saveState and restoreState methods are 
> generated in 1.2 or earlier. 
> Note that in myfaces core we don't have a hierarchy of components that 
> implements ClientBehaviorHolder, so we have to deal in this method properly. 
> The typical case looks like this:
>     static private final java.util.Collection<String> CLIENT_EVENTS_LIST = 
>         java.util.Collections.unmodifiableCollection(
>             java.util.Arrays.asList(
>              "change"
>             , "select"
>             , "click"
>             , "dblclick"
>             , "keydown"
>             , "keypress"
>             , "keyup"
>             , "mousedown"
>             , "mousemove"
>             , "mouseout"
>             , "mouseover"
>             , "mouseup"
>             , "blur"
>             , "focus"
>             , "action"
>         ));
>     public java.util.Collection<String> getEventNames()
>     {
>         return CLIENT_EVENTS_LIST;
>     }
> If the child component adds one behavior, a new Collection<String> should be 
> generated and the method should be override again.
> There is another problem related, the method:
> public String getDefaultEventName()
> is override if defaultEventName is set.
> In myfaces-builder-plugin we also have a small bug (or todo) with 
> defaultEventName. This attribute is merged for all child components, so in 
> the velocity template that generates component classes, this method is 
> override many times as "levels" in the hierarchy from the component that 
> defines this method. We have to keep track if the current component define 
> this property or not.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to