Re: D2W: getting the "root" pageConfiguration
Re: D2W: getting the "root" pageConfiguration
- Subject: Re: D2W: getting the "root" pageConfiguration
- From: Chuck Hill <email@hidden>
- Date: Fri, 26 Oct 2012 14:53:21 -0700
For the keypath you are showing, how can i == -1? Does that keypath have some character other character than .? Looks like a period, but isn't?
On 2012-10-26, at 2:48 PM, Fabian Peters wrote:
> Well, I've been able to find where it returns null for the session, but I have no idea why. It's line 50 of ERD2WUtilities:
>
>> // This prevents the dreaded KeyValueCoding null object exception, for say key paths: object.entityName
>> // Should just return null instead of throwing.
>> public static Object contextValueForKeyNoInferenceNoException(D2WContext c, String keyPath) {
>> Object result = null;
>> int i = keyPath.indexOf(".");
>> if (i == -1) {
>> result = c.valueForKeyNoInference(keyPath);
>> } else {
>> String first = keyPath.substring(0, i);
>> String second = keyPath.substring(i + 1);
>> result = c.valueForKeyNoInference(first);
>
>
>
> <http://www.e-lumo.com/tmp/d2wdebug2.png>
> <http://www.e-lumo.com/tmp/d2wdebug3.png>
>
> The line numbers in my screenshots don't match as I had to add the keyPaths array as a debugging aid. The null result occurs exactly once when the edit button is clicked, never when the "New" button is clicked.
>
> Any input much appreciated!
>
> Am 26.10.2012 um 22:32 schrieb David LeBer:
>
>> Fabian,
>>
>> If you cannot access the session from within any part of the D2W system that is just whacked.
>>
>> D2W is heavily dependent on a session.
>>
>> Yes, you need to dig deeper, I for one, am scratching my head.
>>
>> D
>>
>> On 2012-10-26, at 4:26 PM, Fabian Peters <email@hidden> wrote:
>>
>>> Unfortunately, yes. I had already tried another key on session. I'm now using a conditional breakpoint for the keypath in ERD2WUtilities' contextValueForKeyNoInferenceNoException method. When the creation page is generated, everything's fine. But when the edit page is generated, I get a null result for the key path at times - other times it returns the expected value. Looks like a longer debugging session...
>>>
>>> Am 26.10.2012 um 22:19 schrieb Ramsey Gurley:
>>>
>>>> Are you sure there's no session? What do you get when you enter session.sessionID?
>>>>
>>>> On Oct 26, 2012, at 12:05 PM, Fabian Peters wrote:
>>>>
>>>>> Thanks Ramsey, just tried this but to no avail. I've tried both
>>>>>
>>>>> session.context.page.d2wContext.entity.name
>>>>> session.context.page.d2wContext.pageConfiguration
>>>>>
>>>>> in the "D2W Key" field of the ERDDebuggingHelp. The problem seems to be that the session cannot be reached, unless the call is made from within the property level repetition:
>>>>>
>>>>> <http://www.e-lumo.com/tmp/d2wdebug.png>
>>>>>
>>>>>
>>>>> Am 26.10.2012 um 20:37 schrieb Ramsey Gurley:
>>>>>
>>>>>> You may not necessarily have a page configuration depending on how the page is instantiated. Have you tried a rule with a LHS like
>>>>>>
>>>>>> session.context.page.d2wContext.entity.name = 'EntityA' and session.context.page.d2wContext.task = 'edit'
>>>>>>
>>>>>> ?
>>>>>>
>>>>>> Ramsey
>>>>>>
>>>>>> On Oct 26, 2012, at 11:18 AM, Fabian Peters wrote:
>>>>>>
>>>>>>> Sorry, sent too fast and mixed up my mock entities. This seems to be (more) correct:
>>>>>>>
>>>>>>> Unfortunately parentPageConfiguration doesn't help, as there's an additional level of nesting due to the "EditRelationshipEmbeddedEntityC". It will always just return "EditRelationshipEmbeddedEntityC", when the embedded page is "EditEmbeddedEntityC" and the "root" pageConfiguration is "EditEntityA" or "EditEntityB".
>>>>>>>
>>>>>>> My rule works fine when the pageConfiguration is "CreateEmbeddedEntityC":
>>>>>>>
>>>>>>> 333 : ((pageConfiguration = 'CreateEmbeddedEntityC' or pageConfiguration = 'EditEmbeddedEntityC') and session.context.page.d2wContext.pageConfiguration like '*EntityC') => displayPropertyKeys = ("foo", "bar", "baz") [com.webobjects.directtoweb.Assignment]
>>>>>>>
>>>>>>> But the same rule fails when the task is "edit". Tracing the rules shows that "session.context.page.d2wContext.pageConfiguration" evaluates to null then.
>>>>>>>
>>>>>>> Am 26.10.2012 um 20:00 schrieb David Holt:
>>>>>>>
>>>>>>>> Sorry those should have been: editEmbeddedRelationshipEntityC
>>>>>>>>
>>>>>>>>
>>>>>>>> On 2012-10-26, at 10:57 AM, David Holt wrote:
>>>>>>>>
>>>>>>>>> If you're using embedded configurations, wouldn't you just have a couple of rules like:
>>>>>>>>>
>>>>>>>>> 20 : (pageConfiguration = 'editRelationshipEntityC' and parentPageConfiguration = 'EditEntityA') => displayPropertyKeys = ("name", "description") [com.webobjects.directtoweb.Assignment]
>>>>>>>>>
>>>>>>>>> 20 : (pageConfiguration = 'editRelationshipEntityC' and parentPageConfiguration = 'EditEntityB') => displayPropertyKeys = ("name") [com.webobjects.directtoweb.Assignment]
>>>>>>>>>
>>>>>>>>> Unless I'm missing what you're trying to do.
>>>>>>>>>
>>>>>>>>> d
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 2012-10-26, at 10:09 AM, Fabian Peters wrote:
>>>>>>>>>
>>>>>>>>>> Yes, this is with ModernLook.
>>>>>>>>>>
>>>>>>>>>> Am 26.10.2012 um 17:56 schrieb David Holt:
>>>>>>>>>>
>>>>>>>>>>> Are you using ModernLook with actual embedded page configurations?
>>>>>>>>>>>
>>>>>>>>>>> David
>>>>>>>>>>>
>>>>>>>>>>> On 2012-10-26, at 6:40 AM, Fabian Peters wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>
>>>>>>>>>>>> An entity that's being edited (EntityC) has relationships to two different entities (EntityA, EntityB) and different keys should be shown depending on the context (root pageConfiguration being "EditEntityA" or "EditEntityB"). In order to display the right properties on an embedded page, I need to look at the root pageConfiguration, "parentPageConfiguration" is the same in both contexts.
>>>>>>>>>>>>
>>>>>>>>>>>> Calling "session.context.page.d2wContext.pageConfiguration" works when used at the property level, but (mostly) fails when used in a rule acting on "displayPropertyKeys". Apparently, it's impossible to get to the session from there. Is there an alternative approach to get the root page configuration in a D2W app?
>>>>>>>>>>>>
>>>>>>>>>>>> Fabian
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>>>>>> Webobjects-dev mailing list (email@hidden)
>>>>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>>>>
>>>>>>>>>>>> This email sent to email@hidden
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>>> Webobjects-dev mailing list (email@hidden)
>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>
>>>>>>>>> This email sent to email@hidden
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>> Webobjects-dev mailing list (email@hidden)
>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>
>>>>>>> This email sent to email@hidden
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>> Webobjects-dev mailing list (email@hidden)
>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>
>>>>>>> This email sent to email@hidden
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/gvc/practical_webobjects
Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest Growing Companies in B.C!
Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of Canada’s Fastest-Growing Companies by PROFIT Magazine!
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden