You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (Resolved) (JIRA)" <de...@myfaces.apache.org> on 2012/04/18 03:01:21 UTC

[jira] [Resolved] (TOMAHAWK-1610) schedule not reacting to mouseListener setting

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

Leonardo Uribe resolved TOMAHAWK-1610.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.1.12-SNAPSHOT
         Assignee: Leonardo Uribe

Thanks for the details about the issue. It helps to find what's going on.

The bug is inside org.apache.myfaces.custom.facelets.tag.MethodRule. The original implementation in facelets 1.1.1.14 deals with MethodBinding, but when the code was moved into myfaces, all JSF 1.1 expression language code was removed, so the implementation inside tomahawk is incomplete, and needs to include the old code that deals with JSF 1.1 expression language.

ScheduleTagHandler code is ok. But we can do it better in that part, doing some small changes over MethodRule and invoking directly to setMouseListenerExpression and skipping some wrappers.

I checked the code in the event handling and it is ok. Unfortunately, the check for readOnly/disabled before publish events in AbstractScheduleRenderer.decode() is intentional, so it is not possible to change it by backward compatibility.

Checking the code the event is correctly propagated, and follows JSF spec about event processing (it broadcast events and call listeners on INVOKE_APPLICACION_PHASE), so that part is also ok.
                
> schedule not reacting to mouseListener setting
> ----------------------------------------------
>
>                 Key: TOMAHAWK-1610
>                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1610
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>          Components: Schedule
>    Affects Versions: 1.1.11
>         Environment: myfaces 2.0, myfaces 2.1, tomcat 7.x, facelets, any OS
>            Reporter: milan durovic
>            Assignee: Leonardo Uribe
>             Fix For: 1.1.12-SNAPSHOT
>
>
> I'm trying to handle mouse click events over schedule entries in t:schedule
> Tomahawk component. In the page definition I have:
> <t:schedule value="#{allEvents.model}" id="myEvents" rendered="true" readonly="false" theme="#{allEvents.theme}" tooltip="true" mouseListener="#{allEvents.clicked}" entryRenderer="#{allEvents.renderer}" headerDateFormat="#{allEvents.headerDateFormat}" expandToFitEntries="true" splitWeekend="false" />
> and the method is defined as:
> public String clicked( ScheduleMouseEvent event ) { switch( event.getEventType() ) ...
> Originally, method "clicked" was void, but I changed this to returning String,
> after looking at the source code of the ScheduleTagHandler class,
> "createMetaRuleset" method.
> However, in either case, it doesn't work. "clicked" method never gets invoked,
> and in logs I can't find anything that would indicate if something was wrong.
> I was using MyFaces JSF 2.0, then upgraded to JSF 2.1 - no change. t:schedule
> component works in every aspect (i.e. displaying entries, asking for new entries
> when the model changes selectedDate etc etc) EXCEPT for capturing mouse clicks.
> This problem is present regardless of whether the component is used in facelets environment or not.
> I started a thread with this question on myfaces users mailing list. It seems that org.apache.myfaces.custom.schedule.ScheduleTagHandler defines "mouseListener" attribute handling, but it seems that in component definition for org.apache.myfaces.UISchedule class "mouseListener" is replaced with "mouseListenerExpression"
> I'm not an expert in low level component wiring, but there seems to be some discrepancy there.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira