Hi,
        I'm using Tapestry 2.1, and am just coming over from WebObjects.
As such, I may very well have some incorrect notions about how to do
things.  I'm open to both a technical solution to my problem, or a
philosophical one if I've missed something fundamental about Tapestry.

I have a component, which is to be used in several places, but which has a
large amount of functionality in it.  I'm using the Application facade
design pattern, (sorry, can't find url at the moment) where the Tapestry
component or page delegates most data formatting/state to a "facade"
object.  THe component/page is solely responsible for rendering.  The
facade object then uses the underlying business logic to perform
appropriately.  So far the design of that seems to work really well, and
I found it remarkably easy to port a chunk of WebObjects code written in
this style, to Tapestry.  I barely had to touch the facade object (other
than to munge it to not use EOF :-( ).
One serious advantage of this is that the facade contains all the
persistent state required for the page/component, so it is the only object
that needs to be recorded by the page recorder (quite convenient really).

My problem stems not from pages and facades (seems to work well so far),
but components.  The facade of this big component I'm developing needs
access to the Visit object, in order to determine the logged in user
(among other things).  I can get that from the engine of the page
(this.getPage().getEngine().getVisit()), *once* the engine has been
attached to the page.

I can't lazily create my facade during render, because then I can't make
it part of the persistent state.  However, a component seems to have no
way of knowing when it's page gets attached to an engine.

So, to summarise:
I have a component which needs to know the engine it's page is attached
to, at some time prior to render time.

Anyone got any suggestions?

Thanks,

 Craig Miskell
Programmer, Black Albatross, Otago University, New Zealand
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS d- s+:- a-->? C++++(++)$ ULXH+++$>++++ P+>++++ L++$>++++$ E--- W+++$
N+ K? w--- !O M-- V? PS--- PE Y t++ 5 X+++ R-- tv+ b+>+++ DI++++ D+ G+ e++
h--- r+++ y+++
------END GEEK CODE BLOCK------








-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to