[
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