Take a look at ERD2WPropertyName/ERMD2WPropertyName. They don't get a properyKey binding, everything is pulled out of the d2wContext.
As to why our component is not being used (if that is what 'it doesn't get called' means) I don't know. Double check your rules? D -- David LeBer Codeferous Software On 2012-01-16, at 4:04 PM, James Cicenia wrote: > "propertyNameComponentName" !!! > > Now that is what I was looking for.. so I dutifully create a component. > > It doesn't get called? > > > public class D2WCustomKeyToTitle extends ERD2WPropertyName > { > public EOEnterpriseObject object; > public String lookupString; > public String propertyKey; > > public D2WCustomKeyToTitle(WOContext context) > { > super(context); > } > > public String value() > { > lookupString =(String) valueForBinding("propertyKey"); > return lookupString.substring("rpt_project_quant_".length(), > lookupString.length()); > > } > } > > > > On Jan 16, 2012, at 2: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 (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/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