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