You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Rob Smeets <rb...@gmail.com> on 2008/03/07 10:59:45 UTC

Newbie Tapestry

Hi,

I am a newbie in Tapestry. Our organization is going to build a large scale
web application in 3 months time and me together with 2 other developers
have been asked to research and come up with a good web framework to use.
I suggested Tapestry but almost all the developers on our team rejected it
outright with reasons such as incompatibility issues with any major Tapestry
release, very bad documentation and no professionally written books on
tapestry. I googled and also learnt there is Tapestry 6 in the works which
would also be a whole new beast not compatible with all previous Tapestry
versions. Why this at all? I also hear Tapestry 5 has it's own built-in IoC
container. Is this necessary for a webframework? Isn't it an overkill, or in
otherwords an over engineered piece of software?
I learnt Wicket is an excellent web framework with a very good support plus
an active mailing list. From the way I'm seeing things, my team is gradually
leaning towards Wicket. Can someone here offer me an unbiased comparison of
Tapestry and Wicket I may use to change my team's mind?

Thanks,

Rob

RE: T5 : How to access to a Component Body ?

Posted by Kristian Marinkovic <kr...@porsche.co.at>.
hi Christophe,

you're right... there is a risk in decorating/using internal services... 
but this is why i write extensive tests to catch these changes :)

as you probably know, tapestry features static components/pages 
and dynamic behaviour. so components are stateless until they are
retrieved from the pool for rendering and populated with the values
from the persistent store. 

if you try to detect data modifications (just a guess - as i still dont 
know 
what you want to achieve ;))  you should look at your 
beans/entities/domain
objects your components are bound to .

g,
kris







Cordenier Christophe <Ch...@atosorigin.com> 
11.03.2008 13:55
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
Tapestry users <us...@tapestry.apache.org>
Kopie

Thema
RE: T5 : How to access to a Component Body ?







Hi Kristian,

Thank you for you're answer.

You're right, it's a part of the job the job if I want to get for example 
a state modification set during component rendering.
But what is missing with this approach is that "@Persist" annotation is 
associated to a component class.
Not to a component in a page...

Furthermore, I'm actually wondering if it's good idea to decorate a 
service that is declared to be part of the "internal" API. I did it too 
but I'm not sure it's the good approach with Tapestry 5. Considering the 
decorated service is renamed or refactored, the decoration method in 
"AppModule" won't be called anymore without any notice.

Christophe

-----Message d'origine-----
De : Kristian Marinkovic [mailto:kristian.marinkovic@porsche.co.at]
Envoyé : mardi 11 mars 2008 13:38
À : Tapestry users
Objet : RE: T5 : How to access to a Component Body ?

hi,

if you just want the state (persistent fields ....) you could decorate
the PersistentFieldManager. This service is used to persist all
fields with a @Persist annotation into the respective store.

i used this to implement a kind of conversation control

maybe you could elaborate more on what you want to accomplish...

g,
kris





Cordenier Christophe <Ch...@atosorigin.com>
11.03.2008 13:28
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
Tapestry users <us...@tapestry.apache.org>
Kopie

Thema
RE: T5 : How to access to a Component Body ?







Actually i'm wondering if it would be possible to monitor every elements
contained in a part of a Template.
Extracting persistent fields, parameters... Every information that defines
the state of the portion of template for a user request.

-----Message d'origine-----
De : Davor Hrg [mailto:hrgdavor@gmail.com]
Envoyé : mardi 11 mars 2008 11:57
À : Tapestry users
Objet : Re: T5 : How to access to a Component Body ?

explain what are zou trzing to achieve, maybe we can offer a different
approach..

Davor Hrg

On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
<Ch...@atosorigin.com> wrote:
> Thank you for your answer,
>
>  But actually my component must access its child in a dynamic way.
>  It will be used in different context for analysis purpose.
>
>  I've been searching for different ways to access a component body.
>
>  For exemple, by using "nestedId" at creation time by decorating the
PageElementFactory to identify if a component is contained in my
component, but the nestedId does not contain the id of the parent
component but is only suffixed to the container nested id.
>
>  By decorating ComponentPageElement and intercepting "addToBody" method
call for my component only, but it was not enough for the children and I
don't want to generalize the use of these kind of hooks or wrapping
mechanism because of the "internal" aspect of the PageElementFactory and
ComponentPageElement classes.
>
>  Best regards,
>  Christophe.
>
>  -----Message d'origine-----
>  De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  Envoyé : mardi 11 mars 2008 10:08
>  À : Tapestry users
>  Objet : Re: T5 : How to access to a Component Body ?
>
>
>
>  you can not access child components geenricaly,
>  but you can access blocks by id.
>
>  you can embed components
>  @Component TextField name; //component's class is decided here
>  and in template simply put:
>  <div t:id="name"/>
>
>
>  but to access a textfield as Field you can:
>  @InjectComponent private Field name;
>  and then component's class is resolved from the template
>  so in the template you must put:
>  <t:textfield id="name"/>
>
>
>  you can not use it like this:
>  @Component private Field name;
>  and in template
>  <t:textfield id="name"/>
>
>
>  Davor Hrg
>  On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  <Ch...@atosorigin.com> wrote:
>  > Hello,
>  >
>  >  I'm currently working on a component that needs to access the
content of its body to extract informations like parameters, or persistent
variable used by the components declared in its body.
>  >
>  >  Actually, the ComponentResources class allows me to access the
container of a component, but it appears that a child is not "contained
in" the component.
>  >  This should have helped me from a down-top view.
>  >
>  >  And I didn't find any method to access the body of a component.
>  >
>  >  Does anyone knows a way to access the children of a component ?
>  >
>  >  Best Regards,
>  >  Christophe Cordenier.
>  >
>  >
>  >  Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?
l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par
le secret professionnel. Si vous recevez ce message par erreur, merci d'en
avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du
message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe
Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien
que les meilleurs efforts soient faits pour maintenir cette transmission
exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard
et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage
r?sultant d'un virus transmis.
>  >
>  >  This e-mail and the documents attached are confidential and intended
solely for the addressee; it may also be privileged. If you receive this
e-mail in error, please notify the sender immediately and destroy it. As
its integrity cannot be secured on the Internet, the Atos Origin group
liability cannot be triggered for the message content. Although the sender
endeavours to maintain a computer virus-free network, the sender does not
warrant that this transmission is virus-free and will not be liable for
any damages resulting from any virus transmitted.
>  >
>  >
>  > ---------------------------------------------------------------------
>  >  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
>
>
>
>
>  Ce message et les pièces jointes sont confidentiels et réservés à
l'usage exclusif de ses destinataires. Il peut également être protégé par
le secret professionnel. Si vous recevez ce message par erreur, merci d'en
avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
message ne pouvant être assurée sur Internet, la responsabilité du groupe
Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien
que les meilleurs efforts soient faits pour maintenir cette transmission
exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard
et sa responsabilité ne saurait être recherchée pour tout dommage
résultant d'un virus transmis.
>
>
>
>  This e-mail and the documents attached are confidential and intended
solely for the addressee; it may also be privileged. If you receive this
e-mail in error, please notify the sender immediately and destroy it. As
its integrity cannot be secured on the Internet, the Atos Origin group
liability cannot be triggered for the message content. Although the sender
endeavours to maintain a computer virus-free network, the sender does not
warrant that this transmission is virus-free and will not be liable for
any damages resulting from any virus transmitted.
>
>
>  ---------------------------------------------------------------------
>  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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage
exclusif de ses destinataires. Il peut également être protégé par le
secret professionnel. Si vous recevez ce message par erreur, merci d'en
avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
message ne pouvant être assurée sur Internet, la responsabilité du groupe
Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien
que les meilleurs efforts soient faits pour maintenir cette transmission
exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard
et sa responsabilité ne saurait être recherchée pour tout dommage
résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended
solely for the addressee; it may also be privileged. If you receive this
e-mail in error, please notify the sender immediately and destroy it. As
its integrity cannot be secured on the Internet, the Atos Origin group
liability cannot be triggered for the message content. Although the sender
endeavours to maintain a computer virus-free network, the sender does not
warrant that this transmission is virus-free and will not be liable for
any damages resulting from any virus transmitted.


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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le 
secret professionnel. Si vous recevez ce message par erreur, merci d'en 
avertir immédiatement l'expéditeur et de le détruire. L'intégrité du 
message ne pouvant être assurée sur Internet, la responsabilité du groupe 
Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien 
que les meilleurs efforts soient faits pour maintenir cette transmission 
exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard 
et sa responsabilité ne saurait être recherchée pour tout dommage 
résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended 
solely for the addressee; it may also be privileged. If you receive this 
e-mail in error, please notify the sender immediately and destroy it. As 
its integrity cannot be secured on the Internet, the Atos Origin group 
liability cannot be triggered for the message content. Although the sender 
endeavours to maintain a computer virus-free network, the sender does not 
warrant that this transmission is virus-free and will not be liable for 
any damages resulting from any virus transmitted.


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



RE: T5 : How to access to a Component Body ?

Posted by Cordenier Christophe <Ch...@atosorigin.com>.
Hi Kristian,

Thank you for you're answer.

You're right, it's a part of the job the job if I want to get for example a state modification set during component rendering.
But what is missing with this approach is that "@Persist" annotation is associated to a component class.
Not to a component in a page...

Furthermore, I'm actually wondering if it's good idea to decorate a service that is declared to be part of the "internal" API. I did it too but I'm not sure it's the good approach with Tapestry 5. Considering the decorated service is renamed or refactored, the decoration method in "AppModule" won't be called anymore without any notice.

Christophe

-----Message d'origine-----
De : Kristian Marinkovic [mailto:kristian.marinkovic@porsche.co.at]
Envoyé : mardi 11 mars 2008 13:38
À : Tapestry users
Objet : RE: T5 : How to access to a Component Body ?

hi,

if you just want the state (persistent fields ....) you could decorate
the PersistentFieldManager. This service is used to persist all
fields with a @Persist annotation into the respective store.

i used this to implement a kind of conversation control

maybe you could elaborate more on what you want to accomplish...

g,
kris





Cordenier Christophe <Ch...@atosorigin.com>
11.03.2008 13:28
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
Tapestry users <us...@tapestry.apache.org>
Kopie

Thema
RE: T5 : How to access to a Component Body ?







Actually i'm wondering if it would be possible to monitor every elements
contained in a part of a Template.
Extracting persistent fields, parameters... Every information that defines
the state of the portion of template for a user request.

-----Message d'origine-----
De : Davor Hrg [mailto:hrgdavor@gmail.com]
Envoyé : mardi 11 mars 2008 11:57
À : Tapestry users
Objet : Re: T5 : How to access to a Component Body ?

explain what are zou trzing to achieve, maybe we can offer a different
approach..

Davor Hrg

