Much clearer :-). When you say "when it comes to my 'News' component" do you mean news page? That is, clicking a 'more' link from NewsQuote leads to a News page?
János Jarecsni wrote: > Hi Chris, > > I try to explain :) > Say, you have a "NewsQuote" component, which shows a few lines from the 5 > latest news. At the and of each quotations, there a "More" link. Now, when > the user clicks on this link (an action link, for that matter), the > NewsQuote component will set a request scope info saying that the news with > ID=4527 is requested. And when it comes to the "News" component (it is able > to show the text of a given news in full), it simply looks at this piece of > info, and loads the news with id 4527 (or gets it from an app level cache > :)) and renders it. > > Hope it tells something about what I am up to :) > > thx > Janos > > 2008/4/30 Chris Lewis <[EMAIL PROTECTED]>: > > >> Honestly it's difficult for me to imagine a situation where I'd do that >> because it seems to violate a degree of encapsulation that tapestry >> imposes as a "freeing law" of the framework. The epicenter of that being >> that one should not think in terms of low-level idioms such as request >> parameters, and instead replace those with a higher level of application >> logic that eclipses them entirely (when possible). That's not to say >> that your perspective is flawed, but from the small bit of understanding >> I've taken from your posts I can't see why one would do what you want. >> The thing that I've been saying is missing here is, what are you trying >> to do? I don't mean technically, I mean what is the end result for the >> user? Understanding this is critical, but even if I don't your problem >> can still be solved by using a session to serve as an arbitrary holder. >> If you've settled on this architecture, why not write such a generic >> service and move on? >> >> János Jarecsni wrote: >> >>> Hi, >>> >>> I looked everywhere for usage of request scope variables, but found >>> >> nothing >> >>> (maybe I'm impatient a bit :)... >>> Is it really that unrealistic to have two components in a page, one (A) >>> having an action link eventhandler where it would set some attribute for >>> >> the >> >>> request only (not the session!) and then component B could render itself >>> according to the attribute set by component A? >>> >>> I think it should be a piece of cake :) >>> >>> thx >>> Janos >>> >>> 2008/4/30 Filip S. Adamsen <[EMAIL PROTECTED]>: >>> >>> >>> >>>> Nope, you're exactly right. >>>> >>>> -Filip >>>> >>>> Blower, Andy skrev: >>>> >>>> This is not what I understood 'perthread' scope to be. I thought that >>>> >> it >> >>>>> meant that each thread using a service gets its own instance of the >>>>> >> service >> >>>>> to use, even though that instance may not be the same as any previous >>>>> instance it used. In other words, nothing to do with user sessions, >>>>> >> it's >> >>>>> just for services that are not thread safe and cannot be singletons. >>>>> >>>>> Have I got the wrong end of the stick here? >>>>> >>>>> -----Original Message----- >>>>> >>>>> >>>>>> From: Andy Huhn [mailto:[EMAIL PROTECTED] >>>>>> Sent: 29 April 2008 17:34 >>>>>> To: Tapestry users >>>>>> Subject: Re: page activation + components >>>>>> >>>>>> >>>>>> Hello, >>>>>> >>>>>> You can define the scope of each service...you can set that >>>>>> >> particular >> >>>>>> service to be tied to only one session. >>>>>> >>>>>> See http://tapestry.apache.org/tapestry5/tapestry-ioc/service.html, >>>>>> and >>>>>> search for "perthread". >>>>>> >>>>>> Thanks, >>>>>> Andy >>>>>> >>>>>> On Tue, 29 Apr 2008 18:02:52 +0200, "János Jarecsni" >>>>>> <[EMAIL PROTECTED]> wrote: >>>>>> >>>>>> >>>>>> >>>>>>> Hi there, >>>>>>> >>>>>>> the service approach (as I expected) is session-agnostic (and is >>>>>>> page-independent so concurrent users would interfere badly), >>>>>>> >>>>>>> >>>>>>> >>>>>> therefore is >>>>>> >>>>>> >>>>>> >>>>>>> not ok. >>>>>>> >>>>>>> I will now try the Environment approach... if that is session-aware >>>>>>> >>>>>>> >>>>>>> >>>>>> :) >>>>>> >>>>>> >>>>>> >>>>>>> thx again >>>>>>> janos >>>>>>> >>>>>>> 2008/4/29 János Jarecsni <[EMAIL PROTECTED]>: >>>>>>> >>>>>>> Hi Chris, >>>>>>> >>>>>>> >>>>>>>> even so you could help :) I want this kind of generic way of >>>>>>>> passing >>>>>>>> around information (component to component communication :)) so >>>>>>>> I'll >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> look >>>>>>> >>>>>>> >>>>>>> >>>>>>>> for the solutions Kristian and you outlined. >>>>>>>> >>>>>>>> thanks! >>>>>>>> >>>>>>>> cheers, >>>>>>>> janos >>>>>>>> >>>>>>>> 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: >>>>>>>> >>>>>>>> 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: users- >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> [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] >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> >>>> --------------------------------------------------------------------- >>>> >>>> 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]