Hi Manfred, See org.apache.wicket.protocol.http.AjaxEnclosureListener for inspiration. You'll need to do something similar - check whether any of the components in the passed Map is a parent of a Grid or Chart and destroy it so it cleans the DOM.
On Tue, Sep 10, 2019 at 6:15 PM Manfred Bergmann <m...@software-by-mabe.com> wrote: > OK, maybe it's better to follow up on this while it hot. > > I'm not entirely certain what to do and where. > I'd assume that when a user clicks elsewhere, which raises an > AjaxRequestTarget I'll have to add a functionality to destroy the > chart/grid > as part of the AjaxRequestTarget. > But since the click can be anywhere, should this listener be part of the > Grid/Chart component? > Can you briefly guide me on what to do? > > > Manfred > > > > Manfred Bergmann wrote > > Hi Martin. > > > > OK, thanks. That looks like a doable solution. > > I'd go for the Listener but I'll probably have to ask some more when I'm > > going to implement it. > > > > > > Manfred > > > > > > > > Martin Grigorov-4 wrote > >> Hi Manfred, > >> > >> The #refresh(PartialPageUpdateHandler) methods are useful if you update > >> the > >> specific component. > >> They do not help if you repaint a parent of such a component. > >> In your case you will need to destroy the component (grid, chart) in > your > >> action callback (e.g. onUpdate(), onClick()). > >> You can do this in your code or with AjaxRequestTarget.Listener. If you > >> do > >> the Listener then you can donate it to Wicket JQuery UI project. > >> > >> On Tue, Sep 10, 2019 at 10:52 AM Manfred Bergmann < > > > >> mb@ > > > >> > > >> wrote: > >> > >>> Hi Sebastian. > >>> > >>> Thanks for the additional explanation. > >>> But I'm not fully sure for how this is supposed to work in my case > given > >>> this structure/hierarchy: > >>> page -> panel(a) -> panel(b) -> grid/chart > >>> > >>> Where panel (a) is replaced. Any instance of panel (b) can have a > >>> grid/chart > >>> but it can also host something else (depends on what is being > >>> displayed). > >>> I understand that when panel (a) is replaced it is garbage collected > and > >>> all > >>> content on it as well in which case a reload for the grid/chart on > >>> panel(b) > >>> won't work? > >>> > >>> > >>> Regards, > >>> Manfred > >>> > >>> > >>> > >>> > >>> Sebastien wrote > >>> > Hi Manfred, > >>> > > >>> > Sorry, my previous answer was incomplete. > >>> > Kendo components do usually have two methods for ajax, #reload and > >>> > #refresh. > >>> > Reload aims to reload the component (ie reattach to the dom) while > >>> refresh > >>> > aim to refresh the data only. > >>> > IIRC, grid and chart are different in the sense that grid does have > >>> its > >>> > datasource aware of the request cycle so it is safe to > reattach/reload > >>> the > >>> > component, the datasource will be destroyed from the dom. That's > >>> > unfortunately not the case of the chart (you can open an issue, I can > >>> try > >>> > to figure out if it's achievable). > >>> > One nice way to refresh the data without having the reload/reattach > >>> the > >>> > component is to use the event bus. Your master page/component will > >>> > send/broadcast a RefreshEvent or RefreshChatEvent that will be > catched > >>> by > >>> > the component hosting the chart (or the chart itself if you have > >>> overriden > >>> > it). Then just call refesh... > >>> > > >>> > Thanks and best regards, > >>> > Sebastien > >>> > > >>> > > >>> > On Mon, Sep 9, 2019, 23:29 Manfred Bergmann < > >>> > >>> > mb@ > >>> > >>> > > wrote: > >>> > > >>> >> Hi Sebastian. > >>> >> > >>> >> OK, but I don't really see how reusing instances of a Kendo Grid > >>> really > >>> >> works in a component based design where the parents of where the > >>> Grids > >>> >> are > >>> >> placed are replaced on the page. > >>> >> > >>> >> In particular we have a three panes border layout, kind of a > >>> >> 'master-detail' > >>> >> plus a tree on the left side. > >>> >> The right most pane is the 'detail' pane where panels are replaced > >>> >> depending > >>> >> on selection on the 'master' pane. Those panels can contain Kendo > >>> Grid > >>> >> but > >>> >> some do not. So I have no other chance of creating new instances of > >>> Kendo > >>> >> Grids (DataTable). > >>> >> So switching through the 'master' selections creates new Kendo > Grids, > >>> or > >>> >> Charts adding up datasources on the DOM root. > >>> >> > >>> >> I don't see how just using Chart/DataTable#refresh really should > >>> work? > >>> >> > >>> >> > >>> >> Manfred > >>> >> > >>> >> > >>> >> > >>> >> Sebastien wrote > >>> >> > Hi Manfred, > >>> >> > > >>> >> > The recommended way to refresh kendo ui components - those bound > to > >>> a > >>> >> > datasource - is to read from the datasource. > >>> >> > > >>> >> > See Chart#refresh, it should solve the problem. > >>> >> > > >>> >> > Thanks and best regards, > >>> >> > Sébastien > >>> >> > >>> >> > >>> >> > >>> >> -- > >>> >> Sent from: > >>> >> > http://apache-wicket.1842946.n4.nabble.com/Users-forum-f1842947.html > >>> >> > >>> >> > --------------------------------------------------------------------- > >>> >> To unsubscribe, e-mail: > >>> > >>> > users-unsubscribe@.apache > >>> > >>> >> For additional commands, e-mail: > >>> > >>> > users-help@.apache > >>> > >>> >> > >>> >> > >>> > >>> > >>> > >>> -- > >>> Sent from: > >>> http://apache-wicket.1842946.n4.nabble.com/Users-forum-f1842947.html > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: > > > >> users-unsubscribe@.apache > > > >>> For additional commands, e-mail: > > > >> users-help@.apache > > > >>> > >>> > > > > > > > > -- > > Sent from: > > http://apache-wicket.1842946.n4.nabble.com/Users-forum-f1842947.html > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > > > users-unsubscribe@.apache > > > For additional commands, e-mail: > > > users-help@.apache > > > > -- > Sent from: > http://apache-wicket.1842946.n4.nabble.com/Users-forum-f1842947.html > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >