Hi,

I have the following code:


*LearningCurveChartPanel*

 *public* LearningCurveChartPanel(String aId, IModel<AnnotatorState> aModel)

    {

        *super*(aId);

        model = aModel;


        //initially the chart is empty. passing empty model

        chartPanel = *new* ChartPanel(*MID_CHART_CONTAINER*,

                LoadableDetachableModel.*of*(*this*::renderChart));



        chartPanel.setOutputMarkupId(*true*);

        add(chartPanel);

    }

    @OnEvent

    *public* *void* onRenderAnnotations(RenderAnnotationsEvent aEvent)

    {

        LOG.trace("rendered annotation event");


        aEvent.getRequestHandler().add(*this*);

    }

*ChartPanel*


 *public* ChartPanel(String aId, LoadableDetachableModel<LearningCurve>
loadableDetachableModel)

    {

        *super*(aId);



        chartModel = (loadableDetachableModel);


        chart = *new* WebMarkupContainer(*MID_CHART_CONTAINER*);

        chart.setMarkupId("canvas");

        chart.setOutputMarkupId(*true*);

        add(chart);


        chartAjaxBejavior = *new* ChartAjaxBejavior();

        add(chartAjaxBejavior);

    }


Here I am adding ChartPanel in the constructor of LearningCurveChartPanel
and as the LearningCurveChartPanel loads the chart panel is loaded with the
data that is returned by renderChart. I want to do such that the ChartPanel
only renders when I click a button. How do I change the below line to

chartPanel = *new* ChartPanel(*MID_CHART_CONTAINER*,

                LoadableDetachableModel.*of*(*this*::renderChart));

And how do I define such thing in the onClick event?

Reply via email to