<webobject name = "PropertyName" />

PropertyName : WOString {
        escapeHTML = false;
        value = displayNameForProperty;
}

public class KMID2WPropertyName extends ERD2WPropertyName

// ERD2WPropertyName

    public String displayNameForProperty() {
        if(_displayNameForProperty == null) {
            _displayNameForProperty = 
(String)d2wContext().valueForKey("displayNameForProperty");
        }
        return _displayNameForProperty;
    }
    
    public void reset() {
        super.reset();
        _displayNameForProperty = null;
        _contextDictionary = null;
    }


But like I was saying it's beyond this one component.  All the rules gets 
cached after the first repetition.  So if the first property is marked 
"readonly" all the following properties are also marked read only.  There is no 
component it's just a rule.  It's like the D2WContext stops evaluating rules 
completely after the first repetition.

Aloha,
Mr. Johnny Miller
Web Development Manager
Kahalawai Media Company
Lahaina, HI 96761
tel: (808) 661-7962 | mobile: (808) 283-0791
website | e-mail        

On Mar 14, 2013, at 2:29 PM, Ramsey Gurley <[email protected]> wrote:

> 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