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]
>
>

Reply via email to