Hi Chris, no! that's the essential part. the same page redisplayed. with the "News" component changing state and showing the requested news.
cheers, janos 2008/4/30 Chris Lewis <[EMAIL PROTECTED]>: > 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] > >