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]

Reply via email to