Hi Maxim,

It seems that the dialog widget is not correctly *destroyed*, therefore the
new dialog that come in replacement cannot be re-wired.

You can put a breakpoint in JQueryDestroyListener#onBeforeRespond to see
whether the dialog is taken into account in the destroy process. (I guess
not, because only directly targeted component are referenced here IIRC)
You can also look in the ajax-debug-window if you see the
jQuery('#mydialog').destroy() statement in the "priority-evaluate" section
(I guess not, too)

Otherwise, you have other workarounds:
1/ removing the dialog from the tab-panel :)
2/ calling mydialog#destroy *before* the ajax call (tough an
AjaxCallListener, see #updateAjaxAttributes)
3/ calling mydialog#destroy in the response, trough
handler.prependJavaScript(JQueryUtils.trycatch("jQuery('#mydialog').destroy()"));
- I would opt for this one. you can look at [1]

Hope this helps,
Sebastien.

[1]
https://github.com/sebfz1/wicket-jquery-ui/blob/master/wicket-jquery-ui/src/main/java/com/googlecode/wicket/jquery/ui/JQueryUIBehavior.java#L136



On Tue, Jan 17, 2017 at 11:50 AM, Maxim Solodovnik <solomax...@gmail.com>
wrote:

> Hello Sebastien,
>
> I'm using jquery TabbedPanel.
> One of the panels contains jquery dialog with simple form (text field and
> one of the dialog buttons works as submit)
> I'm now getting weird component has been removed from page errors
> It seems
>
> tabs.reload(handler);
>
> re-creates the panel, but doesn't re-create dialog :(
> (dialog seems to be added to the <body> as hidden div, and not being
> updated)
>
> Is it possible?
> Are there any workarounds except removing dialog from the tab-panel?
>
>
>
> On Sun, Jan 15, 2017 at 12:30 AM, Sebastien <seb...@gmail.com> wrote:
>
> > Transferring to users@, I did not realized I reply to you only Maxim...
> >
> >
> > ---------- Forwarded message ----------
> > From: Maxim Solodovnik <solomax...@gmail.com>
> > Date: Sat, Jan 14, 2017 at 5:13 PM
> > Subject: Re: Reload TabbedPanel preserving active tab
> > To: Sebastien <seb...@gmail.com>
> >
> >
> > Thanks a lot Sebastien!
> > Works as expected :)
> >
> > On Sat, Jan 14, 2017 at 8:31 PM, Sebastien <seb...@gmail.com> wrote:
> >
> > > Oops, forgot something in the copy paste:
> > >
> > >         this.tabPanel = new TabbedPanel("tabs", this.newTabModel()) {
> > >>
> > >>             private IModel<Integer> indexModel = Model.of(-1);
> > >>
> > >>             @Override
> > >>             protected void onConfigure()
> > >>             {
> > >>                 super.onConfigure();
> > >>
> > >>                 int index = indexModel.getObject();
> > >>
> > >>                 if (index > -1) // TODO eventually also check if the
> > >> corresponding tab is visible
> > >>                 {
> > >>                     this.setActiveTab(index);
> > >>                 }
> > >>             }
> > >>
> > >>             public void onActivate(AjaxRequestTarget target, int
> index,
> > >> ITab tab)
> > >>             {
> > >>                 indexModel.setObject(index);
> > >>             }
> > >>         }
> > >>
> > >
> > >
> >
> >
> >
> > --
> > WBR
> > Maxim aka solomax
> >
>
>
>
> --
> WBR
> Maxim aka solomax
>

Reply via email to