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]