myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "milan durovic (Commented) (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (TOMAHAWK-1610) schedule not reacting to mouseListener setting
Date Sun, 05 Feb 2012 07:45:52 GMT

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

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

me again. I managed to get mouse clicks handled, but the bug is still there and needs addressing.
I'll provide the details of what I did with a hope it may give a hint to the maintainer where
to fix the problem.

First of all, documentation needs to be updated to reflect the fact that no mouse events will
be handled UNLESS schedule is editable ("readonly" set to "false" AND "submitOnClick" is set
to "true"). I don't quite understand what the meaning of "readonly" is, ie. how its setting
affects component behaviour.

Anyway, in addition to setting those flags, I decided to set mouseListenerExpression in HtmlSchedule
myself. So, I defined "binding" attribute on schedule component like:

<t:schedule value="#{allEvents.model}" id="myEvents"
  binding="#{allEvents.component}"
  rendered="true" readonly="false"
...

and then in the backing bean code:

public void setComponent( HtmlSchedule c )
{
	Class<?>[] params = { ScheduleMouseEvent.class };
	component = c;
	// try to hook mouse listener here
	c.setMouseListenerExpression( ExpressionFactory.newInstance().createMethodExpression( FacesContext.getCurrentInstance().getELContext(),
"#{allEvents.clicked}", null, params ) );
}

after that, it mouse clicks handling worked like a charm. I suppose proper setting of mouseListenerExpression
somewhere in tag handler for schedule component has not been done properly. I don't know the
details of MyFaces architecture, but by looking at the code I have impression that the maintainer
tried to keep backward compatibility with the old schedule component's attribute "mouseListener",
but somewhere it failed to create the correct setting.

Please let me know when this is fixed so that I can remove this temporary fix.

By the way, I think that handling of mouse events should be allowed regardless of "readonly"
setting. What if I don't want to edit the schedule, but I do want to redirect the user to
a page with more details that is related to a particular entry clicked? It would be very useful.

Thanks,
Milan Durovic
                
> 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

        

Mime
View raw message