localizer().takeValueForKey("The metric Name", "prt_quant_XX");
I'll bet you can even
EOKeyValueCodingAdditions.Utility.takeValuesFromDictionary(localizer(),
sessionDictionary);
Also, what David said.
Ramsey
On Jan 16, 2012, at 1:02 PM, David LeBer wrote:
> 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 ([email protected])
>>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/farrukh.ijaz%40fuegodigitalmedia.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/farrukh.ijaz%40fuegodigitalmedia.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/jtayler%40oeinc.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/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/dleber_wodev%40codeferous.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]