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?