But is it possible to define a function such as
Function enableAllComponents()
{
// Components write Javascript here during rendering
}
And then have a number of components write the Javascript to fill in the
body of the single function.
Is this possible?
This is not supported by Tapestry itself, but there are ways to achieve
this...
You could do the following:
1) surround your components with a new component, let's name it
JavascriptGatherer. This new component will provide a public method
appendJS(String)
and will override setupComponent(IRequestCycle cycle) in order to place
itself as an
attribute into the current cycle
2) The enclosed components will get a reference to JavascriptGatherer
(from the cycle)
and call the appendJS method
3) Finally, the JavascriptGatherer will override
renderComponent(IMarkupWriter writer, IRequestCycle cycle)
and at first, it will call its parent's renderComponent (allowing nested
components
to render themselves and contribute javascript).
It will then use the writer to output the javascript it has gathered!
You can also take a look at the source of MachoBar and MachoItem at
http://sourceforge.net/projects/tapfx/
(Browse CVS, package net.sf.tapfx.components.machobar)
They implement what I've described
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]