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