On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
<Ch...@atosorigin.com> wrote:
> Thank you for your answer,
>
>  But actually my component must access its child in a dynamic way.
>  It will be used in different context for analysis purpose.
>
>  I've been searching for different ways to access a component body.
>
>  For exemple, by using "nestedId" at creation time by decorating the
PageElementFactory to identify if a component is contained in my
component, but the nestedId does not contain the id of the parent
component but is only suffixed to the container nested id.
>
>  By decorating ComponentPageElement and intercepting "addToBody" method
call for my component only, but it was not enough for the children and I
don't want to generalize the use of these kind of hooks or wrapping
mechanism because of the "internal" aspect of the PageElementFactory and
ComponentPageElement classes.
>
>  Best regards,
>  Christophe.
>
>  -----Message d'origine-----
>  De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  Envoyé : mardi 11 mars 2008 10:08
>  À : Tapestry users
>  Objet : Re: T5 : How to access to a Component Body ?
>
>
>
>  you can not access child components geenricaly,
>  but you can access blocks by id.
>
>  you can embed components
>  @Component TextField name; //component's class is decided here
>  and in template simply put:
>  <div t:id="name"/>
>
>
>  but to access a textfield as Field you can:
>  @InjectComponent private Field name;
>  and then component's class is resolved from the template
>  so in the template you must put:
>  <t:textfield id="name"/>
>
>
>  you can not use it like this:
>  @Component private Field name;
>  and in template
>  <t:textfield id="name"/>
>
>
>  Davor Hrg
>  On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  <Ch...@atosorigin.com> wrote:
>  > Hello,
>  >
>  >  I'm currently working on a component that needs to access the
content of its body to extract informations like parameters, or persistent
variable used by the components declared in its body.
>  >
>  >  Actually, the ComponentResources class allows me to access the
container of a component, but it appears that a child is not "contained
in" the component.
>  >  This should have helped me from a down-top view.
>  >
>  >  And I didn't find any method to access the body of a component.
>  >
>  >  Does anyone knows a way to access the children of a component ?
>  >
>  >  Best Regards,
>  >  Christophe Cordenier.
>  >
>  >
>  >  Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?
l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par
le secret professionnel. Si vous recevez ce message par erreur, merci d'en
avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du
message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe
Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien
que les meilleurs efforts soient faits pour maintenir cette transmission
exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard
et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage
r?sultant d'un virus transmis.
>  >
>  >  This e-mail and the documents attached are confidential and intended
solely for the addressee; it may also be privileged. If you receive this
e-mail in error, please notify the sender immediately and destroy it. As
its integrity cannot be secured on the Internet, the Atos Origin group
liability cannot be triggered for the message content. Although the sender
endeavours to maintain a computer virus-free network, the sender does not
warrant that this transmission is virus-free and will not be liable for
any damages resulting from any virus transmitted.
>  >
>  >
>  > ---------------------------------------------------------------------
>  >  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
>
>
>
>
>  Ce message et les pièces jointes sont confidentiels et réservés à
l'usage exclusif de ses destinataires. Il peut également être protégé par
le secret professionnel. Si vous recevez ce message par erreur, merci d'en
avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
message ne pouvant être assurée sur Internet, la responsabilité du groupe
Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien
que les meilleurs efforts soient faits pour maintenir cette transmission
exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard
et sa responsabilité ne saurait être recherchée pour tout dommage
résultant d'un virus transmis.
>
>
>
>  This e-mail and the documents attached are confidential and intended
solely for the addressee; it may also be privileged. If you receive this
e-mail in error, please notify the sender immediately and destroy it. As
its integrity cannot be secured on the Internet, the Atos Origin group
liability cannot be triggered for the message content. Although the sender
endeavours to maintain a computer virus-free network, the sender does not
warrant that this transmission is virus-free and will not be liable for
any damages resulting from any virus transmitted.
>
>
>  ---------------------------------------------------------------------
>  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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage
exclusif de ses destinataires. Il peut également être protégé par le
secret professionnel. Si vous recevez ce message par erreur, merci d'en
avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
message ne pouvant être assurée sur Internet, la responsabilité du groupe
Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien
que les meilleurs efforts soient faits pour maintenir cette transmission
exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard
et sa responsabilité ne saurait être recherchée pour tout dommage
résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended
solely for the addressee; it may also be privileged. If you receive this
e-mail in error, please notify the sender immediately and destroy it. As
its integrity cannot be secured on the Internet, the Atos Origin group
liability cannot be triggered for the message content. Although the sender
endeavours to maintain a computer virus-free network, the sender does not
warrant that this transmission is virus-free and will not be liable for
any damages resulting from any virus transmitted.


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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


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


RE: T5 : How to access to a Component Body ?

Posted by Kristian Marinkovic <kr...@porsche.co.at>.
hi,

if you just want the state (persistent fields ....) you could decorate
the PersistentFieldManager. This service is used to persist all 
fields with a @Persist annotation into the respective store.

i used this to implement a kind of conversation control

maybe you could elaborate more on what you want to accomplish...

g,
kris





Cordenier Christophe <Ch...@atosorigin.com> 
11.03.2008 13:28
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
Tapestry users <us...@tapestry.apache.org>
Kopie

Thema
RE: T5 : How to access to a Component Body ?







Actually i'm wondering if it would be possible to monitor every elements 
contained in a part of a Template.
Extracting persistent fields, parameters... Every information that defines 
the state of the portion of template for a user request.

-----Message d'origine-----
De : Davor Hrg [mailto:hrgdavor@gmail.com]
Envoyé : mardi 11 mars 2008 11:57
À : Tapestry users
Objet : Re: T5 : How to access to a Component Body ?

explain what are zou trzing to achieve, maybe we can offer a different
approach..

Davor Hrg

On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
<Ch...@atosorigin.com> wrote:
> Thank you for your answer,
>
>  But actually my component must access its child in a dynamic way.
>  It will be used in different context for analysis purpose.
>
>  I've been searching for different ways to access a component body.
>
>  For exemple, by using "nestedId" at creation time by decorating the 
PageElementFactory to identify if a component is contained in my 
component, but the nestedId does not contain the id of the parent 
component but is only suffixed to the container nested id.
>
>  By decorating ComponentPageElement and intercepting "addToBody" method 
call for my component only, but it was not enough for the children and I 
don't want to generalize the use of these kind of hooks or wrapping 
mechanism because of the "internal" aspect of the PageElementFactory and 
ComponentPageElement classes.
>
>  Best regards,
>  Christophe.
>
>  -----Message d'origine-----
>  De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  Envoyé : mardi 11 mars 2008 10:08
>  À : Tapestry users
>  Objet : Re: T5 : How to access to a Component Body ?
>
>
>
>  you can not access child components geenricaly,
>  but you can access blocks by id.
>
>  you can embed components
>  @Component TextField name; //component's class is decided here
>  and in template simply put:
>  <div t:id="name"/>
>
>
>  but to access a textfield as Field you can:
>  @InjectComponent private Field name;
>  and then component's class is resolved from the template
>  so in the template you must put:
>  <t:textfield id="name"/>
>
>
>  you can not use it like this:
>  @Component private Field name;
>  and in template
>  <t:textfield id="name"/>
>
>
>  Davor Hrg
>  On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  <Ch...@atosorigin.com> wrote:
>  > Hello,
>  >
>  >  I'm currently working on a component that needs to access the 
content of its body to extract informations like parameters, or persistent 
variable used by the components declared in its body.
>  >
>  >  Actually, the ComponentResources class allows me to access the 
container of a component, but it appears that a child is not "contained 
in" the component.
>  >  This should have helped me from a down-top view.
>  >
>  >  And I didn't find any method to access the body of a component.
>  >
>  >  Does anyone knows a way to access the children of a component ?
>  >
>  >  Best Regards,
>  >  Christophe Cordenier.
>  >
>  >
>  >  Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? 
l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par 
le secret professionnel. Si vous recevez ce message par erreur, merci d'en 
avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du 
message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe 
Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien 
que les meilleurs efforts soient faits pour maintenir cette transmission 
exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard 
et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage 
r?sultant d'un virus transmis.
>  >
>  >  This e-mail and the documents attached are confidential and intended 
solely for the addressee; it may also be privileged. If you receive this 
e-mail in error, please notify the sender immediately and destroy it. As 
its integrity cannot be secured on the Internet, the Atos Origin group 
liability cannot be triggered for the message content. Although the sender 
endeavours to maintain a computer virus-free network, the sender does not 
warrant that this transmission is virus-free and will not be liable for 
any damages resulting from any virus transmitted.
>  >
>  >
>  > ---------------------------------------------------------------------
>  >  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
>
>
>
>
>  Ce message et les pièces jointes sont confidentiels et réservés à 
l'usage exclusif de ses destinataires. Il peut également être protégé par 
le secret professionnel. Si vous recevez ce message par erreur, merci d'en 
avertir immédiatement l'expéditeur et de le détruire. L'intégrité du 
message ne pouvant être assurée sur Internet, la responsabilité du groupe 
Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien 
que les meilleurs efforts soient faits pour maintenir cette transmission 
exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard 
et sa responsabilité ne saurait être recherchée pour tout dommage 
résultant d'un virus transmis.
>
>
>
>  This e-mail and the documents attached are confidential and intended 
solely for the addressee; it may also be privileged. If you receive this 
e-mail in error, please notify the sender immediately and destroy it. As 
its integrity cannot be secured on the Internet, the Atos Origin group 
liability cannot be triggered for the message content. Although the sender 
endeavours to maintain a computer virus-free network, the sender does not 
warrant that this transmission is virus-free and will not be liable for 
any damages resulting from any virus transmitted.
>
>
>  ---------------------------------------------------------------------
>  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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le 
secret professionnel. Si vous recevez ce message par erreur, merci d'en 
avertir immédiatement l'expéditeur et de le détruire. L'intégrité du 
message ne pouvant être assurée sur Internet, la responsabilité du groupe 
Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien 
que les meilleurs efforts soient faits pour maintenir cette transmission 
exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard 
et sa responsabilité ne saurait être recherchée pour tout dommage 
résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended 
solely for the addressee; it may also be privileged. If you receive this 
e-mail in error, please notify the sender immediately and destroy it. As 
its integrity cannot be secured on the Internet, the Atos Origin group 
liability cannot be triggered for the message content. Although the sender 
endeavours to maintain a computer virus-free network, the sender does not 
warrant that this transmission is virus-free and will not be liable for 
any damages resulting from any virus transmitted.


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



RE: T5 : How to access to a Component Body ?

Posted by Cordenier Christophe <Ch...@atosorigin.com>.
Actually i'm wondering if it would be possible to monitor every elements contained in a part of a Template.
Extracting persistent fields, parameters... Every information that defines the state of the portion of template for a user request.

-----Message d'origine-----
De : Davor Hrg [mailto:hrgdavor@gmail.com]
Envoyé : mardi 11 mars 2008 11:57
À : Tapestry users
Objet : Re: T5 : How to access to a Component Body ?

explain what are zou trzing to achieve, maybe we can offer a different
approach..

Davor Hrg

On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
<Ch...@atosorigin.com> wrote:
> Thank you for your answer,
>
>  But actually my component must access its child in a dynamic way.
>  It will be used in different context for analysis purpose.
>
>  I've been searching for different ways to access a component body.
>
>  For exemple, by using "nestedId" at creation time by decorating the PageElementFactory to identify if a component is contained in my component, but the nestedId does not contain the id of the parent component but is only suffixed to the container nested id.
>
>  By decorating ComponentPageElement and intercepting "addToBody" method call for my component only, but it was not enough for the children and I don't want to generalize the use of these kind of hooks or wrapping mechanism because of the "internal" aspect of the PageElementFactory and ComponentPageElement classes.
>
>  Best regards,
>  Christophe.
>
>  -----Message d'origine-----
>  De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  Envoyé : mardi 11 mars 2008 10:08
>  À : Tapestry users
>  Objet : Re: T5 : How to access to a Component Body ?
>
>
>
>  you can not access child components geenricaly,
>  but you can access blocks by id.
>
>  you can embed components
>  @Component TextField name; //component's class is decided here
>  and in template simply put:
>  <div t:id="name"/>
>
>
>  but to access a textfield as Field you can:
>  @InjectComponent private Field name;
>  and then component's class is resolved from the template
>  so in the template you must put:
>  <t:textfield id="name"/>
>
>
>  you can not use it like this:
>  @Component private Field name;
>  and in template
>  <t:textfield id="name"/>
>
>
>  Davor Hrg
>  On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  <Ch...@atosorigin.com> wrote:
>  > Hello,
>  >
>  >  I'm currently working on a component that needs to access the content of its body to extract informations like parameters, or persistent variable used by the components declared in its body.
>  >
>  >  Actually, the ComponentResources class allows me to access the container of a component, but it appears that a child is not "contained in" the component.
>  >  This should have helped me from a down-top view.
>  >
>  >  And I didn't find any method to access the body of a component.
>  >
>  >  Does anyone knows a way to access the children of a component ?
>  >
>  >  Best Regards,
>  >  Christophe Cordenier.
>  >
>  >
>  >  Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
>  >
>  >  This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>  >
>  >
>  >  ---------------------------------------------------------------------
>  >  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
>
>
>
>
>  Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>
>
>
>  This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>
>
>  ---------------------------------------------------------------------
>  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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


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


Re: T5 : How to access to a Component Body ?

Posted by Francois Armand <fa...@linagora.com>.
Howard Lewis Ship wrote:
> You should think not of the Tabs conponent "controlling" the Tab
> components, but of all of them working together.
>
> The Tabs component can place an object into the Environment.
>
> The Tab components can retrieve that object, to "register" themselves
> so that the Tabs can render the correct markup.
>
> This is the relationship between Form and TextField (and friends).
>
>   

