I personally use this exact process for builkding widget based pages.....
Sent via BlackBerry by AT&T -----Original Message----- From: "Josh Canfield" <[EMAIL PROTECTED]> Date: Thu, 23 Aug 2007 11:16:55 To:"Tapestry users" <users@tapestry.apache.org> Subject: Re: T5:Tiles? I love delegate for this type of stuff. If you want to define a layout and let the page decide what goes in the layout define a block parameter and use delegate to render it: (this has been truncated and modified for brevity, so while this may not work out of the box it's full size cousin does work...) ------------ somepage.html ---------------- <t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <t:parameter name="sidebarContent"> Add this additional to the sidebar </t:parameter> All of this goes into the content section </t:layout> --------- layout.html ------------ <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head>...</head> <body> <div id="header">...</div> <div id="content-container"> <t:body/> </div> <div id="content-sidebar"> <!-- Let the page decide what goes in the sidebar --> <t:delegate to="sidebarContent"/> </div> <div id="footer">...</div> </body> </html> Enjoy, Josh On 8/23/07, Marcelo lotif <[EMAIL PROTECTED]> wrote: > > You can have one layout wrapping another component, like a menu or a > sidebar. Of course they are declared into separeted .html's. Then, into > the > Layout component you can 'call' the other components, like this call to an > existing Menu component into your workspace: > > <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> > <head> > <title> &{title}</title> > <link href="${layoutCSS}" rel="stylesheet" type="text/css"/> > </head> > <body> > <table width="100%" height="100%" border="0"> > <tr> > <td valign="top" height="100%"> > <t:menu/> <!-- this is the default for calling any > component --> > </td> > </tr> > <tr> > <td valign="top" height="100%"> > <t:body>Page content goes here.</t:body> > </td> > </tr> > </table> > </body> > </html> > > and under src/main/resources/org/example/myapp/components you must declare > the Menu.html file just like this: > > <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> > <a t:type="PageLink" page="foo">FOO</a> > </html> > > and the menu will be inserted on the location declared inside the Layout > component. I'm not sure if you have to create a Menu.java too, but i ever > do. > > here you can also specify multiple templates, but the difference, at least > in this example, is that you have a 'main' wrapper that define the 'face' > of > you app by a default call (t:body/>) and explicit calls to specified > components. > > Is that what you meant? > > 2007/8/23, Angelo Chen <[EMAIL PROTECTED]>: > > > > > > Hi Marcelo, > > > > This works, thanks. Is this documented in T5 site? > > > > The difference between this(Border?) and Tiles is, in Tiles layout you > can > > specify multiple JSPs, T5's border can have only one, but you can have > one > > after the other. so the syntax is: > > > > <t:file name> > > </t:file name> > > > > right? > > > > > > > > > > > > Marcelo lotif wrote: > > > > > > If this help, try to follow my example above: > > > > > > create a class under src/main/java/org/example/myapp/components called > > > Layout.java, for example. Now we put a css stylesheet and a title, > just > > to > > > illustrate: > > > > > > public class Layout { > > > > > > @Inject > > > @Path("context:assets/css/layout.css") > > > private Asset layoutCSS; > > > > > > private String title = "Some Title"; > > > > > > public Asset getLayoutCSS() { > > > return layoutCSS; > > > } > > > > > > public String getTitle() { > > > return title; > > > } > > > > > > } > > > > > > now, create a template under > > > src/main/resources/org/example/myapp/components > > > with the same name (i.e. Layout.html): > > > > > > <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> > > > <head> > > > <title>&{title}</title> > > > <link href="${layoutCSS}" rel="stylesheet" type="text/css"/> > > > </head> > > > <body> > > > <table width="100%" height="100%" border="0"> > > > <tr> > > > <td valign="top" height="100%"> > > > <t:body>Page content goes here.</t:body> > > > </td> > > > </tr> > > > </table> > > > </body> > > > </html> > > > > > > let the Start.html use this template as it's base adding this lines to > > it: > > > > > > <t:layout xmlns:t=" > http://tapestry.apache.org/schema/tapestry_5_0_0.xsd > > "> > > > <!-- put the rest of the page here --> > > > </t:layout> > > > > > > and you're done! > > > very simple! :) > > > > > > 2007/8/22, Anton Gavazuk <[EMAIL PROTECTED]>: > > >> > > >> Hi Angelo, > > >> I had the same question and as I understood - you have to write your > > own > > >> custom component > > >> see > > >> > http://tapestry.apache.org/tapestry5/tapestry-core/guide/templates.html > > >> and now I try to implement this - if you are interested - we can > > >> communicate > > >> about the topic and create some kind of howto... > > >> > > >> 2007/8/22, Angelo Chen <[EMAIL PROTECTED] >: > > >> > > > >> > > > >> > Hi, > > >> > > > >> > Is there a way to do something like Struts with Tiles in Tapestry > 5? > > >> > samples? Thanks. > > >> > > > >> > A.C. > > >> > -- > > >> > View this message in context: > > >> > http://www.nabble.com/T5%3ATiles--tf4310807.html#a12272065 > > >> > Sent from the Tapestry - User mailing list archive at Nabble.com. > > >> > > > >> > > > >> > > --------------------------------------------------------------------- > > >> > To unsubscribe, e-mail: [EMAIL PROTECTED] > > >> > For additional commands, e-mail: [EMAIL PROTECTED] > > >> > > > >> > > > >> > > > > > > > > > > > > -- > > > Atenciosamente, > > > Marcelo Lotif > > > > > > > > > > -- > > View this message in context: > > http://www.nabble.com/T5%3ATiles--tf4310807.html#a12291330 > > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Atenciosamente, > Marcelo Lotif > -- -- TheDailyTube.com. Sign up and get the best new videos on the internet delivered fresh to your inbox.