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

Reply via email to