myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "milan durovic (Commented) (JIRA)" <>
Subject [jira] [Commented] (TOMAHAWK-1610) schedule not reacting to mouseListener setting
Date Sun, 05 Feb 2012 11:19:53 GMT


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() );

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()

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:
>             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

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message