It's line 50 in the original ERD2WUtilities, but line 59 in my screenshot. So,
i == 7 and the null result is returned by:
>>> result = c.valueForKeyNoInference(first);
Am 26.10.2012 um 23:53 schrieb Chuck Hill:
> 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 protected]> 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 protected])
>>>>>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.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:
>>>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.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:
>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/lists.fabian%40e-lumo.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:
>>>>>>>> https://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:
>>>> https://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:
>> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>
>> This email sent to [email protected]
>
> --
> 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 protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]