...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

Reply via email to