[ 
https://issues.apache.org/jira/browse/TOMAHAWK-1610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13200722#comment-13200722
 ] 

milan durovic commented on TOMAHAWK-1610:
-----------------------------------------

One more thing: while testing handling of SCHEDULE_ENTRY_CLICKED type of 
ScheduleMouseEvent listener I noticed another anomaly: the schedule model's 
"selectedEntry" was updated *AFTER* the event handler was invoked. I think this 
should be done BEFORE, so that model state is up to date when the event handler 
is invoked. See this code section:

        case ScheduleMouseEvent.SCHEDULE_ENTRY_CLICKED:
                clickedEntry = model.getSelectedEntry();
                ScheduleEntry realOne = component.getSubmittedEntry();
                log.warn( "Selected component: " + realOne.getTitle() );
            break;

the model.getSelectedEntry() call returns the entry that was selected when the 
PREVIOUS event was handled. The UISchedule component, on the other hand, has 
the correct entry in getSubmittedEntry() method.

I guess the simple fix for this is that the component updates the model's 
selected entry as soon as possible, and definitely BEFORE calling even 
listeners.
                
> 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
>
> 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

        

Reply via email to