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

Reply via email to