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

Reply via email to