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]