Leonardo Uribe schrieb:
Hi Werner
I'm checking the code trying to find missing stuff required to implement
f:ajax. On MYFACES-2323 I'll put all information I can deduct about
f:ajax and facelets. It could be good to have a empty tag handler file
for ajax committed, so we can put comments there and start implement it,
but I don't know if the code you are working has this file.
Actually what I am doing currently is to implement the behavior and the
renderer for now, once I know it runs I will commit it into the codebase.
Then basically you can dock it on via a custom tag handler, we wont need
jsp as far as I know since the JSP part is omitted for f:ajax for now.
The main issue I have with the tag handler is that it touches two new
parts which I am not too familiar with, the behavior bindings in the
core and the tag handler API of facelets (with some jsf2 specific
extensions).
It is not impossible for me to read myself into those parts, the only
problem is time, since I have to work for the next weeks three days per
week for a customer, but I assume we would get faster results by someone
taking over those parts who kow them better than I do.
What makes the tag handler particularily different is that it has to resolve
the situations of being a child of another tag or being a parent tag
itself and also it has to touch the compound componend stuff of facelets
by resolving the facelet compound component stuff.
All this must be resolved in the tag handler not in the behavior, I
assume. The behavior itself by contract does not do too much it just can
issue an event and can return a javascript code which has to be bound to
the component.
It however is rather straight forward not too different to a classical
component, I am almost done with it it just needs some testing. However
implementing it revealed a huge hole in the basic api of the behavior.
Behaviors themselves can be partially state saved by providing the
necessary interface but they do not have anything regarding
getStateHelper in the base class like UIComponentBase has. I probably
will extract an interface for impl only,
so that we can have a generic API für such cases for our state helpers
and I will introduce a state helper which can deal with behaviors.
(Done that but currently bound to the ajax behavior)
Werner