A long time ago, I proposed this kind of solution, with component 
registering themselves to a master component (it was also for a tab-like 
component). It was for an old version of t5, but the code should be 
relevant :
http://markmail.org/search/list:org.apache.tapestry.users#query:list%3Aorg.apache.tapestry.users%20date%3A200708%20order%3Adate-forward+page:1+mid:qgywhbudcryvz2ks+state:results

-- 
Francois Armand
Etudes & Développements J2EE
Groupe Linagora - http://www.linagora.com
Tél.: +33 (0)1 58 18 68 28
-----------
InterLDAP - http://interldap.org 
FederID - http://www.federid.org/
Open Source identities management and federation


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


Re: T5 : How to access to a Component Body ?

Posted by Davor Hrg <hr...@gmail.com>.
A tab component mixin would fit here nicely :)
so a wrapper does not have to be arround every tab.

Davor Hrg

On Tue, Mar 11, 2008 at 3:34 PM, Howard Lewis Ship <hl...@gmail.com> wrote:
> You should think not of the Tabs conponent "controlling" the Tab
>  components, but of all of them working together.
>
>  The Tabs component can place an object into the Environment.
>
>  The Tab components can retrieve that object, to "register" themselves
>  so that the Tabs can render the correct markup.
>
>  This is the relationship between Form and TextField (and friends).
>
>
>
>
>  On Tue, Mar 11, 2008 at 6:31 AM, Davor Hrg <hr...@gmail.com> wrote:
>  > actualy,
>  >  you need not even do anything on the server side for such tabs,
>  >
>  >  this can be easily achieved with a small javascript function.
>  >  go through all children and generate tab controls taking title attribute
>  >  as ctrl text:
>  >
>  >  child.getAttribute("title");
>  >
>  >  for example I have a small hacked up js just for it
>  >  it uses label instead title
>  >
>  >
>  >  var TapestryUtil = {
>  >     createTabs: function(id){
>  >         var elem = $(id);
>  >         var selected = elem.getAttribute("selected");
>  >         var tabs = document.createElement("DIV");
>  >         tabs.className = "minitab";
>  >         var cont = document.createElement("DIV");
>  >         cont.className = "minitab_content";
>  >         var ch;
>  >         while(ch = elem.firstChild){
>  >             elem.removeChild(ch);
>  >             cont.appendChild(ch);
>  >             var code = ch.getAttribute("code");
>  >             var label = ch.getAttribute("label");
>  >
>  >                 var tab = document.createElement("A");
>  >                 tab.href="#"+(code||"");
>  >                 tab.className = "minitab";
>  >                 tab.innerHTML = label || code || "unlabelled";
>  >             tab._refContent = ch;
>  >             tab.onclick = tabClick;
>  >
>  >             if(code != null && selected != "null" && selected == code){
>  >                 ch.style.display == "";
>  >             }else if(selected != null)
>  >                 ch.style.display == "none";
>  >
>  >             if(ch.style.display != "none") tab.className += " selected_minitab";
>  >             tabs.appendChild(tab);
>  >         }
>  >         elem.appendChild(tabs);
>  >         elem.appendChild(cont);
>  >
>  >         function tabClick(){
>  >             var current = this;
>  >             this.blur();
>  >             var ch = current.parentNode.firstChild;
>  >             while(ch){
>  >                 if(ch != current){
>  >                         Element.removeClassName(ch,"selected_minitab");
>  >                         ch._refContent.style.display = "none";
>  >                 }else{
>  >                         Element.addClassName(ch,"selected_minitab");
>  >                         ch._refContent.style.display = "";
>  >                 }
>  >                 ch = ch.nextSibling;
>  >             }
>  >             return false;
>  >         }
>  >     }
>  >
>  >
>  >  };
>  >
>  >  Davor Hrg
>  >
>  >
>  >
>  >
>  >  On Tue, Mar 11, 2008 at 1:15 PM, David Marquis <dm...@neopeak.com> wrote:
>  >  > Hi,
>  >  >
>  >  >  He's having the same problem I had some time ago.
>  >  >  Suppose I want to create a Tab Component and I want to be able to
>  >  >  define it like this in the templates:
>  >  >
>  >  >  <t:tabs t:id="myTabs">
>  >  >    <t:tab t:id="tabOne" title="First tab">
>  >  >        <h1>Body of tab1</h1>
>  >  >        <p>Continuing body...</p>
>  >  >    </t:tab>
>  >  >    <t:tab t:id="tabTwo" title="Second tab">
>  >  >        <h1>Body of tab2</h1>
>  >  >        <p>Continuing body...</p>
>  >  >    </t:tab>
>  >  >  </t:tabs>
>  >  >
>  >  >  If would then like to 'render' this about that way:
>  >  >
>  >  >  <div class="tabs">
>  >  >     <ul class="tabTitles">
>  >  >        <li><a href="." onclick="switchtabs(1);">First tab</li>
>  >  >        <li><a href="." onclick="switchtabs(2);">Second tab</li>
>  >  >     </ul>
>  >  >     <div id="tabOne" class="tab selected">
>  >  >        <h1>Body of tab1</h1>
>  >  >        <p>Continuing body...</p>
>  >  >     </div>
>  >  >     <div id="tabTwo" class="tab">
>  >  >        <h1>Body of tab2</h1>
>  >  >        <p>Continuing body...</p>
>  >  >     </div>
>  >  >  </div>
>  >  >
>  >  >  This is, I think, the most natural way of expressing tabs.
>  >  >  But such a thing is not possible, because the Tabs component cannot
>  >  >  accessing its child Tag components dynamically.
>  >  >  More: if you provide a body for a component (like above), you cannot
>  >  >  provide a template for this same component.
>  >  >
>  >  >  I haven't found a way to implement such a component, and I think I had
>  >  >  about the same initial problem as Christopher : A component cannot
>  >  >  easily access its 'children' defined in the base template, build an
>  >  >  internal model from that, and render using this model and an internal
>  >  >  template.
>  >  >
>  >  >  --
>  >  >  David
>  >  >
>  >  >
>  >  >
>  >  >  On 11-Mar-08, at 6:57 AM, Davor Hrg wrote:
>  >  >
>  >  >  > explain what are zou trzing to achieve, maybe we can offer a different
>  >  >  > approach..
>  >  >  >
>  >  >  > Davor Hrg
>  >  >  >
>  >  >  > On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
>  >  >  > <Ch...@atosorigin.com> wrote:
>  >  >  >> Thank you for your answer,
>  >  >  >>
>  >  >  >> But actually my component must access its child in a dynamic way.
>  >  >  >> It will be used in different context for analysis purpose.
>  >  >  >>
>  >  >  >> I've been searching for different ways to access a component body.
>  >  >  >>
>  >  >  >> For exemple, by using "nestedId" at creation time by decorating the
>  >  >  >> PageElementFactory to identify if a component is contained in my
>  >  >  >> component, but the nestedId does not contain the id of the parent
>  >  >  >> component but is only suffixed to the container nested id.
>  >  >  >>
>  >  >  >> By decorating ComponentPageElement and intercepting "addToBody"
>  >  >  >> method call for my component only, but it was not enough for the
>  >  >  >> children and I don't want to generalize the use of these kind of
>  >  >  >> hooks or wrapping mechanism because of the "internal" aspect of the
>  >  >  >> PageElementFactory and ComponentPageElement classes.
>  >  >  >>
>  >  >  >> Best regards,
>  >  >  >> Christophe.
>  >  >  >>
>  >  >  >> -----Message d'origine-----
>  >  >  >> De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  >  >  >> Envoyé : mardi 11 mars 2008 10:08
>  >  >  >> À : Tapestry users
>  >  >  >> Objet : Re: T5 : How to access to a Component Body ?
>  >  >  >>
>  >  >  >>
>  >  >  >>
>  >  >  >> you can not access child components geenricaly,
>  >  >  >> but you can access blocks by id.
>  >  >  >>
>  >  >  >> you can embed components
>  >  >  >> @Component TextField name; //component's class is decided here
>  >  >  >> and in template simply put:
>  >  >  >> <div t:id="name"/>
>  >  >  >>
>  >  >  >>
>  >  >  >> but to access a textfield as Field you can:
>  >  >  >> @InjectComponent private Field name;
>  >  >  >> and then component's class is resolved from the template
>  >  >  >> so in the template you must put:
>  >  >  >> <t:textfield id="name"/>
>  >  >  >>
>  >  >  >>
>  >  >  >> you can not use it like this:
>  >  >  >> @Component private Field name;
>  >  >  >> and in template
>  >  >  >> <t:textfield id="name"/>
>  >  >  >>
>  >  >  >>
>  >  >  >> Davor Hrg
>  >  >  >> On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  >  >  >> <Ch...@atosorigin.com> wrote:
>  >  >  >>> Hello,
>  >  >  >>>
>  >  >  >>> I'm currently working on a component that needs to access the
>  >  >  >>> content of its body to extract informations like parameters, or
>  >  >  >>> persistent variable used by the components declared in its body.
>  >  >  >>>
>  >  >  >>> Actually, the ComponentResources class allows me to access the
>  >  >  >>> container of a component, but it appears that a child is not
>  >  >  >>> "contained in" the component.
>  >  >  >>> This should have helped me from a down-top view.
>  >  >  >>>
>  >  >  >>> And I didn't find any method to access the body of a component.
>  >  >  >>>
>  >  >  >>> Does anyone knows a way to access the children of a component ?
>  >  >  >>>
>  >  >  >>> Best Regards,
>  >  >  >>> Christophe Cordenier.
>  >  >  >>>
>  >  >  >>>
>  >  >  >>> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?
>  >  >  >>> l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?
>  >  >  >>> g? par le secret professionnel. Si vous recevez ce message par
>  >  >  >>> erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?
>  >  >  >>> truire. L'int?grit? du message ne pouvant ?tre assur?e sur
>  >  >  >>> Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre
>  >  >  >>> recherch?e quant au contenu de ce message. Bien que les meilleurs
>  >  >  >>> efforts soient faits pour maintenir cette transmission exempte de
>  >  >  >>> tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et
>  >  >  >>> sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?
>  >  >  >>> sultant d'un virus transmis.
>  >  >  >>>
>  >  >  >>> This e-mail and the documents attached are confidential and
>  >  >  >>> intended solely for the addressee; it may also be privileged. If
>  >  >  >>> you receive this e-mail in error, please notify the sender
>  >  >  >>> immediately and destroy it. As its integrity cannot be secured on
>  >  >  >>> the Internet, the Atos Origin group liability cannot be triggered
>  >  >  >>> for the message content. Although the sender endeavours to
>  >  >  >>> maintain a computer virus-free network, the sender does not
>  >  >  >>> warrant that this transmission is virus-free and will not be
>  >  >  >>> liable for any damages resulting from any virus transmitted.
>  >  >  >>>
>  >  >  >>>
>  >  >  >>> ---------------------------------------------------------------------
>  >  >  >>> 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
>  >  >  >>
>  >  >  >>
>  >  >  >>
>  >  >  >>
>  >  >  >> Ce message et les pièces jointes sont confidentiels et réservés à
>  >  >  >> l'usage exclusif de ses destinataires. Il peut également être
>  >  >  >> protégé par le secret professionnel. Si vous recevez ce message par
>  >  >  >> erreur, merci d'en avertir immédiatement l'expéditeur et de le
>  >  >  >> détruire. L'intégrité du message ne pouvant être assurée sur
>  >  >  >> Internet, la responsabilité du groupe Atos Origin ne pourra être
>  >  >  >> recherchée quant au contenu de ce message. Bien que les meilleurs
>  >  >  >> efforts soient faits pour maintenir cette transmission exempte de
>  >  >  >> tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa
>  >  >  >> responsabilité ne saurait être recherchée pour tout dommage
>  >  >  >> résultant d'un virus transmis.
>  >  >  >>
>  >  >  >>
>  >  >  >>
>  >  >  >> This e-mail and the documents attached are confidential and
>  >  >  >> intended solely for the addressee; it may also be privileged. If
>  >  >  >> you receive this e-mail in error, please notify the sender
>  >  >  >> immediately and destroy it. As its integrity cannot be secured on
>  >  >  >> the Internet, the Atos Origin group liability cannot be triggered
>  >  >  >> for the message content. Although the sender endeavours to maintain
>  >  >  >> a computer virus-free network, the sender does not warrant that
>  >  >  >> this transmission is virus-free and will not be liable for any
>  >  >  >> damages resulting from any virus transmitted.
>  >  >  >>
>  >  >  >>
>  >  >  >> ---------------------------------------------------------------------
>  >  >  >> 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
>  >  >  >
>  >  >
>  >  >
>  >
>  >  ---------------------------------------------------------------------
>  >  To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>  >  For additional commands, e-mail: users-help@tapestry.apache.org
>  >
>  >
>
>
>
>  --
>  Howard M. Lewis Ship
>
>  Creator Apache Tapestry and Apache HiveMind
>
>
>
>  ---------------------------------------------------------------------
>  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


