Hi,

I tried doing the following

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

    {

        *super*(aId*,**loadableDetachableModel*);



        chartModel = (loadableDetachableModel);


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

        chart.setMarkupId("canvas");

        chart.setOutputMarkupId(*true*);

        add(chart);


        chartAjaxBejavior = *new* ChartAjaxBejavior();

        add(chartAjaxBejavior);

    }

It still doesn't update the ChartPanel with the new model when
onRenderAnnotations triggers. Do I have to explicitly call detach()?



On Mon, Apr 29, 2019 at 7:49 AM Sven Meier <s...@meiers.net> wrote:

>
>
> Hi,
>
>
>
> your chartPanel should pass the chartModel to the super constructor. The
> panel takes care that the model is detached after the request.
>
>
>
> If you just hold chartModel as a member variable, no one will call
> detach() on it
>
>
>
> Have fun
>
> Sven
>
>
>
>
>
>
>
>
>
> >
> > On 28.04.2019 at 21:29,  <Sibgha Nazir>  wrote:
> >
> >
> >  Hi, This question is related to LoadableDetachable Model. I have a
> wicket panel, LearningCurveChartPanel. *public*
> LearningCurveChartPanel(String aId, IModel 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 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