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.

Reply via email to