T5 : How to access to a Component Body in a generic way ?

Posted by Cordenier Christophe <Ch...@atosorigin.com>.
Actually i'm wondering if it would be possible to monitor every elements contained in a part of a Template.
Extracting persistent fields, parameters... Every information that defines the state of the portion of template for a user request.

-----Message d'origine-----
De : Howard Lewis Ship [mailto:hlship@gmail.com]
Envoyé : mardi 11 mars 2008 15:34
À : Tapestry users
Objet : Re: T5 : How to access to a Component Body ?

You should think not of the Tabs conponent "controlling" the Tab
components, but of all of them working together.

The Tabs component can place an object into the Environment.

The Tab components can retrieve that object, to "register" themselves
so that the Tabs can render the correct markup.

This is the relationship between Form and TextField (and friends).


On Tue, Mar 11, 2008 at 6:31 AM, Davor Hrg <hr...@gmail.com> wrote:
> actualy,
>  you need not even do anything on the server side for such tabs,
>
>  this can be easily achieved with a small javascript function.
>  go through all children and generate tab controls taking title attribute
>  as ctrl text:
>
>  child.getAttribute("title");
>
>  for example I have a small hacked up js just for it
>  it uses label instead title
>
>
>  var TapestryUtil = {
>     createTabs: function(id){
>         var elem = $(id);
>         var selected = elem.getAttribute("selected");
>         var tabs = document.createElement("DIV");
>         tabs.className = "minitab";
>         var cont = document.createElement("DIV");
>         cont.className = "minitab_content";
>         var ch;
>         while(ch = elem.firstChild){
>             elem.removeChild(ch);
>             cont.appendChild(ch);
>             var code = ch.getAttribute("code");
>             var label = ch.getAttribute("label");
>
>                 var tab = document.createElement("A");
>                 tab.href="#"+(code||"");
>                 tab.className = "minitab";
>                 tab.innerHTML = label || code || "unlabelled";
>             tab._refContent = ch;
>             tab.onclick = tabClick;
>
>             if(code != null && selected != "null" && selected == code){
>                 ch.style.display == "";
>             }else if(selected != null)
>                 ch.style.display == "none";
>
>             if(ch.style.display != "none") tab.className += " selected_minitab";
>             tabs.appendChild(tab);
>         }
>         elem.appendChild(tabs);
>         elem.appendChild(cont);
>
>         function tabClick(){
>             var current = this;
>             this.blur();
>             var ch = current.parentNode.firstChild;
>             while(ch){
>                 if(ch != current){
>                         Element.removeClassName(ch,"selected_minitab");
>                         ch._refContent.style.display = "none";
>                 }else{
>                         Element.addClassName(ch,"selected_minitab");
>                         ch._refContent.style.display = "";
>                 }
>                 ch = ch.nextSibling;
>             }
>             return false;
>         }
>     }
>
>
>  };
>
>  Davor Hrg
>
>
>
>
>  On Tue, Mar 11, 2008 at 1:15 PM, David Marquis <dm...@neopeak.com> wrote:
>  > Hi,
>  >
>  >  He's having the same problem I had some time ago.
>  >  Suppose I want to create a Tab Component and I want to be able to
>  >  define it like this in the templates:
>  >
>  >  <t:tabs t:id="myTabs">
>  >    <t:tab t:id="tabOne" title="First tab">
>  >        <h1>Body of tab1</h1>
>  >        <p>Continuing body...</p>
>  >    </t:tab>
>  >    <t:tab t:id="tabTwo" title="Second tab">
>  >        <h1>Body of tab2</h1>
>  >        <p>Continuing body...</p>
>  >    </t:tab>
>  >  </t:tabs>
>  >
>  >  If would then like to 'render' this about that way:
>  >
>  >  <div class="tabs">
>  >     <ul class="tabTitles">
>  >        <li><a href="." onclick="switchtabs(1);">First tab</li>
>  >        <li><a href="." onclick="switchtabs(2);">Second tab</li>
>  >     </ul>
>  >     <div id="tabOne" class="tab selected">
>  >        <h1>Body of tab1</h1>
>  >        <p>Continuing body...</p>
>  >     </div>
>  >     <div id="tabTwo" class="tab">
>  >        <h1>Body of tab2</h1>
>  >        <p>Continuing body...</p>
>  >     </div>
>  >  </div>
>  >
>  >  This is, I think, the most natural way of expressing tabs.
>  >  But such a thing is not possible, because the Tabs component cannot
>  >  accessing its child Tag components dynamically.
>  >  More: if you provide a body for a component (like above), you cannot
>  >  provide a template for this same component.
>  >
>  >  I haven't found a way to implement such a component, and I think I had
>  >  about the same initial problem as Christopher : A component cannot
>  >  easily access its 'children' defined in the base template, build an
>  >  internal model from that, and render using this model and an internal
>  >  template.
>  >
>  >  --
>  >  David
>  >
>  >
>  >
>  >  On 11-Mar-08, at 6:57 AM, Davor Hrg wrote:
>  >
>  >  > explain what are zou trzing to achieve, maybe we can offer a different
>  >  > approach..
>  >  >
>  >  > Davor Hrg
>  >  >
>  >  > On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
>  >  > <Ch...@atosorigin.com> wrote:
>  >  >> Thank you for your answer,
>  >  >>
>  >  >> But actually my component must access its child in a dynamic way.
>  >  >> It will be used in different context for analysis purpose.
>  >  >>
>  >  >> I've been searching for different ways to access a component body.
>  >  >>
>  >  >> For exemple, by using "nestedId" at creation time by decorating the
>  >  >> PageElementFactory to identify if a component is contained in my
>  >  >> component, but the nestedId does not contain the id of the parent
>  >  >> component but is only suffixed to the container nested id.
>  >  >>
>  >  >> By decorating ComponentPageElement and intercepting "addToBody"
>  >  >> method call for my component only, but it was not enough for the
>  >  >> children and I don't want to generalize the use of these kind of
>  >  >> hooks or wrapping mechanism because of the "internal" aspect of the
>  >  >> PageElementFactory and ComponentPageElement classes.
>  >  >>
>  >  >> Best regards,
>  >  >> Christophe.
>  >  >>
>  >  >> -----Message d'origine-----
>  >  >> De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  >  >> Envoyé : mardi 11 mars 2008 10:08
>  >  >> À : Tapestry users
>  >  >> Objet : Re: T5 : How to access to a Component Body ?
>  >  >>
>  >  >>
>  >  >>
>  >  >> you can not access child components geenricaly,
>  >  >> but you can access blocks by id.
>  >  >>
>  >  >> you can embed components
>  >  >> @Component TextField name; //component's class is decided here
>  >  >> and in template simply put:
>  >  >> <div t:id="name"/>
>  >  >>
>  >  >>
>  >  >> but to access a textfield as Field you can:
>  >  >> @InjectComponent private Field name;
>  >  >> and then component's class is resolved from the template
>  >  >> so in the template you must put:
>  >  >> <t:textfield id="name"/>
>  >  >>
>  >  >>
>  >  >> you can not use it like this:
>  >  >> @Component private Field name;
>  >  >> and in template
>  >  >> <t:textfield id="name"/>
>  >  >>
>  >  >>
>  >  >> Davor Hrg
>  >  >> On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  >  >> <Ch...@atosorigin.com> wrote:
>  >  >>> Hello,
>  >  >>>
>  >  >>> I'm currently working on a component that needs to access the
>  >  >>> content of its body to extract informations like parameters, or
>  >  >>> persistent variable used by the components declared in its body.
>  >  >>>
>  >  >>> Actually, the ComponentResources class allows me to access the
>  >  >>> container of a component, but it appears that a child is not
>  >  >>> "contained in" the component.
>  >  >>> This should have helped me from a down-top view.
>  >  >>>
>  >  >>> And I didn't find any method to access the body of a component.
>  >  >>>
>  >  >>> Does anyone knows a way to access the children of a component ?
>  >  >>>
>  >  >>> Best Regards,
>  >  >>> Christophe Cordenier.
>  >  >>>
>  >  >>>
>  >  >>> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?
>  >  >>> l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?
>  >  >>> g? par le secret professionnel. Si vous recevez ce message par
>  >  >>> erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?
>  >  >>> truire. L'int?grit? du message ne pouvant ?tre assur?e sur
>  >  >>> Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre
>  >  >>> recherch?e quant au contenu de ce message. Bien que les meilleurs
>  >  >>> efforts soient faits pour maintenir cette transmission exempte de
>  >  >>> tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et
>  >  >>> sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?
>  >  >>> sultant d'un virus transmis.
>  >  >>>
>  >  >>> This e-mail and the documents attached are confidential and
>  >  >>> intended solely for the addressee; it may also be privileged. If
>  >  >>> you receive this e-mail in error, please notify the sender
>  >  >>> immediately and destroy it. As its integrity cannot be secured on
>  >  >>> the Internet, the Atos Origin group liability cannot be triggered
>  >  >>> for the message content. Although the sender endeavours to
>  >  >>> maintain a computer virus-free network, the sender does not
>  >  >>> warrant that this transmission is virus-free and will not be
>  >  >>> liable for any damages resulting from any virus transmitted.
>  >  >>>
>  >  >>>
>  >  >>> ---------------------------------------------------------------------
>  >  >>> 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
>  >  >>
>  >  >>
>  >  >>
>  >  >>
>  >  >> Ce message et les pièces jointes sont confidentiels et réservés à
>  >  >> l'usage exclusif de ses destinataires. Il peut également être
>  >  >> protégé par le secret professionnel. Si vous recevez ce message par
>  >  >> erreur, merci d'en avertir immédiatement l'expéditeur et de le
>  >  >> détruire. L'intégrité du message ne pouvant être assurée sur
>  >  >> Internet, la responsabilité du groupe Atos Origin ne pourra être
>  >  >> recherchée quant au contenu de ce message. Bien que les meilleurs
>  >  >> efforts soient faits pour maintenir cette transmission exempte de
>  >  >> tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa
>  >  >> responsabilité ne saurait être recherchée pour tout dommage
>  >  >> résultant d'un virus transmis.
>  >  >>
>  >  >>
>  >  >>
>  >  >> This e-mail and the documents attached are confidential and
>  >  >> intended solely for the addressee; it may also be privileged. If
>  >  >> you receive this e-mail in error, please notify the sender
>  >  >> immediately and destroy it. As its integrity cannot be secured on
>  >  >> the Internet, the Atos Origin group liability cannot be triggered
>  >  >> for the message content. Although the sender endeavours to maintain
>  >  >> a computer virus-free network, the sender does not warrant that
>  >  >> this transmission is virus-free and will not be liable for any
>  >  >> damages resulting from any virus transmitted.
>  >  >>
>  >  >>
>  >  >> ---------------------------------------------------------------------
>  >  >> 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
>  >  >
>  >
>  >
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>  For additional commands, e-mail: users-help@tapestry.apache.org
>
>



--
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


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


Re: T5 : How to access to a Component Body ?

Posted by Howard Lewis Ship <hl...@gmail.com>.
You should think not of the Tabs conponent "controlling" the Tab
components, but of all of them working together.

The Tabs component can place an object into the Environment.

The Tab components can retrieve that object, to "register" themselves
so that the Tabs can render the correct markup.

This is the relationship between Form and TextField (and friends).


