attach it to a jira ticket. -igor
On Fri, May 6, 2011 at 10:02 AM, Scott Reed <sr...@avacoda.com> wrote: > I attached a quickstart here but I'm not sure attachments work on this list. > Let me know how to send the file if that fails. > Scott > > On 5/6/2011 12:17 PM, Igor Vaynberg wrote: >> >> having a working quickstart project would help. >> >> -igor >> >> On Fri, May 6, 2011 at 9:13 AM, Scott Reed<sr...@avacoda.com> wrote: >>> >>> I was not able to get the custom onpagebeforeshow event handling to work. >>> I have fallen back to using the standard onclick event handling. I see >>> the >>> update code being executed in the ajax event handler but the changes do >>> not >>> show up on the subpage. >>> >>> Below is the core of my most recent approach. The RefreshingView is the >>> element I am trying to update on the subpage. detailSubpage is a >>> WebMarkupContainer for the subpage that contains the RefreshingView >>> table. >>> If it would help I can supply all the code (total 200 lines). >>> >>> <!-- Detail page used when subpage item is selected from the subpages >>> list >>> --> >>> <div data-role='page' wicket:id="detailSubpage" id="detailSubpage"> >>> <div data-role='content' wicket:id="detailContent" >>> style='height: 100%'> >>> <table wicket:id="detailTable" id="detailTable"> >>> <tr> >>> <td>Name</td> >>> <td> </td> >>> <td wicket:id="name" style='font-weight: bold;'>...</td> >>> </tr> >>> <tr> >>> <td>Status</td> >>> <td> </td> >>> <td wicket:id="status" style='font-weight: bold;'>...</td> >>> </tr> >>> </table> >>> </div> >>> </div> >>> >>> private class FooList extends RefreshingView<Foo> >>> { >>> FooDetailContainer detailSubpage; >>> >>> public FooList( String id, FooListModel model, FooDetailContainer >>> detailSubpage ) >>> { >>> super( id, model ); >>> this.detailSubpage = detailSubpage; >>> } >>> >>> @Override >>> protected void populateItem( Item<Foo> item ) >>> { >>> final Foo foo = item.getModelObject(); >>> addFooItem( item, foo ); >>> } >>> >>> private void addFooItem( Item<Foo> item, final Foo foo ) >>> { >>> Label fooNameLabel = new Label( "subpageName", foo.getName()); >>> item.add( fooNameLabel ); >>> item.add( new FooClickBehavior( "onclick", foo )); >>> } >>> >>> /** >>> * records most recently selected foo >>> */ >>> private class FooClickBehavior extends AjaxEventBehavior >>> { >>> Foo foo; >>> public FooClickBehavior( String event, Foo foo ) >>> { >>> super( event ); >>> this.foo = foo; >>> } >>> public void onEvent( AjaxRequestTarget target ) >>> { >>> //populate foo detail page >>> detailSubpage.getNameLabel().setDefaultModelObject( foo.getName() >>> ); >>> detailSubpage.getStatusLabel().setDefaultModelObject( >>> foo.getStatus() >>> ); >>> detailSubpage.getStatusLabel().add( new AttributeModifier( >>> "style", >>> true, new Model( "font-weight:bold;" ))); >>> >>> // commented due to error: >>> // Wicket.Ajax.Call.processEvaluation: Exception evaluating javascript: >>> cannot call methods on listview prior to initialization; attempted to >>> call >>> method 'refresh' >>> // // refresh detail page table >>> // String js = "$('#detailTable').listview('refresh')"; >>> // target.appendJavascript( js ); >>> } >>> } >>> >>> @Override >>> protected Iterator<IModel<Foo>> getItemModels() >>> { >>> return new FooListModel().load().iterator(); >>> } >>> } >>> >>> >>> On 5/4/2011 7:20 PM, Igor Vaynberg wrote: >>>> >>>> something like this may help you. >>>> >>>> AbstractDefaultAjaxBehavior b=new AbstractDefaultAjaxBehavior() { >>>> respond(target) { // handle ajax callback } >>>> }; >>>> >>>> div.add(b); >>>> String script=b.getCallbackScript(); >>>> >>>> what you have in the script variable is a javascript fragment which >>>> will invoke the server-side callback. you can now write that out into >>>> the head yourself using IHeaderContributor and wire it into jquery's >>>> callback. >>>> >>>> -igor >>>> >>>> >>>> On Wed, May 4, 2011 at 3:56 PM, Scott Reed<sr...@avacoda.com> wrote: >>>>> >>>>> I tried doing this using the onclick event of the list item but there >>>>> were a >>>>> couple of problems. The biggest problem is that there may be hundreds >>>>> of >>>>> items in the list and inserting an ajax call in each item increases the >>>>> page >>>>> size too much for a mobile app. Another problem is that the id of the >>>>> "detail page" component is modified by Wicket when I add ajax behaviors >>>>> to >>>>> it so the href in the item link is incorrect. I figured out how to >>>>> handle >>>>> this by changing the href using getMarkupId() but that kind of >>>>> maintenance >>>>> nightmare hacking turned me off to the whole approach. Finally I >>>>> couldn't >>>>> figure out how to get it to go to the detail page after I updated it - >>>>> it >>>>> just went back to the home page. >>>>> >>>>> I tried adding an AjaxEventBehavior to the target div but the >>>>> server-side >>>>> event handler is never called. I don't understand how a custom event >>>>> can >>>>> be >>>>> caught by the ajax engine unless there is js to tell it to do so and I >>>>> don't >>>>> see that Wicket has added any js in the page source to do that. If I >>>>> knew >>>>> how to tell the ajax engine to look for the custom javascript event >>>>> then >>>>> that approach would probably work. >>>>> >>>>> On 5/4/2011 6:35 PM, Igor Vaynberg wrote: >>>>>> >>>>>> can you not do it the other way around? have the link that goes to >>>>>> detail be a wicket ajax link which then repaints the content div and >>>>>> tells jquery that it did so? >>>>>> >>>>>> otherwise what you can do is add an ajaxeventbehavior for that even to >>>>>> the content div or whatever div receives it, or wire it in directly to >>>>>> window, and repaint the content div inside the behavior's handler. >>>>>> >>>>>> -igor >>>>>> >>>>>> >>>>>> On Wed, May 4, 2011 at 3:27 PM, Scott Reed<sr...@avacoda.com> >>>>>> wrote: >>>>>>> >>>>>>> I want to update the models for the component's children and refresh >>>>>>> it. >>>>>>> >>>>>>> This app has a list on the "home page". Selecting one of the list >>>>>>> items >>>>>>> causes a transition to the "detail page". During that transition the >>>>>>> pagebeforeshow event fires and then the page is displayed. When the >>>>>>> pagebeforeshow event fires, I want to update the page content >>>>>>> elements >>>>>>> with >>>>>>> details of the selected item. (As you may know, in jQuery Mobile >>>>>>> these >>>>>>> "pages" are divs with data-roll="page".) >>>>>>> >>>>>>> On 5/4/2011 6:13 PM, Igor Vaynberg wrote: >>>>>>>> >>>>>>>> can you explain a bit more of what you want to happen when this >>>>>>>> javascript event is fired? >>>>>>>> >>>>>>>> -igor >>>>>>>> >>>>>>>> On Wed, May 4, 2011 at 3:05 PM, Scott Reed<sr...@avacoda.com> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Certain jQuery Mobile components can trigger a custom javascript >>>>>>>>> event, >>>>>>>>> "pagebeforeshow", which I want to handle on the server. I am new to >>>>>>>>> this >>>>>>>>> list and to Wicket and have not been able to find any documentation >>>>>>>>> or >>>>>>>>> examples that show how this could be done.|I would appreciate any >>>>>>>>> help >>>>>>>>> in >>>>>>>>> figuring this out. >>>>>>>>> Thanks, >>>>>>>>> Scott >>>>>>>>> | >>>>>>>>> >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>>> >>>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>> >>>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org