Try editing the wod for ERMD2WCombinedTableHeader and see if this works:

PropertyName: ERXSwitchComponent {
        WOComponentName = d2wContext.propertyNameComponentName;
        localContext = d2wContext;
}



--
David LeBer
Codeferous Software

On 2012-01-16, at 10:52 PM, David LeBer wrote:

> ...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      ([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/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/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/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]

Reply via email to