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 > > >