...And that is because there is a bug in ERMD2WCombinedTableHeader. It should wrap the ERMD2WPropertyName component with a switch component and it doesn't.
Sorry, my bad. D -- David LeBer Codeferous Software On 2012-01-16, at 7:14 PM, James Cicenia wrote: > can't seem to get this rule do anything good, bad or indifferent" > > pageConfiguration like 'List*' => propertyNameComponentName = > "D2WCustomKeyToTitle" [com.webojects.directoweb.Assignment] > > ? > > James > > > > On Jan 16, 2012, at 3:28 PM, David LeBer wrote: > >> 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/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