You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by nino martinez wael <ni...@gmail.com> on 2010/06/01 11:41:41 UTC

Re: Panel not getting refreshed when posted from ModalWindow.

Hi John

Did you succeed with this? If not please send the mail to the users
list instead.. And we will continue the thread there..

2010/5/29 jammyjohn <jc...@yahoo.com>:
>
> Hi,
>
> Could any one please help me fixing this panel refresh issue.
> first time the panel is refreshed. and that too with (setResponsePage() as
> workaround).
> Afterwards it is not getting refreshed at all. Always retains the previous
> value...
>
> 1.I have an Ajaxbutton, on click of it- opens a ModalWindow.
> 2, In the modal window I am selecting a contact id, and on window call back,
> I am painting the panel with all the contact details (like email, phone,
> fax...)
> 3. These fields are basically set of textfields in panel.
>
> Please note first time when I select a id from my Modalwindow.. my panel is
> refreshed with correct values..
> and also I need to use setResponsePage().. otherwise it does not work..
>
> But, if I try to select a different id for the second timefrom my
> ModalWindow... my panel still has the old values.
>
> Please help.
>
> Thanks for your time.
>
> The code is as below..
>
> //ContactPanel.java
>
> public class ContactPanel extends Panel {
>
>        private static final long serialVersionUID = 1L;
>
>
>        public ContactPanel(String id, IModel model) {
>            super(id);
>            setDefaultModel(new CompoundPropertyModel(model));
>            add(new
> TextField("name").setConvertEmptyInputStringToNull(false));
>            add(new
> TextField("phone").setConvertEmptyInputStringToNull(false));
>            add(new
> TextField("email").setConvertEmptyInputStringToNull(false));
>            add(new
> TextField("fax").setConvertEmptyInputStringToNull(false));
>    }
>
> }
>
> //ContactPanel.html
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:wicket="http://wicket.sourceforge.net/" xml:lang="en"     lang="en">
>        <body>
>                <wicket:panel>
>                        <tr class="detailH15">
>                <th align='right'>Contact:</th>
>                <td  nowrap='nowrap'>
>                  <input type='text' wicket:id="name"  size='15'
> maxlength='40' /> Phone:
>                  <input type='text' wicket:id="phone" size='12'
> maxlength='30'/>
>                </td>
>              </tr>
>             <tr class="detailH15">
>                <th  align='right'>Email:</th>
>                <td nowrap='nowrap'>
>                  <input type='text' wicket:id="email"  size='20'
> maxlength='50'/>
>                  Fax
>                  <input type='text' wicket:id="fax" size='12'
> maxlength='20' />
>                </td>
>              </tr>
>                </wicket:panel>
>        </body>
> </html>
>
>
> //adding panel to a form
>
> Panel contactPanel = new ContactPanel("contactPanel", new
> LoadableDetachableModel(){
>                        @Override
>                        protected Object load() {
>                                return extraChildrenMawbModel.getObject().getContact();
>                        }
>                });
>
>                contactPanel .setOutputMarkupId(true);
>                form.add(contactPanel );
>
>
>
> //adding AJax Button to a form
>
>  final IModel inputModel =new Model();
> final IModel outputModel =new Model();
>
>                 AjaxButton contactLookupBtn = new AjaxButton("contactLookup"){
>                        private static final long serialVersionUID = 1L;
>                        @Override
>                        protected void onSubmit(AjaxRequestTarget target, Form arg1) {
>                                inputModel.setObject("contact");
>                                contactLookup.show(target);
>                        }
>        };
>
> form.add(contactLookupBtn .setDefaultFormProcessing(false));
>
> //adding ModalWindow to the page
>
> final ModalWindow contactLookup;
>                add(contactLookup= new ModalWindow("contactLookupWindow"));
>
>                contactLookup.setPageMapName("modal-1");
>
> //Modalwindow callback code........
> contactLookup.setWindowClosedCallback(new
> ModalWindow.WindowClosedCallback(){
>            public void onClose(AjaxRequestTarget target){
>
>                Object outputModelObj = outputModel.getObject();
>                if (outputModelObj != null) {
>                        final Contact contact =
> contactDao.loadContact((Long)outputModelObj);
>                        if (inputModel.getObject().equals("contact")) {
>
>                  final Panel newContactPanel = new
> ContactPanel("contactPanel", new LoadableDetachableModel() {
>                                                @Override
>                                                protected Object load() {
>                                                        // TODO Auto-generated method stub
>                                                        return extraChildrenMawbModel.getObject().getContact();
>                                                }
>                                        });
>                                        newContactPanel.setOutputMarkupId(true);
>                                        contactPanel.replaceWith(newContactPanel);
>                                        contactPanel = newContactPanel;
>                           target.addComponent(newContactPanel);
>
>                   setResponsePage(getPage())
> target.addComponent(feedback)
> }
>
> //closeButtonCallback
>
>  contactLookup.setCloseButtonCallback(new ModalWindow.CloseButtonCallback(){
>            public boolean onCloseButtonClicked(AjaxRequestTarget target) {
>                target.addComponent(feedback);
>                return true;
>            }
>        });
>
>
> //adding panel to my parent html page...
> My main html page as..
>
> <tr wicket:id="contactPanel"></tr>
>
> //adding lookup window to the page
> <div wicket:id="contactLookupWindow"></div>
>
> Appreciate your help.
> Jamuna
>
>
>
>
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/Panel-not-getting-refreshed-when-posted-from-ModalWindow-tp2235350p2235350.html
> Sent from the Wicket - Dev mailing list archive at Nabble.com.
>

Re: Panel not getting refreshed when posted from ModalWindow.

Posted by jammyjohn <jc...@yahoo.com>.
I have posted this question to Users list.

Thanks
John.
-- 
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Panel-not-getting-refreshed-when-posted-from-ModalWindow-tp2235379p2238838.html
Sent from the Wicket - Dev mailing list archive at Nabble.com.