On Tue, Mar 11, 2008 at 6:31 AM, Davor Hrg <hr...@gmail.com> wrote:
> actualy,
>  you need not even do anything on the server side for such tabs,
>
>  this can be easily achieved with a small javascript function.
>  go through all children and generate tab controls taking title attribute
>  as ctrl text:
>
>  child.getAttribute("title");
>
>  for example I have a small hacked up js just for it
>  it uses label instead title
>
>
>  var TapestryUtil = {
>     createTabs: function(id){
>         var elem = $(id);
>         var selected = elem.getAttribute("selected");
>         var tabs = document.createElement("DIV");
>         tabs.className = "minitab";
>         var cont = document.createElement("DIV");
>         cont.className = "minitab_content";
>         var ch;
>         while(ch = elem.firstChild){
>             elem.removeChild(ch);
>             cont.appendChild(ch);
>             var code = ch.getAttribute("code");
>             var label = ch.getAttribute("label");
>
>                 var tab = document.createElement("A");
>                 tab.href="#"+(code||"");
>                 tab.className = "minitab";
>                 tab.innerHTML = label || code || "unlabelled";
>             tab._refContent = ch;
>             tab.onclick = tabClick;
>
>             if(code != null && selected != "null" && selected == code){
>                 ch.style.display == "";
>             }else if(selected != null)
>                 ch.style.display == "none";
>
>             if(ch.style.display != "none") tab.className += " selected_minitab";
>             tabs.appendChild(tab);
>         }
>         elem.appendChild(tabs);
>         elem.appendChild(cont);
>
>         function tabClick(){
>             var current = this;
>             this.blur();
>             var ch = current.parentNode.firstChild;
>             while(ch){
>                 if(ch != current){
>                         Element.removeClassName(ch,"selected_minitab");
>                         ch._refContent.style.display = "none";
>                 }else{
>                         Element.addClassName(ch,"selected_minitab");
>                         ch._refContent.style.display = "";
>                 }
>                 ch = ch.nextSibling;
>             }
>             return false;
>         }
>     }
>
>
>  };
>
>  Davor Hrg
>
>
>
>
>  On Tue, Mar 11, 2008 at 1:15 PM, David Marquis <dm...@neopeak.com> wrote:
>  > Hi,
>  >
>  >  He's having the same problem I had some time ago.
>  >  Suppose I want to create a Tab Component and I want to be able to
>  >  define it like this in the templates:
>  >
>  >  <t:tabs t:id="myTabs">
>  >    <t:tab t:id="tabOne" title="First tab">
>  >        <h1>Body of tab1</h1>
>  >        <p>Continuing body...</p>
>  >    </t:tab>
>  >    <t:tab t:id="tabTwo" title="Second tab">
>  >        <h1>Body of tab2</h1>
>  >        <p>Continuing body...</p>
>  >    </t:tab>
>  >  </t:tabs>
>  >
>  >  If would then like to 'render' this about that way:
>  >
>  >  <div class="tabs">
>  >     <ul class="tabTitles">
>  >        <li><a href="." onclick="switchtabs(1);">First tab</li>
>  >        <li><a href="." onclick="switchtabs(2);">Second tab</li>
>  >     </ul>
>  >     <div id="tabOne" class="tab selected">
>  >        <h1>Body of tab1</h1>
>  >        <p>Continuing body...</p>
>  >     </div>
>  >     <div id="tabTwo" class="tab">
>  >        <h1>Body of tab2</h1>
>  >        <p>Continuing body...</p>
>  >     </div>
>  >  </div>
>  >
>  >  This is, I think, the most natural way of expressing tabs.
>  >  But such a thing is not possible, because the Tabs component cannot
>  >  accessing its child Tag components dynamically.
>  >  More: if you provide a body for a component (like above), you cannot
>  >  provide a template for this same component.
>  >
>  >  I haven't found a way to implement such a component, and I think I had
>  >  about the same initial problem as Christopher : A component cannot
>  >  easily access its 'children' defined in the base template, build an
>  >  internal model from that, and render using this model and an internal
>  >  template.
>  >
>  >  --
>  >  David
>  >
>  >
>  >
>  >  On 11-Mar-08, at 6:57 AM, Davor Hrg wrote:
>  >
>  >  > explain what are zou trzing to achieve, maybe we can offer a different
>  >  > approach..
>  >  >
>  >  > Davor Hrg
>  >  >
>  >  > On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
>  >  > <Ch...@atosorigin.com> wrote:
>  >  >> Thank you for your answer,
>  >  >>
>  >  >> But actually my component must access its child in a dynamic way.
>  >  >> It will be used in different context for analysis purpose.
>  >  >>
>  >  >> I've been searching for different ways to access a component body.
>  >  >>
>  >  >> For exemple, by using "nestedId" at creation time by decorating the
>  >  >> PageElementFactory to identify if a component is contained in my
>  >  >> component, but the nestedId does not contain the id of the parent
>  >  >> component but is only suffixed to the container nested id.
>  >  >>
>  >  >> By decorating ComponentPageElement and intercepting "addToBody"
>  >  >> method call for my component only, but it was not enough for the
>  >  >> children and I don't want to generalize the use of these kind of
>  >  >> hooks or wrapping mechanism because of the "internal" aspect of the
>  >  >> PageElementFactory and ComponentPageElement classes.
>  >  >>
>  >  >> Best regards,
>  >  >> Christophe.
>  >  >>
>  >  >> -----Message d'origine-----
>  >  >> De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  >  >> Envoyé : mardi 11 mars 2008 10:08
>  >  >> À : Tapestry users
>  >  >> Objet : Re: T5 : How to access to a Component Body ?
>  >  >>
>  >  >>
>  >  >>
>  >  >> you can not access child components geenricaly,
>  >  >> but you can access blocks by id.
>  >  >>
>  >  >> you can embed components
>  >  >> @Component TextField name; //component's class is decided here
>  >  >> and in template simply put:
>  >  >> <div t:id="name"/>
>  >  >>
>  >  >>
>  >  >> but to access a textfield as Field you can:
>  >  >> @InjectComponent private Field name;
>  >  >> and then component's class is resolved from the template
>  >  >> so in the template you must put:
>  >  >> <t:textfield id="name"/>
>  >  >>
>  >  >>
>  >  >> you can not use it like this:
>  >  >> @Component private Field name;
>  >  >> and in template
>  >  >> <t:textfield id="name"/>
>  >  >>
>  >  >>
>  >  >> Davor Hrg
>  >  >> On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  >  >> <Ch...@atosorigin.com> wrote:
>  >  >>> Hello,
>  >  >>>
>  >  >>> I'm currently working on a component that needs to access the
>  >  >>> content of its body to extract informations like parameters, or
>  >  >>> persistent variable used by the components declared in its body.
>  >  >>>
>  >  >>> Actually, the ComponentResources class allows me to access the
>  >  >>> container of a component, but it appears that a child is not
>  >  >>> "contained in" the component.
>  >  >>> This should have helped me from a down-top view.
>  >  >>>
>  >  >>> And I didn't find any method to access the body of a component.
>  >  >>>
>  >  >>> Does anyone knows a way to access the children of a component ?
>  >  >>>
>  >  >>> Best Regards,
>  >  >>> Christophe Cordenier.
>  >  >>>
>  >  >>>
>  >  >>> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?
>  >  >>> l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?
>  >  >>> g? par le secret professionnel. Si vous recevez ce message par
>  >  >>> erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?
>  >  >>> truire. L'int?grit? du message ne pouvant ?tre assur?e sur
>  >  >>> Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre
>  >  >>> recherch?e quant au contenu de ce message. Bien que les meilleurs
>  >  >>> efforts soient faits pour maintenir cette transmission exempte de
>  >  >>> tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et
>  >  >>> sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?
>  >  >>> sultant d'un virus transmis.
>  >  >>>
>  >  >>> This e-mail and the documents attached are confidential and
>  >  >>> intended solely for the addressee; it may also be privileged. If
>  >  >>> you receive this e-mail in error, please notify the sender
>  >  >>> immediately and destroy it. As its integrity cannot be secured on
>  >  >>> the Internet, the Atos Origin group liability cannot be triggered
>  >  >>> for the message content. Although the sender endeavours to
>  >  >>> maintain a computer virus-free network, the sender does not
>  >  >>> warrant that this transmission is virus-free and will not be
>  >  >>> liable for any damages resulting from any virus transmitted.
>  >  >>>
>  >  >>>
>  >  >>> ---------------------------------------------------------------------
>  >  >>> 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
>  >  >>
>  >  >>
>  >  >>
>  >  >>
>  >  >> Ce message et les pièces jointes sont confidentiels et réservés à
>  >  >> l'usage exclusif de ses destinataires. Il peut également être
>  >  >> protégé par le secret professionnel. Si vous recevez ce message par
>  >  >> erreur, merci d'en avertir immédiatement l'expéditeur et de le
>  >  >> détruire. L'intégrité du message ne pouvant être assurée sur
>  >  >> Internet, la responsabilité du groupe Atos Origin ne pourra être
>  >  >> recherchée quant au contenu de ce message. Bien que les meilleurs
>  >  >> efforts soient faits pour maintenir cette transmission exempte de
>  >  >> tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa
>  >  >> responsabilité ne saurait être recherchée pour tout dommage
>  >  >> résultant d'un virus transmis.
>  >  >>
>  >  >>
>  >  >>
>  >  >> This e-mail and the documents attached are confidential and
>  >  >> intended solely for the addressee; it may also be privileged. If
>  >  >> you receive this e-mail in error, please notify the sender
>  >  >> immediately and destroy it. As its integrity cannot be secured on
>  >  >> the Internet, the Atos Origin group liability cannot be triggered
>  >  >> for the message content. Although the sender endeavours to maintain
>  >  >> a computer virus-free network, the sender does not warrant that
>  >  >> this transmission is virus-free and will not be liable for any
>  >  >> damages resulting from any virus transmitted.
>  >  >>
>  >  >>
>  >  >> ---------------------------------------------------------------------
>  >  >> 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
>  >  >
>  >
>  >
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>  For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

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


Re: T5 : How to access to a Component Body ?

Posted by Davor Hrg <hr...@gmail.com>.
actualy,
you need not even do anything on the server side for such tabs,

this can be easily achieved with a small javascript function.
go through all children and generate tab controls taking title attribute
as ctrl text:

child.getAttribute("title");

for example I have a small hacked up js just for it
it uses label instead title


var TapestryUtil = {
    createTabs: function(id){
        var elem = $(id);
        var selected = elem.getAttribute("selected");
        var tabs = document.createElement("DIV");
        tabs.className = "minitab";
        var cont = document.createElement("DIV");
        cont.className = "minitab_content";
        var ch;
        while(ch = elem.firstChild){
            elem.removeChild(ch);
            cont.appendChild(ch);
            var code = ch.getAttribute("code");
            var label = ch.getAttribute("label");

	        var tab = document.createElement("A");
	        tab.href="#"+(code||"");
	        tab.className = "minitab";
	        tab.innerHTML = label || code || "unlabelled";
            tab._refContent = ch;
            tab.onclick = tabClick;

            if(code != null && selected != "null" && selected == code){
                ch.style.display == "";
            }else if(selected != null)
                ch.style.display == "none";

            if(ch.style.display != "none") tab.className += " selected_minitab";
            tabs.appendChild(tab);
        }
        elem.appendChild(tabs);
        elem.appendChild(cont);

        function tabClick(){
            var current = this;
            this.blur();
            var ch = current.parentNode.firstChild;
            while(ch){
                if(ch != current){
	                Element.removeClassName(ch,"selected_minitab");
	                ch._refContent.style.display = "none";
                }else{
	                Element.addClassName(ch,"selected_minitab");
	                ch._refContent.style.display = "";
                }
                ch = ch.nextSibling;
            }
            return false;
        }
    }


};

Davor Hrg


