You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Howard Lewis Ship <hl...@comcast.net> on 2008/01/07 18:18:33 UTC

Re: [Tapestry 5] Template question

Tapestry has always had a tight binding between the component class  
and the template.  This is opposed to Struts et al, which has a weak  
relationship (and a lot more configuration).

To accomplish what you want to do, you can take one of several  
approaches:

- Have multiple pages, representing the same content in different  
formats.  I.e. Article, ArticleShort, ArticleLong, ArticleRSS,  
ArticlePrint, etc.

- Have a component that dynamically selects another component based on  
the desired format, specified via a parameter.  The metaphor here  
would be a common method with a case statement.  This is roughly the  
approach that the BeanEditor and Grid components use, to match  
properties and their data types to components appropriate to view or  
edit such a property.

I tend toward the latter approach, though to accomplish some things  
(such as widely differing content types :  RSS or PDF rather than text/ 
html) you may need to combine the approaches.



On Jan 5, 2008, at 1:44 AM, martin@liber-mundi.org wrote:

> Hello,
>
> First of all I would like to wish you an happy new year, full of  
> success
> for you and your family :)
>
> My name is Martin, I work in a french web agencie as a lead  
> developper and
> architect, mainly on CMS applications.
>
> I did want to bother you with a direct question, but I asked this  
> several
> times on the Tapestry user mailing list, and no one was able to give  
> me a
> clear ( or satisfying ) answer.
>
> We have a client that use an old CMS of ours, and he wants us to  
> develop a
> new one for him. That is why I'm very interested in Tapestry 5. We  
> started
> to develop different Application to test Tapestry and quite  
> everythings is
> ok.
>
> But (there is always a but) there is something that I don't know how  
> to do
> with tapestry 5 : handeling different display methods for the same
> content. On the mailing list everybody answer : use CSS. I'm sorry but
> this is not good for us.
>
> If I want a display method that just display a Title and a Date with a
> Link to the page where the content is fully displayed... CSS does not
> respond to that.
>
> The way I see things is : I create a Bean that represent a Content  
> (let
> say a "Short Article" ), then I create a Component responsible for
> displaying it and -in the Component or somewhere else- I should be  
> able to
> tell the component -on the fly before rendering operation- to use  
> this of
> that .tml file (all the .tml files would be present a the starting  
> of the
> App).
>
> Well, that it... Is it possible to do that (or something that would  
> do the
> same ) using Tapestry ?
>
> I hope that my question is clear and that I didn't bother you.
>
> Thanks for the time you spent reading my email :)
>
> Regards,
>
> Martin Papy
>

Howard Lewis Ship
TWD Consulting, Inc.
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: [Tapestry 5] Template question

Posted by Kheldar666 <ma...@liber-mundi.org>.
Yes, but Howard allready answered that it is not a good idea for the moment.



