Hi Simone, thx for the reply...
On Jul 18, 2006, at 3:14 AM, Simone Gianni wrote:
<snip...>
1) What is the deal with row deletion? Apparently when binding to an
XML tree, you have to say
<fb:on-delete-row>
<fb:delete-node/>
</fb:on-delete-row>
if you want the delete row-action to do anything. Why? And don't you
have to do anything special in the binding to make delete work when
you are binding to a Collection? If so, what?
The default behaviour when no on-delete-row is specified is to use
JXPath "node" deletion, which actually should remove the item from the
collection... as long as the collection is a List it usually works.
Hmm, coming back to this today I noticed that I am also getting this
warning in the log:
RepeaterBinding has detected rows to delete, but misses the
<on-delete-row> binding to do it.
???
2) What's the deal with row insertion? I get this warning in the log
RepeaterJXPathBinding: RepeaterBinding has detected rows to insert,
but misses the <on-insert-row> binding to do it.
OK, I get it... for a bean, we need to register a factory so that the
binding will know how to create the new thing. Fair enough. But I've
been looking at the documentation
(http://cocoon.apache.org/2.1/userdocs/binding.html), and I don't get
it... how about an example? And anyway, I don't have a bean here. Just
a String. How do I make this work?
You have to define a on-insert-row, containing an insert-bean, for
example :
<fb:on-insert-row>
<fb:insert-bean ...>
</fb:on-insert-row>
Yes, yes, I understand that much :-)... but I think an example of what
the <fb:insert-bean> attributes might look like would help me to
understand.
Note, I'm kind of trying for 2 different things here: (1) really
understanding how repeater bindings work, and (2) getting my problem
solved one way or the other :-). That is why I'm asking all these
questions that may not seem related :-).
The insert bean requires a class and method, the method is referred to
the context bean, so you need an addXXX method on you bean.
See above... how 'bout an example? :-)
But all this will not solve your problem,
right... I know :-)
this is because there is no
way to tell to the repeater binding that the context bean and a field
are the same (the fb:value with path="." that never works).
I made many simlar pages (in one i have to fill a collection with beans
taken from a list retrieved from a service method and displayed in drop
downs), and i ended coding my own, super simple RepeaterToBeanList
binding, which is quite similar to the simple repeater binding but
actually fills the collection with beans (or any other object) taken
from a field contained in the repeater.
The code for this class follows, I'm working on this kind of problems
and will hopefully come up with something intresting when I have time
to :(
Thanks a lot, I will take a look and see if I can figure it out... :-)
Best regards,
—ml—
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]