Janos, Without code or a description of your actual goal, I'm finding your situation too hypothetical to really digest. The one thing I can point out is what you said about wanting a component to set a property in the page. If you want to do that, then you have to know the class of the page and so injecting a page would make sense. Of course that means tightly coupling a component to a page, which to me doesn't make sense. If you simply need a generic way of passing data between pages and components, consider using a service that provides an untyped list or putting something in the environment as Kristian suggested. I'm sorry I can't be more helpful but as I said I'm not clear on what you're really trying to do.
good luck chris János Jarecsni wrote: > Hi Chris, > > I thought of pages as "contexts" for the components embedded within them. > So, in one event handler of a component I would like to set some property or > another (in the page object), and the other components in the page, which > are also able to access this property may change their appearance (say, the > .TML would test the property). Maybe I'm on a wrong track, please let me > know :) > > thx > Cheers, > janos > > 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: > > >> Janos, >> >> I'm having a hard time understanding a case that a component should know >> in which page it is embedded, so my suggestion probably wasn't a good >> one. Activation contexts aren't meant for components but for pages - you >> should be using component parameters to configure them, and if it's a >> more sophisticated component, probably a service. >> >> chris >> >> János Jarecsni wrote: >> >>> and how a component can get to know the page in which it is included? I >>> mean, I can't @InjectPage, as the component will be included in many >>> >> kinds >> >>> of pages. >>> >>> @Kristian: thx for the many ways :) I'll try these, hope that the >>> @Environmental stuff is scalable (I'm trying to bypass session creation >>> >> as >> >>> much as possible) >>> >>> Is there a doc on the various annotations available? >>> >>> @Michael: >>> Could you include a tiny bit of example? THX! >>> >>> Thx to you all >>> cheers >>> janos >>> >>> 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: >>> >>> >>> >>>> 5) @InjectPage the page and call the getter >>>> >>>> Kristian Marinkovic wrote: >>>> >>>> >>>>> hi janos, >>>>> >>>>> there are several possibilities: >>>>> >>>>> 1) declare a component parameter and pass in the variable >>>>> >>>>> 2) put it in a ASO and inject the ASO in all your components (using >>>>> @ApplicationState) >>>>> the drawback is that any other page or component will be able to >>>>> >> access >> >>>>> the ASO >>>>> >>>>> 3) put it into the Environment and read it whereever you need it in >>>>> >> your >> >>>>> nested components. >>>>> be careful when you put your object in your environment. if you put it >>>>> >>>>> >>>> in >>>> >>>> >>>>> during the action >>>>> request it will not be able in the render request (because of the page >>>>> redirect). >>>>> >>>>> page: >>>>> >>>>> @Inject Environment env; >>>>> >>>>> @Persist("flash") whateverclass w; >>>>> >>>>> onActivate(w) { this.w= w } >>>>> >>>>> setupRender() { env.push(whateverclass.class,w);} >>>>> >>>>> components: >>>>> >>>>> @Environmental Whateverclass var; >>>>> >>>>> 4) define a service that can take this variable (and saves it >>>>> >>>>> >>>> appropriatly >>>> >>>> >>>>> so it is not >>>>> lost on a redirect:)) and inject your service in the components where >>>>> needed >>>>> to retrieve the value. >>>>> >>>>> maybe there are some more possibilities :) >>>>> >>>>> g, >>>>> kris >>>>> >>>>> >>>>> >>>>> >>>>> "János Jarecsni" <[EMAIL PROTECTED]> >>>>> 29.04.2008 08:15 >>>>> Bitte antworten an >>>>> "Tapestry users" <users@tapestry.apache.org> >>>>> >>>>> >>>>> An >>>>> "Tapestry users" <users@tapestry.apache.org> >>>>> Kopie >>>>> >>>>> Thema >>>>> page activation + components >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Hi there, >>>>> >>>>> I have an activatable page, in its onActivate(String param) method I >>>>> >>>>> >>>> save >>>> >>>> >>>>> the param to a normal instance variable of the page class (no >>>>> persistence!). >>>>> How can any component embedded within this page access this variable? >>>>> >>>>> the page class: >>>>> >>>>> //... >>>>> private String param; >>>>> >>>>> public void onActivate(String param) { >>>>> this.param = param; >>>>> } >>>>> >>>>> >>>>> public String getParam() {...} >>>>> >>>>> >>>>> Thx in advance! >>>>> Janos >>>>> >>>>> >>>>> >>>>> >>>>> >>>> -- >>>> http://thegodcode.net >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>>> >>>> >> -- >> http://thegodcode.net >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> -- http://thegodcode.net --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]