Details
Description
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.