Hi,
Define Blocks containing the different states you need and use a
Delegate to render the block you need based on an expression. This way
you can do the whole if-then-else/switch stuff in your page class.
Template:
<t:block t:name="block1">...</t:block>
<t:block t:name="block2">...</t:block>
<t:delegate t:to="activeblock">
Class:
@Inject
private ComponentResources resources;
public Block getActiveBlock() {
String blockId = ...;
return resources.getBlock(blockId);
}
It's also possible to have the blocks on another page, in that case you
can get the page through ComponentSource#getPage, get its
ComponentResources, and go from there.
http://tapestry.apache.org/tapestry5/guide/templates.html (see <block>)
http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/Block.html
http://tapestry.apache.org/tapestry5/tapestry-core/ref/org/apache/tapestry5/corelib/components/Delegate.html
http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/ComponentResourcesCommon.html#getBlock(java.lang.String)
http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/services/ComponentSource.html#getPage(java.lang.Class)
-Filip
On 2008-10-02 14:39, János Jarecsni wrote:
Hi Uli,
thanks, I did not know about these. However, what if I have to switch
between more states? If seems to be awkward in that case (if embedding is
possible at all).
Thanks
Janos
2008/10/1 Ulrich Stärk <[EMAIL PROTECTED]>
Have a look at the If
(
http://tapestry.apache.org/tapestry5/tapestry-core/ref/org/apache/tapestry5/corelib/components/If.html
)
and Zone
(
http://tapestry.apache.org/tapestry5/tapestry-core/ref/org/apache/tapestry5/corelib/components/Zone.html
)
components.
Uli
Am Mi, 1.10.2008, 17:06, schrieb János Jarecsni:
Hi guys,
is there a way to change the template (piece of the template) which gets
generated, depending on state? Here is what I mean:
Given a component C, its C.tml looks like the following:
<html>blabla...
//if (loggedIn)
Logged in
//else
Not Logged in
</html>
Of course I know this concrete problem can be solved using expansion. But
I'm now after replacing large chunks of the template depending on state.
It
is easy to do so in a JSP page for example.
Thanks in advance,
janos
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]