What does your property name component look like? If it inherits off the wonder 
one, you're using a stateless component. If you don't have a reset() method and 
you lazy load the displayNameForProperty in a method that caches the value in 
your component, you'll get exactly the behavior you are describing.

Ramsey

On Mar 14, 2013, at 5:24 PM, Johnny Miller wrote:

> Since this is my first D2W project all help is a lot of help!  
> 
> Here is the mark up for the InspectPageRepetition:
> 
> <webobject name = "SectionsRepetition">
>       <fieldset>
>               <webobject name = "AttributeRepetition">
>                       <webobject name = "Wrapper">
>                               <webobject name = "Label"><webobject name = 
> "PropertyName" /></webobject>
>                               <webobject name = "ControlsWrapper">
>                                       <webobject name = 
> "AttributeValue"></webobject>
>                                       <webobject name = "HasHelpText">
>                                               <webobject name = 
> "HelpBlock"><webobject name = "HelpText" /></webobject>
>                                       </webobject>
>                               </webobject>
>                       </webobject>
>               </webobject>
>       </fieldset>
> </webobject>
> 
> Here are the important bindings:
> 
> AttributeRepetition : WORepetition {
>       _unroll = true;
>       item = propertyKey;
>       list = currentSectionKeys;
> }
> 
> SectionsRepetition : WORepetition {
>       item = currentSection;
>       list = sectionsContents;
> }
> 
> PropertyName: WOSwitchComponent {
>       WOComponentName = d2wContext.propertyNameComponentName;
>       localContext = d2wContext;
> }
> 
> AttributeValue: WOSwitchComponent {
>       WOComponentName = d2wContext.componentName;
>       localContext = d2wContext;
>       object = object;
> }
> 
> My inspect page repetition subclasses ERDAttributeRepetition...
> 
> I've added these two overrides like in ERDInspectPageRepetition
> 
>     /** component does not synchronize it's variables */
>     @Override
>     public boolean synchronizesVariablesWithBindings() { return false; }
> 
>     public EOEnterpriseObject object() {
>         return (EOEnterpriseObject)valueForBinding("object");
>     }
> 
> I don't know why synchronizesVariablesWithBindings is in there because 
> ERAttributeRepetition also sets this to false.
> 
> Can you tell me what the binding _unroll sets?
> 
> Thanks again,
> 
> Johnny
> 
> 
> On Mar 14, 2013, at 2:18 PM, David Holt <[email protected]> wrote:
> 
>> Hi Johnny,
>> 
>> Not seeing anything out of the ordinary there except that it only processes 
>> the one propertyKey.
>> 
>> Maybe if you post your repetition component we can see something?
>> 
>> Sorry I can't be of more help.
>> 
>> David
>> 
>> 
>> On 2013-03-14, at 4:17 PM, Johnny Miller <[email protected]> wrote:
>> 
>>> Hi David,
>>> 
>>> It works but the flag is D2WTraceRuleFiringEnabled
>>> 
>>> Here is the rules that get fired on the page where the read only gets 
>>> cached.  I just don't see anything in there that raises a red flag.  It's 
>>> just like whatever triggers the D2WContext to recalculate it's values stops 
>>> working.  
>>> 
>>> Thanks,
>>> 
>>> Johnny
>>> 
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog  - ****** fire :     20 : 
>>> (pageConfiguration like 'Edit*') => task = edit (20501)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog  - ****** fire :     10 : 
>>> *true* => entity = entityForPageConfiguration 
>>> [er.directtoweb.assignments.ERDKeyValueAssignment] (10000)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog  - ****** fire :      0 : 
>>> *true* => entityForPageConfiguration = <ERDDefaultModelAssignment> 
>>> [er.directtoweb.assignments.defaults.ERDDefaultModelAssignment] (0)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog  - ****** fire :     51 : 
>>> ((task = 'edit') or (task = 'inspect')) => pageName = 
>>> templateNameForInspectPage 
>>> [er.directtoweb.assignments.ERDKeyValueAssignment] (51001)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :      0 : *true* => targetOutput = html (0)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :      0 : (frame = (java.math.BigDecimal)'1') => 
>>> pageWrapperName = D2WEmptyWrapper (1)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> <WOImage>: No height or width information provided for 'DownTriangle.gif'. 
>>> If possible, this information should be provided for best performance.
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :    110 : (((task = 'inspect') or (task = 'edit')) and 
>>> (object.isNonNull = (java.math.BigDecimal)'1') and (object.isNewObject = 
>>> (java.math.BigDecimal)'0')) => branchChoices = ({branchButtonLabel = 
>>> "Inspect"; branchIcon = "&#x67;"; branchName = "inspectObject"; }, 
>>> {branchButtonLabel = "Edit"; branchIcon = "&#x25;"; branchName = 
>>> "editObject"; }, {branchButtonLabel = "Add"; branchIcon = "&#xe033;"; 
>>> branchName = "createObject"; }) (110003)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :    100 : (task = 'edit') => selectedTabIndex = 1 (100001)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :     22 : ((task = 'edit') or (task = 'inspect')) => 
>>> repetitionComponentName = KMID2WInspectPageRepetition (22001)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :    100 : ((task = 'edit') and (entity.name = 'KMIPrincipal')) 
>>> => displayPropertyKeys = (("Details", "userName", "firstName", "lastName", 
>>> "emailAddress", "phoneNumber"), ("Password", "password", 
>>> "passwordConfirm")) (100002)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :     10 : *true* => displayNameForProperty = 
>>> <ERDDefaultDisplayNameAssignment> 
>>> [er.directtoweb.assignments.defaults.ERDDefaultDisplayNameAssignment] 
>>> (10000)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :      0 : *true* => smartRelationship = 
>>> <ERDDefaultModelAssignment> 
>>> [er.directtoweb.assignments.defaults.ERDDefaultModelAssignment] (0)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :      0 : *true* => smartAttribute = 
>>> <ERDDefaultModelAssignment> 
>>> [er.directtoweb.assignments.defaults.ERDDefaultModelAssignment] (0)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :     22 : (task = 'edit') => componentName = KMID2WEditString 
>>> (22001)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :      5 : (smartAttribute.className = 'java.lang.String') => 
>>> length = smartDefaultAttributeWidth 
>>> [er.directtoweb.assignments.ERDKeyValueAssignment] (5001)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :      0 : *true* => smartDefaultAttributeWidth = 
>>> <ERDDefaultModelAssignment> 
>>> [er.directtoweb.assignments.defaults.ERDDefaultModelAssignment] (0)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :      0 : (smartAttribute.width > (java.math.BigDecimal)'0') 
>>> => maxLength = smartAttribute.width 
>>> [er.directtoweb.assignments.ERDKeyValueAssignment] (1)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :    100 : ((task = 'edit') and (entity.name = 'KMIPrincipal') 
>>> and (propertyKey = 'userName')) => readOnly = 1 
>>> [com.webobjects.directtoweb.BooleanAssignment] (100003)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :     20 : (look = 'KMINativeLook') => 
>>> elementNameForBottomActionBlock = div (20001)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :     20 : (look = 'KMINativeLook') => 
>>> classForBottomActionBlock = form-actions (20001)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :     10 : *true* => saveButtonLabel = ERD2W.saveButtonLabel 
>>> [er.directtoweb.assignments.delayed.ERDDelayedLocalizedAssignment] (10000)
>>> Mar 14 13:13:03 KMIWebCMSApp_1[5570] DEBUG NSLog (EditKMIPrincipal) - 
>>> ****** fire :     10 : *true* => cancelButtonLabel = 
>>> ERD2W.cancelButtonLabel 
>>> [er.directtoweb.assignments.delayed.ERDDelayedLocalizedAssignment] (10000)
>>> 
>>> On Mar 14, 2013, at 12:00 PM, David Holt <[email protected]> wrote:
>>> 
>>>> 
>>>> On 2013-03-13, at 7:29 PM, Johnny Miller <[email protected]> wrote:
>>>> 
>>>>> Hi Ramsey,
>>>>> 
>>>>> Yeah, I have a rule like this:
>>>>> 
>>>>> 30 : look = 'KMINativeLook' => propertyNameComponentName = 
>>>>> "KMID2WPropertyName" [com.webobjects.directtoweb.Assignment],
>>>>> 
>>>>> KMID2WPropertyName subclasses ERD2WPropertyName and it's basically the 
>>>>> same thing except I removed the HTML I didn't need.
>>>>> 
>>>>> Is there a way to debug the rules if you are using embedded components?  
>>>> 
>>>> Does the flag "ERD2WTraceRuleFiringEnabled = true" not work?
>>>> 
>>>> http://wiki.wocommunity.org/display/documentation/The+D2W+Rule+System
>>>> 
>>>> 
>>>>> 
>>>>> Thanks again,
>>>>> 
>>>>> Johnny
>>>>> 
>>>>> 
>>>>> On Mar 13, 2013, at 4:01 PM, Ramsey Gurley <[email protected]> wrote:
>>>>> 
>>>>>> How are you setting propertyComponentName? I assume through rules, but 
>>>>>> if you are pushing the context, you're probably permacaching the value 
>>>>>> for your key. If not, debug your rule firings and see why it's choosing 
>>>>>> the cached value for your RHS.
>>>>>> 
>>>>>> Ramsey
>>>>>> 
>>>>>> On Mar 13, 2013, at 5:14 PM, Johnny Miller wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I'm trying to do the following:
>>>>>>> 
>>>>>>> I have an inspect page and inside of that I have an inspect page 
>>>>>>> repetition.  That all works fine and it looks like the ERD2W 
>>>>>>> equivalents.
>>>>>>> 
>>>>>>> In the inspect page repetition I want to have a switch component that 
>>>>>>> uses a rule to determine what kind of component to display i.e. if it 
>>>>>>> is a string put one kind of component, if it's an ERAttachment put 
>>>>>>> another.
>>>>>>> 
>>>>>>> Now here is where the strange things start occurring.  I've defined my 
>>>>>>> own key "propertyComponentName".  For some odd reason whatever rule 
>>>>>>> resolves to in the first property is what it displays for every 
>>>>>>> property?
>>>>>>> 
>>>>>>> And what is equally strange is that suppose they all resolve to the 
>>>>>>> same type of component so it doesn't matter... it will display the 
>>>>>>> right property value but the property value for key always resolves to 
>>>>>>> whatever the answer would be for the first property.
>>>>>>> 
>>>>>>> It's hard to describe so I created a couple of screenshots:
>>>>>>> 
>>>>>>> http://www.kahalawai.com/displaying-same-component.png // It always 
>>>>>>> shows the component for viewing an ERAttachment
>>>>>>> http://www.kahalawai.com/displaying-same-property-name.png // Gets the 
>>>>>>> property key right but the display name for property value wrong
>>>>>>> 
>>>>>>> One of my questions is can you just arbitrarily create keys or do you 
>>>>>>> need to register them somewhere?
>>>>>>> 
>>>>>>> Another Is localcontext and d2wcontext completely synonymous?
>>>>>>> 
>>>>>>> Thanks in advance,
>>>>>>> 
>>>>>>> Aloha,
>>>>>>> Mr. Johnny Miller
>>>>>>> Web Development Manager
>>>>>>> Kahalawai Media Company
>>>>>>> Lahaina, HI 96761
>>>>>>> tel: (808) 661-7962 | mobile: (808) 283-0791
>>>>>>> website | e-mail        
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> 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/ramseygurley%40gmail.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/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/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to