On Tue, Mar 11, 2008 at 1:15 PM, David Marquis <dm...@neopeak.com> wrote:
> Hi,
>
>  He's having the same problem I had some time ago.
>  Suppose I want to create a Tab Component and I want to be able to
>  define it like this in the templates:
>
>  <t:tabs t:id="myTabs">
>    <t:tab t:id="tabOne" title="First tab">
>        <h1>Body of tab1</h1>
>        <p>Continuing body...</p>
>    </t:tab>
>    <t:tab t:id="tabTwo" title="Second tab">
>        <h1>Body of tab2</h1>
>        <p>Continuing body...</p>
>    </t:tab>
>  </t:tabs>
>
>  If would then like to 'render' this about that way:
>
>  <div class="tabs">
>     <ul class="tabTitles">
>        <li><a href="." onclick="switchtabs(1);">First tab</li>
>        <li><a href="." onclick="switchtabs(2);">Second tab</li>
>     </ul>
>     <div id="tabOne" class="tab selected">
>        <h1>Body of tab1</h1>
>        <p>Continuing body...</p>
>     </div>
>     <div id="tabTwo" class="tab">
>        <h1>Body of tab2</h1>
>        <p>Continuing body...</p>
>     </div>
>  </div>
>
>  This is, I think, the most natural way of expressing tabs.
>  But such a thing is not possible, because the Tabs component cannot
>  accessing its child Tag components dynamically.
>  More: if you provide a body for a component (like above), you cannot
>  provide a template for this same component.
>
>  I haven't found a way to implement such a component, and I think I had
>  about the same initial problem as Christopher : A component cannot
>  easily access its 'children' defined in the base template, build an
>  internal model from that, and render using this model and an internal
>  template.
>
>  --
>  David
>
>
>
>  On 11-Mar-08, at 6:57 AM, Davor Hrg wrote:
>
>  > explain what are zou trzing to achieve, maybe we can offer a different
>  > approach..
>  >
>  > Davor Hrg
>  >
>  > On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
>  > <Ch...@atosorigin.com> wrote:
>  >> Thank you for your answer,
>  >>
>  >> But actually my component must access its child in a dynamic way.
>  >> It will be used in different context for analysis purpose.
>  >>
>  >> I've been searching for different ways to access a component body.
>  >>
>  >> For exemple, by using "nestedId" at creation time by decorating the
>  >> PageElementFactory to identify if a component is contained in my
>  >> component, but the nestedId does not contain the id of the parent
>  >> component but is only suffixed to the container nested id.
>  >>
>  >> By decorating ComponentPageElement and intercepting "addToBody"
>  >> method call for my component only, but it was not enough for the
>  >> children and I don't want to generalize the use of these kind of
>  >> hooks or wrapping mechanism because of the "internal" aspect of the
>  >> PageElementFactory and ComponentPageElement classes.
>  >>
>  >> Best regards,
>  >> Christophe.
>  >>
>  >> -----Message d'origine-----
>  >> De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  >> Envoyé : mardi 11 mars 2008 10:08
>  >> À : Tapestry users
>  >> Objet : Re: T5 : How to access to a Component Body ?
>  >>
>  >>
>  >>
>  >> you can not access child components geenricaly,
>  >> but you can access blocks by id.
>  >>
>  >> you can embed components
>  >> @Component TextField name; //component's class is decided here
>  >> and in template simply put:
>  >> <div t:id="name"/>
>  >>
>  >>
>  >> but to access a textfield as Field you can:
>  >> @InjectComponent private Field name;
>  >> and then component's class is resolved from the template
>  >> so in the template you must put:
>  >> <t:textfield id="name"/>
>  >>
>  >>
>  >> you can not use it like this:
>  >> @Component private Field name;
>  >> and in template
>  >> <t:textfield id="name"/>
>  >>
>  >>
>  >> Davor Hrg
>  >> On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  >> <Ch...@atosorigin.com> wrote:
>  >>> Hello,
>  >>>
>  >>> I'm currently working on a component that needs to access the
>  >>> content of its body to extract informations like parameters, or
>  >>> persistent variable used by the components declared in its body.
>  >>>
>  >>> Actually, the ComponentResources class allows me to access the
>  >>> container of a component, but it appears that a child is not
>  >>> "contained in" the component.
>  >>> This should have helped me from a down-top view.
>  >>>
>  >>> And I didn't find any method to access the body of a component.
>  >>>
>  >>> Does anyone knows a way to access the children of a component ?
>  >>>
>  >>> Best Regards,
>  >>> Christophe Cordenier.
>  >>>
>  >>>
>  >>> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?
>  >>> l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?
>  >>> g? par le secret professionnel. Si vous recevez ce message par
>  >>> erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?
>  >>> truire. L'int?grit? du message ne pouvant ?tre assur?e sur
>  >>> Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre
>  >>> recherch?e quant au contenu de ce message. Bien que les meilleurs
>  >>> efforts soient faits pour maintenir cette transmission exempte de
>  >>> tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et
>  >>> sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?
>  >>> sultant d'un virus transmis.
>  >>>
>  >>> This e-mail and the documents attached are confidential and
>  >>> intended solely for the addressee; it may also be privileged. If
>  >>> you receive this e-mail in error, please notify the sender
>  >>> immediately and destroy it. As its integrity cannot be secured on
>  >>> the Internet, the Atos Origin group liability cannot be triggered
>  >>> for the message content. Although the sender endeavours to
>  >>> maintain a computer virus-free network, the sender does not
>  >>> warrant that this transmission is virus-free and will not be
>  >>> liable for any damages resulting from any virus transmitted.
>  >>>
>  >>>
>  >>> ---------------------------------------------------------------------
>  >>> 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
>  >>
>  >>
>  >>
>  >>
>  >> Ce message et les pièces jointes sont confidentiels et réservés à
>  >> l'usage exclusif de ses destinataires. Il peut également être
>  >> protégé par le secret professionnel. Si vous recevez ce message par
>  >> erreur, merci d'en avertir immédiatement l'expéditeur et de le
>  >> détruire. L'intégrité du message ne pouvant être assurée sur
>  >> Internet, la responsabilité du groupe Atos Origin ne pourra être
>  >> recherchée quant au contenu de ce message. Bien que les meilleurs
>  >> efforts soient faits pour maintenir cette transmission exempte de
>  >> tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa
>  >> responsabilité ne saurait être recherchée pour tout dommage
>  >> résultant d'un virus transmis.
>  >>
>  >>
>  >>
>  >> This e-mail and the documents attached are confidential and
>  >> intended solely for the addressee; it may also be privileged. If
>  >> you receive this e-mail in error, please notify the sender
>  >> immediately and destroy it. As its integrity cannot be secured on
>  >> the Internet, the Atos Origin group liability cannot be triggered
>  >> for the message content. Although the sender endeavours to maintain
>  >> a computer virus-free network, the sender does not warrant that
>  >> this transmission is virus-free and will not be liable for any
>  >> damages resulting from any virus transmitted.
>  >>
>  >>
>  >> ---------------------------------------------------------------------
>  >> 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
>  >
>
>

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


Re: T5 : How to access to a Component Body ?

Posted by Joachim Van der Auwera <jo...@progs.be>.
Something like this can be handled using parameter blocks.
See the source of equanda-tapestry5 which includes a Tab component.

Kind regards,
Joachim

David Marquis wrote:
> Hi,
>
> He's having the same problem I had some time ago.
> Suppose I want to create a Tab Component and I want to be able to 
> define it like this in the templates:
>
> <t:tabs t:id="myTabs">
>   <t:tab t:id="tabOne" title="First tab">
>       <h1>Body of tab1</h1>
>       <p>Continuing body...</p>
>   </t:tab>
>   <t:tab t:id="tabTwo" title="Second tab">
>       <h1>Body of tab2</h1>
>       <p>Continuing body...</p>
>   </t:tab>
> </t:tabs>
>
> If would then like to 'render' this about that way:
>
> <div class="tabs">
>    <ul class="tabTitles">
>       <li><a href="." onclick="switchtabs(1);">First tab</li>
>       <li><a href="." onclick="switchtabs(2);">Second tab</li>
>    </ul>
>    <div id="tabOne" class="tab selected">
>       <h1>Body of tab1</h1>
>       <p>Continuing body...</p>
>    </div>
>    <div id="tabTwo" class="tab">
>       <h1>Body of tab2</h1>
>       <p>Continuing body...</p>
>    </div>
> </div>
>
> This is, I think, the most natural way of expressing tabs.
> But such a thing is not possible, because the Tabs component cannot 
> accessing its child Tag components dynamically.
> More: if you provide a body for a component (like above), you cannot 
> provide a template for this same component.
>
> I haven't found a way to implement such a component, and I think I had 
> about the same initial problem as Christopher : A component cannot 
> easily access its 'children' defined in the base template, build an 
> internal model from that, and render using this model and an internal 
> template.
>
> -- 
> David
>
> On 11-Mar-08, at 6:57 AM, Davor Hrg wrote:
>
>> explain what are zou trzing to achieve, maybe we can offer a different
>> approach..
>>
>> Davor Hrg
>>
>> On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
>> <Ch...@atosorigin.com> wrote:
>>> Thank you for your answer,
>>>
>>> But actually my component must access its child in a dynamic way.
>>> It will be used in different context for analysis purpose.
>>>
>>> I've been searching for different ways to access a component body.
>>>
>>> For exemple, by using "nestedId" at creation time by decorating the 
>>> PageElementFactory to identify if a component is contained in my 
>>> component, but the nestedId does not contain the id of the parent 
>>> component but is only suffixed to the container nested id.
>>>
>>> By decorating ComponentPageElement and intercepting "addToBody" 
>>> method call for my component only, but it was not enough for the 
>>> children and I don't want to generalize the use of these kind of 
>>> hooks or wrapping mechanism because of the "internal" aspect of the 
>>> PageElementFactory and ComponentPageElement classes.
>>>
>>> Best regards,
>>> Christophe.
>>>
>>> -----Message d'origine-----
>>> De : Davor Hrg [mailto:hrgdavor@gmail.com]
>>> Envoyé : mardi 11 mars 2008 10:08
>>> À : Tapestry users
>>> Objet : Re: T5 : How to access to a Component Body ?
>>>
>>>
>>>
>>> you can not access child components geenricaly,
>>> but you can access blocks by id.
>>>
>>> you can embed components
>>> @Component TextField name; //component's class is decided here
>>> and in template simply put:
>>> <div t:id="name"/>
>>>
>>>
>>> but to access a textfield as Field you can:
>>> @InjectComponent private Field name;
>>> and then component's class is resolved from the template
>>> so in the template you must put:
>>> <t:textfield id="name"/>
>>>
>>>
>>> you can not use it like this:
>>> @Component private Field name;
>>> and in template
>>> <t:textfield id="name"/>
>>>
>>>
>>> Davor Hrg
>>> On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>>> <Ch...@atosorigin.com> wrote:
>>>> Hello,
>>>>
>>>> I'm currently working on a component that needs to access the 
>>>> content of its body to extract informations like parameters, or 
>>>> persistent variable used by the components declared in its body.
>>>>
>>>> Actually, the ComponentResources class allows me to access the 
>>>> container of a component, but it appears that a child is not 
>>>> "contained in" the component.
>>>> This should have helped me from a down-top view.
>>>>
>>>> And I didn't find any method to access the body of a component.
>>>>
>>>> Does anyone knows a way to access the children of a component ?
>>>>
>>>> Best Regards,
>>>> Christophe Cordenier.
>>>>
>>>>
>>>> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? 
>>>> l'usage exclusif de ses destinataires. Il peut ?galement ?tre 
>>>> prot?g? par le secret professionnel. Si vous recevez ce message par 
>>>> erreur, merci d'en avertir imm?diatement l'exp?diteur et de le 
>>>> d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur 
>>>> Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre 
>>>> recherch?e quant au contenu de ce message. Bien que les meilleurs 
>>>> efforts soient faits pour maintenir cette transmission exempte de 
>>>> tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa 
>>>> responsabilit? ne saurait ?tre recherch?e pour tout dommage 
>>>> r?sultant d'un virus transmis.
>>>>
>>>> This e-mail and the documents attached are confidential and 
>>>> intended solely for the addressee; it may also be privileged. If 
>>>> you receive this e-mail in error, please notify the sender 
>>>> immediately and destroy it. As its integrity cannot be secured on 
>>>> the Internet, the Atos Origin group liability cannot be triggered 
>>>> for the message content. Although the sender endeavours to maintain 
>>>> a computer virus-free network, the sender does not warrant that 
>>>> this transmission is virus-free and will not be liable for any 
>>>> damages resulting from any virus transmitted.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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
>>>
>>>
>>>
>>>
>>> Ce message et les pièces jointes sont confidentiels et réservés à 
>>> l'usage exclusif de ses destinataires. Il peut également être 
>>> protégé par le secret professionnel. Si vous recevez ce message par 
>>> erreur, merci d'en avertir immédiatement l'expéditeur et de le 
>>> détruire. L'intégrité du message ne pouvant être assurée sur 
>>> Internet, la responsabilité du groupe Atos Origin ne pourra être 
>>> recherchée quant au contenu de ce message. Bien que les meilleurs 
>>> efforts soient faits pour maintenir cette transmission exempte de 
>>> tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa 
>>> responsabilité ne saurait être recherchée pour tout dommage 
>>> résultant d'un virus transmis.
>>>
>>>
>>>
>>> This e-mail and the documents attached are confidential and intended 
>>> solely for the addressee; it may also be privileged. If you receive 
>>> this e-mail in error, please notify the sender immediately and 
>>> destroy it. As its integrity cannot be secured on the Internet, the 
>>> Atos Origin group liability cannot be triggered for the message 
>>> content. Although the sender endeavours to maintain a computer 
>>> virus-free network, the sender does not warrant that this 
>>> transmission is virus-free and will not be liable for any damages 
>>> resulting from any virus transmitted.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>


