Hey Andrew,
The problem is that the Facelets engine does not know it is dealing with
a MethodExpression.
One way to fix it would be to override createMetaRuleset() in the newly
created chart tag along these lines:
protected MetaRuleset createMetaRuleset(Class type)
{
MetaRuleset m = super.createMetaRuleset(type);
m.addRule(new MethodRule("chartDrillDownListener", null, new
Class[]|{ChartDrillDownEvent|.class}));
return m;
}
Another way would be to implement getChartDrillDownListeners() on
CoreChart, so that TrinidadListenersTagRule can add a rule automatically.
Both ways involve making changes to Trinidad code. Could you file a JIRA
issue for this?
Thanks,
Max
On 7/25/2011 7:22 AM, Kokavecz András wrote:
Hi,
I'm trying to user Trinidad charts and I have problems with th
chartDrillDown listener and also with the binding of the chart component to
an UIComponent.
1.)
If I use a JSPX page with jsp:root and f:view tags, so withOUT Facelets it
all works fine...the chartDrillDown fires up.
2.)
If inside ui:composition tags, so WITH facelets the problem is, that the API
tries to look up the chartDrillDownListener as a property not as a
MethodExpression.
This is also the case with bindig the tr:chart element to an UIComponent.
I debugged the class UIXChart, as the event travels throught its
"broadcast(FacesEvent event)" method.
// Deliver to the default ChartDrillDownEvent
if (event instanceof ChartDrillDownEvent) {
broadcastToMethodExpression(event, getChartDrillDownListener());
}
super.broadcast(event);
In case of FACELETS the getChartDrillDownListener() method tries to call
getProperty() for UIXComponentBase and exits with a
PropertyNotFoundException.
Any suggestions?
Thanks in advance...
Andrew Kokavecz