The Zone is just a component:

MyPage.java:

  @InjectComponent @Property private Zone myZone;

MyPage.tml:

  <t:yourcomponent zoneid="myZone.clientId" .../>

This passes the client element id of the Zone to your component.
Alternately, you could pass the Zone itself (so that an ActionLink
inside YourComponent could return zone.getBody() to re-render the
Zone).

On Tue, Aug 10, 2010 at 9:26 AM, Christian Koller
<christian.kol...@net-m.ch> wrote:
> Hi
>
> I'm not sure how I can pass an embedded zone in the template as a parameter. 
> I tried for several hours but wasn't able to do that.
> I can inject the zone to the page but then, how can I handle the zone down to 
> the sub component as parameter?
>
> I know about the publish params and inherit params, but it does not work with 
> a zone as parameter or maybe I do something wrong.
>
> I'm considering to put the zone to the session as a sso and then grab for it 
> in the needed sub component. What do you think about this solution?
>
>
> On 08.08.2010, at 18:33, Josh Canfield wrote:
>
>> It's generally not considered good design for a component to have knowledge 
>> of the design of it's container. This would be a universal design principle, 
>> not limited to tapestry.
>>
>> So if all you want to do is update a zone then couldn't you just pass the 
>> zone or zone id as a parameter to your component?
>>
>> -- Josh
>>
>> On Aug 8, 2010, at 7:49 AM, Christian Koller <christian.kol...@net-m.ch> 
>> wrote:
>>
>>> In an inner component I handle an ajax request from an action link and want 
>>> to update a zone in a outer component.
>>>
>>> As a work around I use the ComponentSource like:
>>>
>>> Object onActionFromMark(long wishedStartTime) {
>>> this.wishedStartTime = wishedStartTime;
>>> CalendarComponent cal = (CalendarComponent) 
>>> componentSource.getComponent("AppointmentPage:calendarCollection.cal0");
>>> return cal;
>>>
>>> Unfortunately I have to give the full id here with page name and so on.
>>> Is there no way to get an outer component to update a zone there?
>>>
>>>
>>> On 08.08.2010, at 16:37, Igor Drobiazko wrote:
>>>
>>>> Nope, this is not possible. What are you trying to do?
>>>>
>>>> On Sun, Aug 8, 2010 at 4:28 PM, Christian Koller
>>>> <christian.kol...@net-m.ch>wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> With the annotation @Component I can inject components which are defined 
>>>>> in
>>>>> the component's template, for example:
>>>>> @Component(id="myComponent")
>>>>> private ActionLink link;
>>>>>
>>>>> Is there a way to inject a component from the parent component? Something
>>>>> like:
>>>>> @Component(id="../myComponent")
>>>>> private ActionLink mark;
>>>>>
>>>>> Thank you
>>>>> chris
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Best regards,
>>>>
>>>> Igor Drobiazko
>>>> http://tapestry5.de
>>>
>>> Christian Koller
>>> Sofwareentwickler
>>>
>>> net mobile Schweiz AG
>>> Seestrasse 45
>>> CH ñ 8702 Zollikon
>>>
>>> Tel:     + 41 (0) 44 918 99 99
>>> Fax:     + 41 (0) 44 918 99 98
>>> Direkt:  + 41 (0) 44 918 99 72
>>>
>>> Mail: christian.kol...@net-m.ch
>>> Web:  www.net-m.ch
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>
> Christian Koller
> Sofwareentwickler
>
> net mobile Schweiz AG
> Seestrasse 45
> CH ñ 8702 Zollikon
>
> Tel:     + 41 (0) 44 918 99 99
> Fax:     + 41 (0) 44 918 99 98
> Direkt:  + 41 (0) 44 918 99 72
>
> Mail: christian.kol...@net-m.ch
> Web:  www.net-m.ch
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to