There is one more thing regarding the same code. 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?

Best,
Sibgha

On Sun, Apr 28, 2019 at 9:29 PM Sibgha Nazir <sibgha...@gmail.com> wrote:

> Hi,
>
> This question is related to LoadableDetachable Model.
>
> I have a wicket panel, 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*);
>
>     }
>
>
> which is rendering a ChartPanel. The ChartPanel is like this
>
>  *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);
>
>     }
>
>
> The chartModel has the right data and it renders correctly with the data
> that is fed to it from LearningCurveChartPanel.
>
> But when the onRenderAnnotation event of the LearningCurveChartPanel
> triggers what I am trying to do is to update the (re-render) the Chart
> Panel inside it. It does re-render the chart panel but the model stays the
> same. I want to implement it such that the model of the ChartPanel updates
> and when it re-renders it as the latest data when the onRenderAnnotation
> event was triggered.
>
> Please guide me in the right direction.
>
> Best,
> Sibgha
>
>
>
>

Reply via email to