Andrew,

Rather than patching TrinidadComponentHandler, the better idea is to either modify CoreChart (to implement getChartDrillDownListeners()) or create a separate handler for the chart, where createMetaRuleset() would be overridden. Once you file a jira issue, we will try to provide a fix as soon as possible.

Max

On 7/26/2011 4:14 AM, Kokavecz András wrote:
Hi Max,

Thanks for your quick reply!
I found this "protected MetaRuleset createMetaRuleset(Class type)" method in the trinidad-impl.jar TrinidadComponentHandler class.
This class should be patched?

What is your standard way for doing this?
I file this issue in JIRA and wait.
When and in which release this supposed to appear?

Thanks,
Andrew Kokavecz
Budapest, Hungary
Nextent Informatics



2011/7/25 Max Starets <max.star...@oracle.com <mailto:max.star...@oracle.com>>

    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





--
Kokavecz András
Nextent Informatika Zrt.
1134 Budapest Váci út 45.
Mobil: +36 30 584-0419

Reply via email to