-- 
Joachim Van der Auwera
PROGS bvba, progs.be


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


RE: T5 : How to access to a Component Body ?

Posted by Cordenier Christophe <Ch...@atosorigin.com>.
Maybe this can help you http://wiki.apache.org/tapestry/Tapestry5HowToCreateATabPanel

Using t:parameter block as the "beanEditForm" does may be another solution.

-----Message d'origine-----
De : David Marquis [mailto:dmarquis@neopeak.com]
Envoyé : mardi 11 mars 2008 13:15
À : Tapestry users
Objet : Re: T5 : How to access to a Component Body ?

Hi,

He's having the same problem I had some time ago.
Suppose I want to create a Tab Component and I want to be able to
define it like this in the templates:

<t:tabs t:id="myTabs">
   <t:tab t:id="tabOne" title="First tab">
       <h1>Body of tab1</h1>
       <p>Continuing body...</p>
   </t:tab>
   <t:tab t:id="tabTwo" title="Second tab">
       <h1>Body of tab2</h1>
       <p>Continuing body...</p>
   </t:tab>
</t:tabs>

If would then like to 'render' this about that way:

<div class="tabs">
    <ul class="tabTitles">
       <li><a href="." onclick="switchtabs(1);">First tab</li>
       <li><a href="." onclick="switchtabs(2);">Second tab</li>
    </ul>
    <div id="tabOne" class="tab selected">
       <h1>Body of tab1</h1>
       <p>Continuing body...</p>
    </div>
    <div id="tabTwo" class="tab">
       <h1>Body of tab2</h1>
       <p>Continuing body...</p>
    </div>
</div>

This is, I think, the most natural way of expressing tabs.
But such a thing is not possible, because the Tabs component cannot
accessing its child Tag components dynamically.
More: if you provide a body for a component (like above), you cannot
provide a template for this same component.

I haven't found a way to implement such a component, and I think I had
about the same initial problem as Christopher : A component cannot
easily access its 'children' defined in the base template, build an
internal model from that, and render using this model and an internal
template.

--
David

On 11-Mar-08, at 6:57 AM, Davor Hrg wrote:

> explain what are zou trzing to achieve, maybe we can offer a different
> approach..
>
> Davor Hrg
>
> On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
> <Ch...@atosorigin.com> wrote:
>> Thank you for your answer,
>>
>> But actually my component must access its child in a dynamic way.
>> It will be used in different context for analysis purpose.
>>
>> I've been searching for different ways to access a component body.
>>
>> For exemple, by using "nestedId" at creation time by decorating the
>> PageElementFactory to identify if a component is contained in my
>> component, but the nestedId does not contain the id of the parent
>> component but is only suffixed to the container nested id.
>>
>> By decorating ComponentPageElement and intercepting "addToBody"
>> method call for my component only, but it was not enough for the
>> children and I don't want to generalize the use of these kind of
>> hooks or wrapping mechanism because of the "internal" aspect of the
>> PageElementFactory and ComponentPageElement classes.
>>
>> Best regards,
>> Christophe.
>>
>> -----Message d'origine-----
>> De : Davor Hrg [mailto:hrgdavor@gmail.com]
>> Envoyé : mardi 11 mars 2008 10:08
>> À : Tapestry users
>> Objet : Re: T5 : How to access to a Component Body ?
>>
>>
>>
>> you can not access child components geenricaly,
>> but you can access blocks by id.
>>
>> you can embed components
>> @Component TextField name; //component's class is decided here
>> and in template simply put:
>> <div t:id="name"/>
>>
>>
>> but to access a textfield as Field you can:
>> @InjectComponent private Field name;
>> and then component's class is resolved from the template
>> so in the template you must put:
>> <t:textfield id="name"/>
>>
>>
>> you can not use it like this:
>> @Component private Field name;
>> and in template
>> <t:textfield id="name"/>
>>
>>
>> Davor Hrg
>> On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>> <Ch...@atosorigin.com> wrote:
>>> Hello,
>>>
>>> I'm currently working on a component that needs to access the
>>> content of its body to extract informations like parameters, or
>>> persistent variable used by the components declared in its body.
>>>
>>> Actually, the ComponentResources class allows me to access the
>>> container of a component, but it appears that a child is not
>>> "contained in" the component.
>>> This should have helped me from a down-top view.
>>>
>>> And I didn't find any method to access the body of a component.
>>>
>>> Does anyone knows a way to access the children of a component ?
>>>
>>> Best Regards,
>>> Christophe Cordenier.
>>>
>>>
>>> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?
>>> l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?
>>> g? par le secret professionnel. Si vous recevez ce message par
>>> erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?
>>> truire. L'int?grit? du message ne pouvant ?tre assur?e sur
>>> Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre
>>> recherch?e quant au contenu de ce message. Bien que les meilleurs
>>> efforts soient faits pour maintenir cette transmission exempte de
>>> tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et
>>> sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?
>>> sultant d'un virus transmis.
>>>
>>> This e-mail and the documents attached are confidential and
>>> intended solely for the addressee; it may also be privileged. If
>>> you receive this e-mail in error, please notify the sender
>>> immediately and destroy it. As its integrity cannot be secured on
>>> the Internet, the Atos Origin group liability cannot be triggered
>>> for the message content. Although the sender endeavours to
>>> maintain a computer virus-free network, the sender does not
>>> warrant that this transmission is virus-free and will not be
>>> liable for any damages resulting from any virus transmitted.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>>
>>
>>
>> Ce message et les pièces jointes sont confidentiels et réservés à
>> l'usage exclusif de ses destinataires. Il peut également être
>> protégé par le secret professionnel. Si vous recevez ce message par
>> erreur, merci d'en avertir immédiatement l'expéditeur et de le
>> détruire. L'intégrité du message ne pouvant être assurée sur
>> Internet, la responsabilité du groupe Atos Origin ne pourra être
>> recherchée quant au contenu de ce message. Bien que les meilleurs
>> efforts soient faits pour maintenir cette transmission exempte de
>> tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa
>> responsabilité ne saurait être recherchée pour tout dommage
>> résultant d'un virus transmis.
>>
>>
>>
>> This e-mail and the documents attached are confidential and
>> intended solely for the addressee; it may also be privileged. If
>> you receive this e-mail in error, please notify the sender
>> immediately and destroy it. As its integrity cannot be secured on
>> the Internet, the Atos Origin group liability cannot be triggered
>> for the message content. Although the sender endeavours to maintain
>> a computer virus-free network, the sender does not warrant that
>> this transmission is virus-free and will not be liable for any
>> damages resulting from any virus transmitted.
>>
>>
>> ---------------------------------------------------------------------
>> 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
>



Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


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


Re: T5 : How to access to a Component Body ?

Posted by David Marquis <dm...@neopeak.com>.
Hi,

He's having the same problem I had some time ago.
Suppose I want to create a Tab Component and I want to be able to  
define it like this in the templates:

<t:tabs t:id="myTabs">
   <t:tab t:id="tabOne" title="First tab">
       <h1>Body of tab1</h1>
       <p>Continuing body...</p>
   </t:tab>
   <t:tab t:id="tabTwo" title="Second tab">
       <h1>Body of tab2</h1>
       <p>Continuing body...</p>
   </t:tab>
</t:tabs>

If would then like to 'render' this about that way:

<div class="tabs">
    <ul class="tabTitles">
       <li><a href="." onclick="switchtabs(1);">First tab</li>
       <li><a href="." onclick="switchtabs(2);">Second tab</li>
    </ul>
    <div id="tabOne" class="tab selected">
       <h1>Body of tab1</h1>
       <p>Continuing body...</p>
    </div>
    <div id="tabTwo" class="tab">
       <h1>Body of tab2</h1>
       <p>Continuing body...</p>
    </div>
</div>

This is, I think, the most natural way of expressing tabs.
But such a thing is not possible, because the Tabs component cannot  
accessing its child Tag components dynamically.
More: if you provide a body for a component (like above), you cannot  
provide a template for this same component.

I haven't found a way to implement such a component, and I think I had  
about the same initial problem as Christopher : A component cannot  
easily access its 'children' defined in the base template, build an  
internal model from that, and render using this model and an internal  
template.

--
David

On 11-Mar-08, at 6:57 AM, Davor Hrg wrote:

> explain what are zou trzing to achieve, maybe we can offer a different
> approach..
>
> Davor Hrg
>
> On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
> <Ch...@atosorigin.com> wrote:
>> Thank you for your answer,
>>
>> But actually my component must access its child in a dynamic way.
>> It will be used in different context for analysis purpose.
>>
>> I've been searching for different ways to access a component body.
>>
>> For exemple, by using "nestedId" at creation time by decorating the  
>> PageElementFactory to identify if a component is contained in my  
>> component, but the nestedId does not contain the id of the parent  
>> component but is only suffixed to the container nested id.
>>
>> By decorating ComponentPageElement and intercepting "addToBody"  
>> method call for my component only, but it was not enough for the  
>> children and I don't want to generalize the use of these kind of  
>> hooks or wrapping mechanism because of the "internal" aspect of the  
>> PageElementFactory and ComponentPageElement classes.
>>
>> Best regards,
>> Christophe.
>>
>> -----Message d'origine-----
>> De : Davor Hrg [mailto:hrgdavor@gmail.com]
>> Envoyé : mardi 11 mars 2008 10:08
>> À : Tapestry users
>> Objet : Re: T5 : How to access to a Component Body ?
>>
>>
>>
>> you can not access child components geenricaly,
>> but you can access blocks by id.
>>
>> you can embed components
>> @Component TextField name; //component's class is decided here
>> and in template simply put:
>> <div t:id="name"/>
>>
>>
>> but to access a textfield as Field you can:
>> @InjectComponent private Field name;
>> and then component's class is resolved from the template
>> so in the template you must put:
>> <t:textfield id="name"/>
>>
>>
>> you can not use it like this:
>> @Component private Field name;
>> and in template
>> <t:textfield id="name"/>
>>
>>
>> Davor Hrg
>> On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>> <Ch...@atosorigin.com> wrote:
>>> Hello,
>>>
>>> I'm currently working on a component that needs to access the  
>>> content of its body to extract informations like parameters, or  
>>> persistent variable used by the components declared in its body.
>>>
>>> Actually, the ComponentResources class allows me to access the  
>>> container of a component, but it appears that a child is not  
>>> "contained in" the component.
>>> This should have helped me from a down-top view.
>>>
>>> And I didn't find any method to access the body of a component.
>>>
>>> Does anyone knows a way to access the children of a component ?
>>>
>>> Best Regards,
>>> Christophe Cordenier.
>>>
>>>
>>> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ?  
>>> l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot? 
>>> g? par le secret professionnel. Si vous recevez ce message par  
>>> erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d? 
>>> truire. L'int?grit? du message ne pouvant ?tre assur?e sur  
>>> Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre  
>>> recherch?e quant au contenu de ce message. Bien que les meilleurs  
>>> efforts soient faits pour maintenir cette transmission exempte de  
>>> tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et  
>>> sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r? 
>>> sultant d'un virus transmis.
>>>
>>> This e-mail and the documents attached are confidential and  
>>> intended solely for the addressee; it may also be privileged. If  
>>> you receive this e-mail in error, please notify the sender  
>>> immediately and destroy it. As its integrity cannot be secured on  
>>> the Internet, the Atos Origin group liability cannot be triggered  
>>> for the message content. Although the sender endeavours to  
>>> maintain a computer virus-free network, the sender does not  
>>> warrant that this transmission is virus-free and will not be  
>>> liable for any damages resulting from any virus transmitted.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>>
>>
>>
>> Ce message et les pièces jointes sont confidentiels et réservés à  
>> l'usage exclusif de ses destinataires. Il peut également être  
>> protégé par le secret professionnel. Si vous recevez ce message par  
>> erreur, merci d'en avertir immédiatement l'expéditeur et de le  
>> détruire. L'intégrité du message ne pouvant être assurée sur  
>> Internet, la responsabilité du groupe Atos Origin ne pourra être  
>> recherchée quant au contenu de ce message. Bien que les meilleurs  
>> efforts soient faits pour maintenir cette transmission exempte de  
>> tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa  
>> responsabilité ne saurait être recherchée pour tout dommage  
>> résultant d'un virus transmis.
>>
>>
>>
>> This e-mail and the documents attached are confidential and  
>> intended solely for the addressee; it may also be privileged. If  
>> you receive this e-mail in error, please notify the sender  
>> immediately and destroy it. As its integrity cannot be secured on  
>> the Internet, the Atos Origin group liability cannot be triggered  
>> for the message content. Although the sender endeavours to maintain  
>> a computer virus-free network, the sender does not warrant that  
>> this transmission is virus-free and will not be liable for any  
>> damages resulting from any virus transmitted.
>>
>>
>> ---------------------------------------------------------------------
>> 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
>