Fernando Padilla wrote:
> 
> Do you mean like skins or themes support?
> ( of which locale is just one dimensions for skins )
> 
> Kheldar666 wrote:
>> Hi again,
>> 
>> We tried your method in our Tapestry demos. It works fine, but it is not
>> very convinient for the moment. We were wondering if there is a way to
>> implement the same mecanism that is used by the "Localized Component
>> Templates". In fact this mecanism would perfectly feet our needs.
>> 
>> If it is possible to dynamicaly change Component Template based on the
>> Locale of the current user, why wouldn't it be possible based on another
>> criteria ?
>> 
>> Is there realy no way to implement such a mecanism in Tapestry ? May be
>> we
>> could tell Tapestry in which package to look for the Component templates
>> ?
>> 
>> Thanks a lot for the answer.
>> 
>> Regards,
>> 
>> Martin
>> 
>> 
>> Howard M. Lewis Ship wrote:
>>> Tapestry has always had a tight binding between the component class  
>>> and the template.  This is opposed to Struts et al, which has a weak  
>>> relationship (and a lot more configuration).
>>>
>>> To accomplish what you want to do, you can take one of several  
>>> approaches:
>>>
>>> - Have multiple pages, representing the same content in different  
>>> formats.  I.e. Article, ArticleShort, ArticleLong, ArticleRSS,  
>>> ArticlePrint, etc.
>>>
>>> - Have a component that dynamically selects another component based on  
>>> the desired format, specified via a parameter.  The metaphor here  
>>> would be a common method with a case statement.  This is roughly the  
>>> approach that the BeanEditor and Grid components use, to match  
>>> properties and their data types to components appropriate to view or  
>>> edit such a property.
>>>
>>> I tend toward the latter approach, though to accomplish some things  
>>> (such as widely differing content types :  RSS or PDF rather than text/ 
>>> html) you may need to combine the approaches.
>>>
>>>
>>>
>>> On Jan 5, 2008, at 1:44 AM, martin@liber-mundi.org wrote:
>>>
>>>> Hello,
>>>>
>>>> First of all I would like to wish you an happy new year, full of  
>>>> success
>>>> for you and your family :)
>>>>
>>>> My name is Martin, I work in a french web agencie as a lead  
>>>> developper and
>>>> architect, mainly on CMS applications.
>>>>
>>>> I did want to bother you with a direct question, but I asked this  
>>>> several
>>>> times on the Tapestry user mailing list, and no one was able to give  
>>>> me a
>>>> clear ( or satisfying ) answer.
>>>>
>>>> We have a client that use an old CMS of ours, and he wants us to  
>>>> develop a
>>>> new one for him. That is why I'm very interested in Tapestry 5. We  
>>>> started
>>>> to develop different Application to test Tapestry and quite  
>>>> everythings is
>>>> ok.
>>>>
>>>> But (there is always a but) there is something that I don't know how  
>>>> to do
>>>> with tapestry 5 : handeling different display methods for the same
>>>> content. On the mailing list everybody answer : use CSS. I'm sorry but
>>>> this is not good for us.
>>>>
>>>> If I want a display method that just display a Title and a Date with a
>>>> Link to the page where the content is fully displayed... CSS does not
>>>> respond to that.
>>>>
>>>> The way I see things is : I create a Bean that represent a Content  
>>>> (let
>>>> say a "Short Article" ), then I create a Component responsible for
>>>> displaying it and -in the Component or somewhere else- I should be  
>>>> able to
>>>> tell the component -on the fly before rendering operation- to use  
>>>> this of
>>>> that .tml file (all the .tml files would be present a the starting  
>>>> of the
>>>> App).
>>>>
>>>> Well, that it... Is it possible to do that (or something that would  
>>>> do the
>>>> same ) using Tapestry ?
>>>>
>>>> I hope that my question is clear and that I didn't bother you.
>>>>
>>>> Thanks for the time you spent reading my email :)
>>>>
>>>> Regards,
>>>>
>>>> Martin Papy
>>>>
>>> Howard Lewis Ship
>>> TWD Consulting, Inc.
>>> 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
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Re%3A--Tapestry-5--Template-question-tp14671112p15144236.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


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


Re: [Tapestry 5] Template question

Posted by Fernando Padilla <fe...@alum.mit.edu>.
Do you mean like skins or themes support?
( of which locale is just one dimensions for skins )

Kheldar666 wrote:
> Hi again,
> 
> We tried your method in our Tapestry demos. It works fine, but it is not
> very convinient for the moment. We were wondering if there is a way to
> implement the same mecanism that is used by the "Localized Component
> Templates". In fact this mecanism would perfectly feet our needs.
> 
> If it is possible to dynamicaly change Component Template based on the
> Locale of the current user, why wouldn't it be possible based on another
> criteria ?
> 
> Is there realy no way to implement such a mecanism in Tapestry ? May be we
> could tell Tapestry in which package to look for the Component templates ?
> 
> Thanks a lot for the answer.
> 
> Regards,
> 
> Martin
> 
> 
> Howard M. Lewis Ship wrote:
>> Tapestry has always had a tight binding between the component class  
>> and the template.  This is opposed to Struts et al, which has a weak  
>> relationship (and a lot more configuration).
>>
>> To accomplish what you want to do, you can take one of several  
>> approaches:
>>
>> - Have multiple pages, representing the same content in different  
>> formats.  I.e. Article, ArticleShort, ArticleLong, ArticleRSS,  
>> ArticlePrint, etc.
>>
>> - Have a component that dynamically selects another component based on  
>> the desired format, specified via a parameter.  The metaphor here  
>> would be a common method with a case statement.  This is roughly the  
>> approach that the BeanEditor and Grid components use, to match  
>> properties and their data types to components appropriate to view or  
>> edit such a property.
>>
>> I tend toward the latter approach, though to accomplish some things  
>> (such as widely differing content types :  RSS or PDF rather than text/ 
>> html) you may need to combine the approaches.
>>
>>
>>
>> On Jan 5, 2008, at 1:44 AM, martin@liber-mundi.org wrote:
>>
>>> Hello,
>>>
>>> First of all I would like to wish you an happy new year, full of  
>>> success
>>> for you and your family :)
>>>
>>> My name is Martin, I work in a french web agencie as a lead  
>>> developper and
>>> architect, mainly on CMS applications.
>>>
>>> I did want to bother you with a direct question, but I asked this  
>>> several
>>> times on the Tapestry user mailing list, and no one was able to give  
>>> me a
>>> clear ( or satisfying ) answer.
>>>
>>> We have a client that use an old CMS of ours, and he wants us to  
>>> develop a
>>> new one for him. That is why I'm very interested in Tapestry 5. We  
>>> started
>>> to develop different Application to test Tapestry and quite  
>>> everythings is
>>> ok.
>>>
>>> But (there is always a but) there is something that I don't know how  
>>> to do
>>> with tapestry 5 : handeling different display methods for the same
>>> content. On the mailing list everybody answer : use CSS. I'm sorry but
>>> this is not good for us.
>>>
>>> If I want a display method that just display a Title and a Date with a
>>> Link to the page where the content is fully displayed... CSS does not
>>> respond to that.
>>>
>>> The way I see things is : I create a Bean that represent a Content  
>>> (let
>>> say a "Short Article" ), then I create a Component responsible for
>>> displaying it and -in the Component or somewhere else- I should be  
>>> able to
>>> tell the component -on the fly before rendering operation- to use  
>>> this of
>>> that .tml file (all the .tml files would be present a the starting  
>>> of the
>>> App).
>>>
>>> Well, that it... Is it possible to do that (or something that would  
>>> do the
>>> same ) using Tapestry ?
>>>
>>> I hope that my question is clear and that I didn't bother you.
>>>
>>> Thanks for the time you spent reading my email :)
>>>
>>> Regards,
>>>
>>> Martin Papy
>>>
>> Howard Lewis Ship
>> TWD Consulting, Inc.
>> 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


