Hi David, Are you putting this delegate in its own class?
David On 2010-10-11, at 2:13 PM, David Avendasora wrote: > > On Oct 11, 2010, at 4:58 PM, David Avendasora wrote: > >> >> On Oct 11, 2010, at 4:48 PM, Ramsey Gurley wrote: >> >>> >>> On Oct 11, 2010, at 4:28 PM, David Avendasora wrote: >>> >>>> Hey Ramsey, >>>> >>>> I'm using the branch delegate in other places where the user is given a >>>> choice of what the next page should be, but I thought that since I'm >>>> figuring it out on-the-fly during the request that nextPageDelegate was >>>> the way to go. I've revised my NPD and here's what it looks like now: >>>> >>>> public WOComponent nextPage(WOComponent sender) { >>>> WOComponent nextPage; >>>> if (((ERD2WQueryPage) sender).queryDataSource() >>>> .fetchObjects() >>>> .count() == 1) { >>>> InspectPageInterface ipi = >>>> D2W.factory().inspectPageForEntityNamed(Student.ENTITY_NAME, >>>> sender.session()); >>>> ((ERD2WInspectPage) ipi).setObject((Student) ((ERD2WQueryPage) >>>> sender).queryDataSource().fetchObjects().lastObject()); >>> >>> You may want to consider getting your object first, then using >>> object.entityName() in your factory method to make this more generally >>> reusable. >> >> See, now that's just genius. This can be a delegate that works for any EO, >> not just Student. Brilliant! > > One rule: > > 100 : pageConfiguration like 'Query*' => nextPageDelegate = > com.my.application.delegates.QueryToListOrInspectNextPageDelegate > [er.directtoweb.ERDDelayedObjectCreationAssignment] > > Applies this logic to all searches, for any Entity. > > D2W is awesome! > > Dave > > >> >>>> nextPage = (WOComponent) ipi; >>>> } else { >>>> nextPage = ((ERD2WQueryPage) sender).nextPage(); >>> >>> Does that last line work? I would have thought the logic in your original >>> would be required. >> >> Yep! Works great. :-) When I wrote it I was worried that it would end up in >> an endless loop with sender.nextPage() simply calling this delegate, but it >> works perfectly. Maybe I'm just lucky. >> >> Dave >> >>> >>> Ramsey >>> >>>> } >>>> return nextPage; >>>> } >>>> >>>> >>>> Dave >>>> >>>> On Oct 11, 2010, at 9:55 AM, Ramsey Gurley wrote: >>>> >>>>> Looks good to me Dave. I think any "better" way than something that works >>>>> will be a matter of opinion (^_^) Personally I like branch delegates, >>>>> but in this case, the next page delegate is only called by the >>>>> queryAction. So you know the call to next page comes from the find button. >>>>> >>>>> Ramsey >>>>> >>>>> On Oct 11, 2010, at 6:57 AM, David Avendasora wrote: >>>>> >>>>>> Okay, after a nights sleep, I got it working, but how I did it seems >>>>>> hackish (shocking, I know). Is the nextPage() method below from my >>>>>> delegate the best way to do this? >>>>>> >>>>>> public WOComponent nextPage(WOComponent sender) { >>>>>> WOComponent nextPage; >>>>>> if (((ERD2WQueryPage) sender).queryDataSource() >>>>>> .fetchObjects() >>>>>> .count() == 1) { >>>>>> InspectPageInterface ipi = D2W.factory() >>>>>> >>>>>> .inspectPageForEntityNamed(Student.ENTITY_NAME, >>>>>> >>>>>> sender.session()); >>>>>> ((ERD2WInspectPage) ipi).setObject((EOEnterpriseObject) >>>>>> ((ERD2WQueryPage) sender).queryDataSource() >>>>>> >>>>>> .fetchObjects() >>>>>> >>>>>> .lastObject()); >>>>>> nextPage = (WOComponent) ipi; >>>>>> } else { >>>>>> ListPageInterface lpi = D2W.factory() >>>>>> >>>>>> .listPageForEntityNamed(Student.ENTITY_NAME, >>>>>> >>>>>> sender.session()); >>>>>> ((ERD2WListPage) lpi).setDataSource(((ERD2WQueryPage) >>>>>> sender).queryDataSource()); >>>>>> nextPage = (WOComponent) lpi; >>>>>> >>>>>> } >>>>>> return nextPage; >>>>>> } >>>>>> >>>>>> On Oct 10, 2010, at 8:39 PM, David Avendasora wrote: >>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> When a user performs a query, if the results contain exactly one object >>>>>>> I want to return an Inspect page for that object instead of a List page. >>>>>>> >>>>>>> I assume I'm going to want to implement a NextPageDelegate, but I'm not >>>>>>> sure how to do that. I've looked around but I can't seem to find a good >>>>>>> example. Does anyone have an example NextPageDelegate that I can use as >>>>>>> a starting point? >>>>>>> >>>>>>> I promise to create a Wiki page documenting how to do this for future >>>>>>> mes. >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> Dave _______________________________________________ >>>>>>> Do not post admin requests to the list. They will be ignored. >>>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>>>> Help/Unsubscribe/Update your Subscription: >>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com >>>>>>> >>>>>>> This email sent to webobje...@avendasora.com >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Do not post admin requests to the list. They will be ignored. >>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>>> Help/Unsubscribe/Update your Subscription: >>>>>> http://lists.apple.com/mailman/options/webobjects-dev/ramsey%40xeotech.com >>>>>> >>>>>> This email sent to ram...@xeotech.com >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >>> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com >> >> This email sent to webobje...@avendasora.com >> >> > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com > > This email sent to programming...@mac.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com