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]