Re: [Tapestry 5] Template question

Posted by Kheldar666 <ma...@liber-mundi.org>.
Hi again,

We tried your method in our Tapestry demos. It works fine, but it is not
very convinient for the moment. We were wondering if there is a way to
implement the same mecanism that is used by the "Localized Component
Templates". In fact this mecanism would perfectly feet our needs.

If it is possible to dynamicaly change Component Template based on the
Locale of the current user, why wouldn't it be possible based on another
criteria ?

Is there realy no way to implement such a mecanism in Tapestry ? May be we
could tell Tapestry in which package to look for the Component templates ?

Thanks a lot for the answer.

Regards,

Martin


Howard M. Lewis Ship wrote:
> 
> Tapestry has always had a tight binding between the component class  
> and the template.  This is opposed to Struts et al, which has a weak  
> relationship (and a lot more configuration).
> 
> To accomplish what you want to do, you can take one of several  
> approaches:
> 
> - Have multiple pages, representing the same content in different  
> formats.  I.e. Article, ArticleShort, ArticleLong, ArticleRSS,  
> ArticlePrint, etc.
> 
> - Have a component that dynamically selects another component based on  
> the desired format, specified via a parameter.  The metaphor here  
> would be a common method with a case statement.  This is roughly the  
> approach that the BeanEditor and Grid components use, to match  
> properties and their data types to components appropriate to view or  
> edit such a property.
> 
> I tend toward the latter approach, though to accomplish some things  
> (such as widely differing content types :  RSS or PDF rather than text/ 
> html) you may need to combine the approaches.
> 
> 
> 
> On Jan 5, 2008, at 1:44 AM, martin@liber-mundi.org wrote:
> 
>> Hello,
>>
>> First of all I would like to wish you an happy new year, full of  
>> success
>> for you and your family :)
>>
>> My name is Martin, I work in a french web agencie as a lead  
>> developper and
>> architect, mainly on CMS applications.
>>
>> I did want to bother you with a direct question, but I asked this  
>> several
>> times on the Tapestry user mailing list, and no one was able to give  
>> me a
>> clear ( or satisfying ) answer.
>>
>> We have a client that use an old CMS of ours, and he wants us to  
>> develop a
>> new one for him. That is why I'm very interested in Tapestry 5. We  
>> started
>> to develop different Application to test Tapestry and quite  
>> everythings is
>> ok.
>>
>> But (there is always a but) there is something that I don't know how  
>> to do
>> with tapestry 5 : handeling different display methods for the same
>> content. On the mailing list everybody answer : use CSS. I'm sorry but
>> this is not good for us.
>>
>> If I want a display method that just display a Title and a Date with a
>> Link to the page where the content is fully displayed... CSS does not
>> respond to that.
>>
>> The way I see things is : I create a Bean that represent a Content  
>> (let
>> say a "Short Article" ), then I create a Component responsible for
>> displaying it and -in the Component or somewhere else- I should be  
>> able to
>> tell the component -on the fly before rendering operation- to use  
>> this of
>> that .tml file (all the .tml files would be present a the starting  
>> of the
>> App).
>>
>> Well, that it... Is it possible to do that (or something that would  
>> do the
>> same ) using Tapestry ?
>>
>> I hope that my question is clear and that I didn't bother you.
>>
>> Thanks for the time you spent reading my email :)
>>
>> Regards,
>>
>> Martin Papy
>>
> 
> Howard Lewis Ship
> TWD Consulting, Inc.
> 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
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Re%3A--Tapestry-5--Template-question-tp14671112p15140169.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


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