It depends how you create your modal window. If it contains a page (iframe) then passing a component belonging to a main page to a modal window is not a solution. At least it did not work for me. The work around was to either open a modal window as a panel and pass the component as a constructor argrument (it works fine) or to update your component in WindowClosedCallback as you do :)
On Tue, Jul 29, 2008 at 8:24 PM, steviezz <[EMAIL PROTECTED]> wrote: > > Component I want to update is in a Panel contained in the main page. So, no > access to this component from the cancel button on the ModalWindow. > > Should I be passing the Panel to the ModalWindow in the constructor so I can > access its components? > > > Steve > > > > > > > damnitjim wrote: >> >> Have you tried adding target.addComponent() call in the CancelButton >> submit >> ? >> >> On Mon, Jul 28, 2008 at 4:19 PM, steve222 <[EMAIL PROTECTED]> >> wrote: >> >>> >>> Hi. Using Wicket 1.3.4. >>> >>> I have a main page with a panel. Page contains a form for editing a main >>> record. Panel contains a DataView containing a list of related sub >>> records. >>> In the java code for the pabel, create a ModalWindow and pop this for >>> adding >>> more sub-records. Uses AJAX. >>> >>> Got this working OK similar to: >>> >>> >>> Main page code: >>> >>> >>> public MainRecordEdit(PageParameters p) { >>> >>> Integer id = p.getInt("mainRecord"); >>> >>> // uses application scope Spring bean to get record from >>> database >>> final MyRecord myRecord = getRecordManager().findById(id); >>> >>> ... >>> // stuff form main record CRUD on main page >>> ... >>> >>> >>> // add the panel for the sub records >>> add(new MyListingPanel("myListingPanel", myRecord)); >>> >>> } >>> >>> >>> >>> Panel code for sub records: >>> >>> public MyListingPanel(String id, final MyRecord myRecord) { >>> >>> super(id); >>> >>> Collection mySubs = myRecord.getSubRecords(); >>> >>> DataView dataView = new DataView("dataView", new >>> ListDataProvider(new >>> ArrayList(mySubs))) { >>> >>> public void populateItem(final Item item) { >>> final MySub ms = (MyRecord) item.getModelObject(); >>> item.add(new Label("id", ms.getId())); >>> ... >>> } >>> }; >>> >>> final WebMarkupContainer listContainer = new >>> WebMarkupContainer("theContainer"); >>> >>> listContainer.setOutputMarkupId(true); >>> listContainer.add(dataView); >>> >>> ... >>> >>> payawayWindow.setWindowClosedCallback(new >>> ModalWindow.WindowClosedCallback() { >>> public void onClose(AjaxRequestTarget target) { >>> >>> // not sure what to put here to refresh the list >>> in >>> dataview >>> >>> target.addComponent(listContainer); >>> } >>> }); >>> >>> >>> final ModalWindow modalWindow = new ModalWindow("modalWindow"); >>> modalWindow.setOutputMarkupId(true); >>> add(modalWindow); >>> >>> add(new AjaxLink("modalLink") { >>> public void onClick(AjaxRequestTarget target) { >>> modalWindowshow(target); >>> } >>> }); >>> >>> >>> In the jave code for the Modal window - also a Panel - I do normal CRUD >>> stuff via AJAX with feedback going into a FeedbackPanel on the modal >>> window >>> panel when I save (or hit validation errors). No problems here - my AJAX >>> updates work OK. >>> >>> I close the popup panel using a button: >>> >>> private void addCancelButton(Form form, final ModalWindow >>> window) { >>> >>> AjaxFallbackButton cancel = new >>> AjaxFallbackButton("cancelbutton", form) >>> { >>> >>> @Override >>> protected void onSubmit(AjaxRequestTarget >>> target, Form form) { >>> >>> // not sure if I need to do >>> anything >>> here to make the new >>> // sub record appear on main page >>> when I close this window >>> >>> info("Cancel was pressed!"); >>> window.close(target); >>> } >>> }; >>> >>> cancel.setDefaultFormProcessing(false); >>> form.add(cancel); >>> } >>> >>> >>> Window closes. Main page does not show new sub record in the DataView on >>> the main Panel. >>> >>> Page refresh reloads the list OK. >>> >>> Thanks. >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Modal-window---update-main-page-on-close-tp18701883p18701883.html >>> Sent from the Wicket - User mailing list archive at Nabble.com. >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >> >> > > -- > View this message in context: > http://www.nabble.com/Modal-window---update-main-page-on-close-tp18701883p18718430.html > Sent from the Wicket - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]