After more tweaking, I got it to work by binding it to a boolean variable 
instead (the setter/getter binding does not seem to work, so this may be a 
useful note for others in the future), and make this boolean unique to each row.

thanks,

mai
On Apr 13, 2011, at 5:04 PM, Henrique Gomes wrote:

> Long shot, try removing the 'is' from the binding:
> 
> expanded = agreementDetailsVisibleForBundleProductItem;
> 
> Also, make sure the code the app is using is the code you are looking at. 
> Clean your project, look for other mistakes.
> Good luck,
> 
> Henrique Gomes
> 
> 
> On Apr 14, 2011, at 12:08 AM, Mai Nguyen wrote:
> 
>> Dear List,
>> 
>> I tried to solve the problem of using the AjaxExpansion per row inside a 
>> repetition and providing a unique "expanded" flag binding per row.
>> Since each row matches a particular product, the binding of "expanded" is 
>> set to the visible flag of each product in the array by using a 
>> setter/getter method.
>> 
>> If I use a public instance variable, such as a global "isVisible" flag, this 
>> would work like the AjaxExample, but the global instance variable is not 
>> suitable for each row in a repetition.
>> 
>> I do not understand why the binding to a setter/getter method would fail?
>> 
>> Thanks for any hints,
>> 
>> -mai
>> 
>> CurrentProductRepetition: WORepetition {
>>      item = bundleProductItem;
>>      list = currentMainBundleProducts;
>>      index = logIndex;
>> } 
>> AgreementDetailsAjaxExpansion : AjaxExpansion {
>>      id = ~"AgreementDetailsAjaxExpansion" + logIndex;
>>      insertion = "Effect.blind";
>>      insertionDuration = "0.1";
>>      string = "Agreement Details";
>>      expanded = isAgreementDetailsVisibleForBundleProductItem;       
>> }
>> 
>> In the java file, I have the following simple code:
>> 
>> public boolean isAgreementDetailsVisibleForBundleProductItem() {
>>              return (bundleProductItemC.isAgreementDetailsVisible());
>>      }
>> 
>> public void setIsAgreementDetailsVisibleForBundleProductItem(boolean aValue) 
>> {
>>              bundleProductItemC.setIsAgreementDetailsVisible(aValue);
>>      }
>> 
>> 
>> ==
>> // Methods used in AjaxExpansion for bundle product
>> public boolean isAgreementDetailsVisibleC = false;
>> 
>>      public boolean isAgreementDetailsVisible() {
>>              return isAgreementDetailsVisibleC;
>>      }
>> 
>>      public void setIsAgreementDetailsVisible(boolean value) {
>>              isAgreementDetailsVisibleC = value;
>>      }
>> 
>> However, at runtime, I would get the following exception:
>> 
>> <com.webobjects.foundation.NSKeyValueCoding$UnknownKeyException message 
>> '[<CustomerSummary name:  CustomerSummary subcomponents: 
>> {0.15.13.7.1.5.0.1.3 = <er.ajax.AjaxExpansion name: er.ajax.AjaxExpansion 
>> subcomponents: null >; 0.15.13.7.1.7 = <er.ajax.AjaxModalDialog name: 
>> er.ajax.AjaxModalDialog subcomponents: null >; } > takeValueForKey()]: 
>> attempt to assign value to unknown key: 
>> 'isAgreementDetailsVisibleForBundleProductItem'.
>> This WOComponent does not have an instance variable of the name 
>> isAgreementDetailsVisibleForBundleProductItem or 
>> _isAgreementDetailsVisibleForBundleProductItem, nor a method of the name 
>> setIsAgreementDetailsVisibleForBundleProductItem or 
>> _setIsAgreementDetailsVisibleForBundleProductItem' object '<CustomerSummary 
>> name: CustomerSummary subcomponents: {0.15.13.7.1.5.0.1.3 = 
>> <er.ajax.AjaxExpansion name: er.ajax.AjaxExpansion subcomponents: null >; 
>> 0.15.13.7.1.7 = <er.ajax.AjaxModalDialog name: er.ajax.AjaxModalDialog 
>> subcomponents: null >; } >' key 
>> 'isAgreementDetailsVisibleForBundleProductItem'>
>>      at 
>> com.webobjects.appserver.WOComponent.handleTakeValueForUnboundKey(WOComponent.java:1781)
>>      at 
>> com.webobjects.foundation.NSKeyValueCoding$Utility.handleTakeValueForUnboundKey(NSKeyValueCoding.java:519)
>>      at 
>> com.webobjects.foundation.NSKeyValueCoding$_KeyBinding.setValueInObject(NSKeyValueCoding.java:899)
>>      at 
>> com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.takeValueForKey(NSKeyValueCoding.java:1354)
>>      at 
>> com.webobjects.appserver.WOComponent.takeValueForKey(WOComponent.java:1748)
>>      at 
>> com.webobjects.foundation.NSKeyValueCoding$Utility.takeValueForKey(NSKeyValueCoding.java:469)
>>      at 
>> com.webobjects.foundation.NSValidation$DefaultImplementation.validateTakeValueForKeyPath(NSValidation.java:679)
>>      at 
>> com.webobjects.appserver.WOComponent.validateTakeValueForKeyPath(WOComponent.java:1424)
>>      at 
>> com.webobjects.appserver._private.WOKeyValueAssociation.setValue(WOKeyValueAssociation.java:76)
>>      at 
>> ognl.helperfunction.WOHelperFunctionKeyValueAssociation.setValue(WOHelperFunctionKeyValueAssociation.java:21)
>>      at 
>> com.webobjects.appserver.WOComponent.setValueForBinding(WOComponent.java:910)
>>      at er.ajax.AjaxExpansion.setExpanded(AjaxExpansion.java:138)
>>      at er.ajax.AjaxExpansion.toggle(AjaxExpansion.java:146)
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/lists%40farol.pt
>> 
>> 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:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to