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