You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Geoff Callender <ge...@gmail.com> on 2011/06/14 15:17:46 UTC

Re: inject component from parent component

The link http://jumpstart.doublenegative.com.au/jumpstart/examples/ajaxcomponentscrud
has been replaced by:

	http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/componentscrud/persons


On 11/08/2010, at 11:32 AM, Geoff Callender wrote:

> It's best that the component knows nothing of what's around it. Instead, have it trigger an event to bubble up to its container and let the container decide what to do with it. Perhaps this example will help?
> 
> 	http://jumpstart.doublenegative.com.au/jumpstart/examples/ajaxcomponentscrud 
> 
> Geoff
> 
> On 11/08/2010, at 2:26 AM, Christian Koller 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 <ch...@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
>>>>> <ch...@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.koller@net-m.ch
>>>> Web:  www.net-m.ch
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@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.koller@net-m.ch
>> Web:  www.net-m.ch
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
> 


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