On Dec 8, 2011, at 3:54 PM, David Holt wrote:

> 
> On 2011-12-08, at 2:30 PM, Ramsey Gurley wrote:
> 
>> 
>> On Dec 8, 2011, at 2:36 PM, James Cicenia wrote:
>> 
>>> 
>>> However, the one snag is that I can't have phantom non eo keys. 
>> 
>> Oh, but you can :-)
>> 
>> http://developer.apple.com/legacy/mac/library/documentation/InternetWeb/Reference/WO542Reference/com/webobjects/foundation/NSKeyValueCoding.ErrorHandling.html
>> 
>> Specifically when valueForKey or takeValueForKey are called, 
>> handleQueryForUnboundKey and handleTakeValueForUnboundKey (respectively) are 
>> called on the EO if the key doesn't exist.  The default behavior is to just 
>> throw an UnknownKeyException, but you can override those methods and handle 
>> a key yourself.  When you do, it is as if the EO really had that key.
> 
> Oh no! What have you started?
> 
> This took me SO LONG to figure out. Not that I've figured it out. 
> 
> BugTracker goes crazy with this stuff.

Take that, slap on some inheritance and a clazz pattern, and you can define 
your displayPropertyKeys at runtime too :-)

https://github.com/nullterminated/ponder/tree/master/ERAddressBookExample

Ramsey

> 
>> 
>> Ramsey
>> 
>> 
>>> 
>>> So I created some attributes in the EO.... rptCol01 ... rptColXX
>>> 
>>> And then map those properties to a customComponent.
>>> 
>>> Seems to be working as clean as I could design it.
>>> 
>>> James
>>> 
>>> 
>>> On Dec 8, 2011, at 12:23 PM, David Holt wrote:
>>> 
>>>> 
>>>> On 2011-12-08, at 9:17 AM, James Cicenia wrote:
>>>> 
>>>>> That all makes sense now and works perfectly. This conversion might go 
>>>>> better than I originally planned.
>>>>> 
>>>>> Thank you very much.
>>>>> James
>>>>> 
>>>>> ps: now I can make a nice generalized custom reporting engine!
>>>> 
>>>> It would be nice if you had time to share how you went about it. It sounds 
>>>> good!
>>>> 
>>>> David
>>>> 
>>>> 
>>>>> 
>>>>> On Dec 8, 2011, at 10:25 AM, Ramsey Gurley wrote:
>>>>> 
>>>>>> Instead of using rules
>>>>>> 
>>>>>> 
>>>>>> (entity.name = 'PortfolioProject' and propertyKey = 'primaryGroup')  
>>>>>> componentName = "D2WCustomComponent"
>>>>>> 
>>>>>> (entity.name = 'PortfolioProject' and propertyKey = 'primaryGroup')  
>>>>>> customComponentName = "D2WPrimaryAlignmentMetricByKey"
>>>>>> 
>>>>>> use
>>>>>> 
>>>>>> (entity.name = 'PortfolioProject' and propertyKey = 'primaryGroup')  
>>>>>> componentName = "D2WPrimaryAlignmentMetricByKey"
>>>>>> 
>>>>>> Since you are extending ERDCustomComponent, you shouldn't need the 
>>>>>> wrapper.  Then you can just call valueForBinding to get whatever you 
>>>>>> need from the d2wContext.
>>>>>> 
>>>>>>     public String value(){
>>>>>>          return 
>>>>>> ((PortfolioProject)object).metricListValueByMetric(valueForBinding("lookupString"));
>>>>>>     }
>>>>>> 
>>>>>> Ramsey
>>>>>> 
>>>>>> On Dec 8, 2011, at 6:19 AM, James Cicenia wrote:
>>>>>> 
>>>>>>> OK -
>>>>>>> 
>>>>>>> 
>>>>>>> I spent a lot of hours last night converting a test version of this 
>>>>>>> application to extend ERXApplication.... etc. I would be doing it the 
>>>>>>> first of the year anyway.
>>>>>>> 
>>>>>>> Now I have a little D2W rendering component. I want the rule to change 
>>>>>>> an attribute of it. But I can't seem to make it happen.
>>>>>>> 
>>>>>>> here is my simple component:
>>>>>>> 
>>>>>>> public class D2WPrimaryAlignmentMetricByKey extends ERDCustomComponent {
>>>>>>>         public EOEnterpriseObject object;
>>>>>>>         public String key;
>>>>>>>         public String lookupString;
>>>>>>>         
>>>>>>>     public D2WPrimaryAlignmentMetricByKey(WOContext context) {
>>>>>>>         super(context);
>>>>>>>     }
>>>>>>>     
>>>>>>>     
>>>>>>>     public String value(){
>>>>>>>         return 
>>>>>>> ((PortfolioProject)object).metricListValueByMetric(lookupString);
>>>>>>>     }
>>>>>>> }
>>>>>>> 
>>>>>>> 
>>>>>>> What can I do to get lookupString to be supplied by a rule??
>>>>>>> 
>>>>>>> Here is my rule:
>>>>>>> 
>>>>>>> (entity.name = 'PortfolioProject' and propertyKey = 'primaryGroup') ==> 
>>>>>>> lookupString com.webobjects.directtoweb.Assignment "Primary Group"
>>>>>>> 
>>>>>>> lookupString is always null when I run my report and debug my component.
>>>>>>> 
>>>>>>> What am I missing.
>>>>>>> 
>>>>>>> 
>>>>>>> James Cicenia 
>>>>>>> cell: 773.398.4649
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>> Webobjects-dev mailing list      ([email protected])
>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
>>>>>>> 
>>>>>>> This email sent to [email protected]
>>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list      ([email protected])
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> http://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com
>>>>> 
>>>>> This email sent to [email protected]
>>>> 
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> http://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
>>> 
>>> This email sent to [email protected]
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com
>> 
>> This email sent to [email protected]
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to