Why don't you do the same kind of thing for your propertyName component?

Create a custom propertyName component that looks at the property key, if it 
matches "rpt_quant_XX-*" do your logic on it to extract the name, otherwise use 
default to ERMD2WPropertyName behaviour. Set it as the default propertyName 
component for the page.

100 : pageConfiguration = 'ListFoo' => propertyNameComponentName = 
"SooperSmartPropertyName" [com.webobjects.directtoweb.Assignment]

--
David LeBer
Codeferous Software

On 2012-01-16, at 2:23 PM, James Cicenia wrote:

> I create an array of report keys from the Admin ->Metrics table for that 
> session and that report:
> 
> Sample Key:
> rpt_quant_01-The metric Name
> 
> rpt_quant tells me it is a quant metric and to use my custom property 
> component.
> I then parse the name after "rpt_quant_XX-", i.e. "The metric Name", this is 
> then used to find the value. Works great. Maybe a bad approach?
> 
> So now I move onto the displayName. Boom stuck.
> 
> Though can Localizable.strings be dynamically created in the session?
> 
> Thanks
> James
> 
> 
> 
> On Jan 16, 2012, at 12:52 PM, Ramsey Gurley wrote:
> 
>> 
>> On Jan 16, 2012, at 11:22 AM, James Cicenia wrote:
>> 
>>> What I am trying to accomplish is to se the displayNameForProperty 
>>> dynamically based upon the key.
>>> 
>>> So, somehow, pass the key that returns a value to displayNameForProperty.
>>> 
>>> Now I don't know what the property key is ahead of time.
>>> This comes from data in the session.
>> 
>> I guess that's what has me confused.  Where are you getting 
>> displayPropertyKeys if you don't know ahead of time?  Are you doing 
>> something like
>> 
>> 100: entity.name = "Report" => displayPropertyKeys = 
>> "session.reptHdrDict.allKeys"
>> 
>> ?  Where is that getting loaded?  Because if you want the values to be the 
>> displayed headers, then you can teach your localizer the values when you 
>> load the dictionary, no?
>> 
>>> 
>>> It works like a charm to fill in the list, but it is the 
>>> displayNameForProperty that is confusing me.
>> 
>> The displayNameForProperty is going to come out of Localization.  So if you 
>> know what the possible keys are, then there's no problem.  Just add this to 
>> your Localizable.strings file
>> 
>> "PropertyKey.metricA" = "Metric A";
>> "PropertyKey.metricB" = "Metric B";
>> 
>>> 
>>> 
>>> Admin
>>>   Metrics
>>>     Metric A
>>>     Metric B
>>>     Metric C
>>>     etc.
>>> 
>>> 
>>> Current Portfolio
>>>     Project A
>>>             Metric Value A
>>>             Metric Value B
>>>             Metric Value C
>>> 
>>>     Project B
>>>             Metric Value A
>>>             Metric Value B
>>>             Metric Value C
>>> 
>>> 
>>> Report
>>> 
>>> Project  A    Metric A    Metric B   Metric C
>>> .
>>> .
>>> .
>>> 
>>> 
>>> 
>>> Thanks
>>> James
>>> 
>>> 
>>> On Jan 16, 2012, at 12:02 PM, Ramsey Gurley wrote:
>>> 
>>>> I'm still in the dark about what James is actually trying to accomplish.
>>>> 
>>>> 100: propertyKey = 'metricA' => displayNameForProperty = 
>>>> "PropertyKey.metricA" [ERDLocalizedAssignment]
>>>> 
>>>> Why does that require a custom rule?
>>>> 
>>>> Ramsey
>>>> 
>>>> On Jan 16, 2012, at 10:51 AM, Jesse Tayler wrote:
>>>> 
>>>>> I missed this thread, but don't you just want to identify significant 
>>>>> keys which are calculated at runtime each time you fire the rule?
>>>>> 
>>>>> 
>>>>> 
>>>>> On Jan 16, 2012, at 12:20 PM, Farrukh Ijaz wrote:
>>>>> 
>>>>>> Try this:
>>>>>> 
>>>>>> Implement your own D2WModel the way you like but make sure you can 
>>>>>> actually add remove rules to your model. Perhaps you need to define your 
>>>>>> own methods similar to "addMyRule" or "removeMyRule" etc.
>>>>>> 
>>>>>> Override application's didFinishLaunching() method and add following 
>>>>>> code.
>>>>>> 
>>>>>> @Override
>>>>>> public void didFinishLaunching() {
>>>>>>  super.didFinishLaunching();
>>>>>>  D2WModel.setDefaultModel(MyD2WModel.singleton());
>>>>>> }
>>>>>> 
>>>>>> From this point and onwards I hope you'll be able to use your dynamic 
>>>>>> rules in d2w components as well. Even if you add rules to by adding / 
>>>>>> removing rules in your code anywhere using 
>>>>>> MyD2WModel.singleton().addMyRule(...) will affect the behaviour of d2w 
>>>>>> components.
>>>>>> 
>>>>>> Farrukh
>>>>>> 
>>>>>> On 2012-01-16, at 4:52 PM, James Cicenia wrote:
>>>>>> 
>>>>>>> You already seem experienced in this manner!  :-)
>>>>>>> 
>>>>>>> I could see how this works. Creating my own on the fly rule model could 
>>>>>>> solve the problem.
>>>>>>> 
>>>>>>> But like you said... where? 
>>>>>>> 
>>>>>>> Have to be session specific.
>>>>>>> 
>>>>>>> James
>>>>>>> 
>>>>>>> 
>>>>>>> On Jan 15, 2012, at 1:50 AM, Farrukh Ijaz wrote:
>>>>>>> 
>>>>>>>> It's possible. You need to play around with the D2WContext, D2WModel 
>>>>>>>> and Rule classes.
>>>>>>>> 
>>>>>>>> Start with creating your own D2WModel class since it has methods to 
>>>>>>>> update Rules.
>>>>>>>> 
>>>>>>>> public class MyD2WModel extends D2WModel {     
>>>>>>>>        public MyD2WModel(NSArray<Rule> rules) {
>>>>>>>>                super(rules);
>>>>>>>>        }
>>>>>>>>        public void addMyRule(Rule newRule) {
>>>>>>>>                super.addRule(newRule);
>>>>>>>>        }
>>>>>>>> }
>>>>>>>> 
>>>>>>>> You can override other methods as needed.
>>>>>>>> 
>>>>>>>> I would suggest implement a singleton pattern for MyD2WModel, and use 
>>>>>>>> that whenever you want to infer keys. Whenever you need to access 
>>>>>>>> D2WContext with your rules, do something like this:
>>>>>>>> 
>>>>>>>> D2WContext d2wContext = new D2WContext(session);
>>>>>>>> d2wContext._setModel(MyD2WModel.singleton());
>>>>>>>> 
>>>>>>>> Just hack around and see where you need to place it to make it 
>>>>>>>> accessible in your templates. May be some guru out there can point out 
>>>>>>>> the exact place to hack ;)
>>>>>>>> 
>>>>>>>> Have fun coding!
>>>>>>>> 
>>>>>>>> Farrukh
>>>>>>>> 
>>>>>>>> On 2012-01-13, at 8:20 PM, James Cicenia wrote:
>>>>>>>> 
>>>>>>>>> Ok, is it possible to dynamically load up a rule set?
>>>>>>>>> 
>>>>>>>>> If that is possible I could create the a rule for each dynamic key.
>>>>>>>>> 
>>>>>>>>> Thanks
>>>>>>>>> James
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> 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/farrukh.ijaz%40fuegodigitalmedia.com
>>>>>>>>> 
>>>>>>>>> This email sent to farrukh.i...@fuegodigitalmedia.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/farrukh.ijaz%40fuegodigitalmedia.com
>>>>>>> 
>>>>>>> This email sent to farrukh.i...@fuegodigitalmedia.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/jtayler%40oeinc.com
>>>>>> 
>>>>>> This email sent to jtay...@oeinc.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/rgurley%40smarthealth.com
>>>>> 
>>>>> This email sent to rgur...@smarthealth.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/rgurley%40smarthealth.com
>>> 
>>> This email sent to rgur...@smarthealth.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/dleber_wodev%40codeferous.com
> 
> This email sent to dleber_wo...@codeferous.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