Re: T5 : How to access to a Component Body ?

Posted by Davor Hrg <hr...@gmail.com>.
explain what are zou trzing to achieve, maybe we can offer a different
approach..

Davor Hrg

On Tue, Mar 11, 2008 at 10:33 AM, Cordenier Christophe
<Ch...@atosorigin.com> wrote:
> Thank you for your answer,
>
>  But actually my component must access its child in a dynamic way.
>  It will be used in different context for analysis purpose.
>
>  I've been searching for different ways to access a component body.
>
>  For exemple, by using "nestedId" at creation time by decorating the PageElementFactory to identify if a component is contained in my component, but the nestedId does not contain the id of the parent component but is only suffixed to the container nested id.
>
>  By decorating ComponentPageElement and intercepting "addToBody" method call for my component only, but it was not enough for the children and I don't want to generalize the use of these kind of hooks or wrapping mechanism because of the "internal" aspect of the PageElementFactory and ComponentPageElement classes.
>
>  Best regards,
>  Christophe.
>
>  -----Message d'origine-----
>  De : Davor Hrg [mailto:hrgdavor@gmail.com]
>  Envoyé : mardi 11 mars 2008 10:08
>  À : Tapestry users
>  Objet : Re: T5 : How to access to a Component Body ?
>
>
>
>  you can not access child components geenricaly,
>  but you can access blocks by id.
>
>  you can embed components
>  @Component TextField name; //component's class is decided here
>  and in template simply put:
>  <div t:id="name"/>
>
>
>  but to access a textfield as Field you can:
>  @InjectComponent private Field name;
>  and then component's class is resolved from the template
>  so in the template you must put:
>  <t:textfield id="name"/>
>
>
>  you can not use it like this:
>  @Component private Field name;
>  and in template
>  <t:textfield id="name"/>
>
>
>  Davor Hrg
>  On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
>  <Ch...@atosorigin.com> wrote:
>  > Hello,
>  >
>  >  I'm currently working on a component that needs to access the content of its body to extract informations like parameters, or persistent variable used by the components declared in its body.
>  >
>  >  Actually, the ComponentResources class allows me to access the container of a component, but it appears that a child is not "contained in" the component.
>  >  This should have helped me from a down-top view.
>  >
>  >  And I didn't find any method to access the body of a component.
>  >
>  >  Does anyone knows a way to access the children of a component ?
>  >
>  >  Best Regards,
>  >  Christophe Cordenier.
>  >
>  >
>  >  Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
>  >
>  >  This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>  >
>  >
>  >  ---------------------------------------------------------------------
>  >  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
>
>
>
>
>  Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>
>
>
>  This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>
>
>  ---------------------------------------------------------------------
>  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


RE: T5 : How to access to a Component Body ?

Posted by Cordenier Christophe <Ch...@atosorigin.com>.
Thank you for your answer,

But actually my component must access its child in a dynamic way.
It will be used in different context for analysis purpose.

I've been searching for different ways to access a component body.

For exemple, by using "nestedId" at creation time by decorating the PageElementFactory to identify if a component is contained in my component, but the nestedId does not contain the id of the parent component but is only suffixed to the container nested id.

By decorating ComponentPageElement and intercepting "addToBody" method call for my component only, but it was not enough for the children and I don't want to generalize the use of these kind of hooks or wrapping mechanism because of the "internal" aspect of the PageElementFactory and ComponentPageElement classes.

Best regards,
Christophe.

-----Message d'origine-----
De : Davor Hrg [mailto:hrgdavor@gmail.com]
Envoyé : mardi 11 mars 2008 10:08
À : Tapestry users
Objet : Re: T5 : How to access to a Component Body ?

you can not access child components geenricaly,
but you can access blocks by id.

you can embed components
@Component TextField name; //component's class is decided here
and in template simply put:
<div t:id="name"/>


but to access a textfield as Field you can:
@InjectComponent private Field name;
and then component's class is resolved from the template
so in the template you must put:
<t:textfield id="name"/>


you can not use it like this:
@Component private Field name;
and in template
<t:textfield id="name"/>


Davor Hrg
On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
<Ch...@atosorigin.com> wrote:
> Hello,
>
>  I'm currently working on a component that needs to access the content of its body to extract informations like parameters, or persistent variable used by the components declared in its body.
>
>  Actually, the ComponentResources class allows me to access the container of a component, but it appears that a child is not "contained in" the component.
>  This should have helped me from a down-top view.
>
>  And I didn't find any method to access the body of a component.
>
>  Does anyone knows a way to access the children of a component ?
>
>  Best Regards,
>  Christophe Cordenier.
>
>
>  Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
>
>  This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>
>
>  ---------------------------------------------------------------------
>  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




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


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


Re: T5 : How to access to a Component Body ?

Posted by Davor Hrg <hr...@gmail.com>.
you can not access child components geenricaly,
but you can access blocks by id.

you can embed components
@Component TextField name; //component's class is decided here
and in template simply put:
<div t:id="name"/>


but to access a textfield as Field you can:
@InjectComponent private Field name;
and then component's class is resolved from the template
so in the template you must put:
<t:textfield id="name"/>


you can not use it like this:
@Component private Field name;
and in template
<t:textfield id="name"/>


Davor Hrg
On Tue, Mar 11, 2008 at 9:25 AM, Cordenier Christophe
<Ch...@atosorigin.com> wrote:
> Hello,
>
>  I'm currently working on a component that needs to access the content of its body to extract informations like parameters, or persistent variable used by the components declared in its body.
>
>  Actually, the ComponentResources class allows me to access the container of a component, but it appears that a child is not "contained in" the component.
>  This should have helped me from a down-top view.
>
>  And I didn't find any method to access the body of a component.
>
>  Does anyone knows a way to access the children of a component ?
>
>  Best Regards,
>  Christophe Cordenier.
>
>
>  Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
>
>  This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>
>
>  ---------------------------------------------------------------------
>  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


T5 : How to access to a Component Body ?

Posted by Cordenier Christophe <Ch...@atosorigin.com>.
Hello,

I'm currently working on a component that needs to access the content of its body to extract informations like parameters, or persistent variable used by the components declared in its body.

Actually, the ComponentResources class allows me to access the container of a component, but it appears that a child is not "contained in" the component.
This should have helped me from a down-top view.

And I didn't find any method to access the body of a component.

Does anyone knows a way to access the children of a component ?

Best Regards,
Christophe Cordenier.


Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


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


Re: Newbie Tapestry

Posted by Patrick Moore <pa...@amplafi.com>.
Why don't we just move T5 up to T7 just so that we can say that T6 is the
"old" version :-)

-Pat

Re: Newbie Tapestry

Posted by David Marquis <dm...@neopeak.com>.
AND, not to forget references to Tapestry 'Six' :

Rob Smeets (?) quoted:
 > I googled and also learnt there is Tapestry -Six- in the works which
would also be a whole new beast not compatible with all previous  
Tapestry
versions.

WTheck ?
Come on, give us a break.

--
David

On 7-Mar-08, at 6:23 AM, Angelo Turetta wrote:

> Rob Smeets wrote:
>> Hi Gabriel,
>> I dug into this list and found a routine that when someone dare to  
>> ask a
>> legitimate question that probably may sound "politically incorrect"  
>> to some
>> members, he gets the troll label. Why? I think that's too easy to  
>> do. Please
>> answer my questions, if you have one.
>
> Look, every month or so one 'nice' person from the wicket community  
> comes here under false identity and posts a question just like yours  
> from a gmail account.
>
> So, either you actually ARE him (and Gabriel is right in its  
> advice), or you haven't done your homework before posting (and are  
> yourself feeding the troll).
>
> Angelo.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>


Re: Newbie Tapestry

Posted by Angelo Turetta <at...@bestunion.it>.
Rob Smeets wrote:
> Hi Gabriel,
> 
> I dug into this list and found a routine that when someone dare to ask a
> legitimate question that probably may sound "politically incorrect" to some
> members, he gets the troll label. Why? I think that's too easy to do. Please
> answer my questions, if you have one.

Look, every month or so one 'nice' person from the wicket community 
comes here under false identity and posts a question just like yours 
from a gmail account.

So, either you actually ARE him (and Gabriel is right in its advice), or 
you haven't done your homework before posting (and are yourself feeding 
the troll).

Angelo.

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


Re: Newbie Tapestry

Posted by Davor Hrg <hr...@gmail.com>.
I really hope there are no Tapestry trolls on wicket mailing list,
like you are one here.

I'd like not to feed the troll, but I feel the need to mark you as troll,
so that new users don't get alarmed too much by your fud.

Like for chain letters and spam, it takes a moment to recognize the pattern.

Davor Hrg

On Fri, Mar 7, 2008 at 11:59 AM, Rob Smeets <rb...@gmail.com> wrote:
> Hi Gabriel,
>
>  I dug into this list and found a routine that when someone dare to ask a
>  legitimate question that probably may sound "politically incorrect" to some
>  members, he gets the troll label. Why? I think that's too easy to do. Please
>  answer my questions, if you have one.
>
>  Rob
>
>  On Fri, Mar 7, 2008 at 11:44 AM, Gabriel Landais <la...@codelutin.com>
>  wrote:
>
>
>
>  > Rob Smeets a écrit :
>  > > Hi,
>  > >
>  > > [...]
>  > >
>  > > Rob
>  >
>  > Don't feed the troll
>  >
>  > Gabriel
>  >
>  > ---------------------------------------------------------------------
>  > 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


Re: Newbie Tapestry

Posted by Rob Smeets <rb...@gmail.com>.
Hi Gabriel,

I dug into this list and found a routine that when someone dare to ask a
legitimate question that probably may sound "politically incorrect" to some
members, he gets the troll label. Why? I think that's too easy to do. Please
answer my questions, if you have one.

Rob

On Fri, Mar 7, 2008 at 11:44 AM, Gabriel Landais <la...@codelutin.com>
wrote:

> Rob Smeets a écrit :
> > Hi,
> >
> > [...]
> >
> > Rob
>
> Don't feed the troll
>
> Gabriel
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Newbie Tapestry

Posted by Gabriel Landais <la...@codelutin.com>.
Rob Smeets a écrit :
> Hi,
> 
> [...]
> 
> Rob

Don't feed the troll

Gabriel

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


AW: Newbie Tapestry

Posted by Martin Kersten <Ma...@mercateo.com>.
Hi Rob,

  check out this one: http://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework1

It is one of the best resources for this kind of 
question I know about.

Check out later responses. Tapestry T5 is around quite a long
time so the early posts are really about the alpha-alpha state.


Cheers,

Martin (Kersten) 

-----Ursprüngliche Nachricht-----
Von: Rob Smeets [mailto:rb.smeets@gmail.com] 
Gesendet: Freitag, 7. März 2008 11:00
An: users@tapestry.apache.org
Betreff: Newbie Tapestry

Hi,

I am a newbie in Tapestry. Our organization is going to build a large scale web application in 3 months time and me together with 2 other developers have been asked to research and come up with a good web framework to use.
I suggested Tapestry but almost all the developers on our team rejected it outright with reasons such as incompatibility issues with any major Tapestry release, very bad documentation and no professionally written books on tapestry. I googled and also learnt there is Tapestry 6 in the works which would also be a whole new beast not compatible with all previous Tapestry versions. Why this at all? I also hear Tapestry 5 has it's own built-in IoC container. Is this necessary for a webframework? Isn't it an overkill, or in otherwords an over engineered piece of software?
I learnt Wicket is an excellent web framework with a very good support plus an active mailing list. From the way I'm seeing things, my team is gradually leaning towards Wicket. Can someone here offer me an unbiased comparison of Tapestry and Wicket I may use to change my team's mind?

Thanks,

Rob

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