RE: T5 tab-like component

2007-06-11 Thread Kristian Marinkovic
Hi Erik, 

in T5 its very easy to create a tab component. 
Just create a component for every tab you have.
Then add a Delegate to the page that should 
display the tab and bind the to parameter of
the Delegate to a method. This method then returns
the respective tab component

example code:

template:
t:delegate to=selectedTab/
a t:id=tab1_linktab1/a
a t:id=tab2_linktab2/a
t:block
div t:id=tab1 /
div t:id=tab2 /
/t:block

java class:

// dont forget getter methods
@Component private Tab tab1_link
@Component private Tab tab2_link

// because of redirect
@Persist(flash) private int selectedComponent;

public void onActionFromTab1_link()  { selectedComponent = 1;}
public void onActionFromTab2_link()  { selectedComponent = 2;}

public Object selectedTab() {
if(selectedComponent == 1)
return tab1;
if(selectedComponent == 2)
return tab2;
return tab1;
}

g,
kris




Erik Vullings [EMAIL PROTECTED] 
10.06.2007 11:54
Bitte antworten an
Tapestry users users@tapestry.apache.org


An
Tapestry users users@tapestry.apache.org
Kopie

Thema
T5 tab-like component






Hi all,

Since there does not seem to be a T5 tab component, should I use the Dojo
one? Furthermore, what's the best way to use it for offering multiple 
views
on the same object. For example, when choosing a user in a list, I would
like to use a tab-like view to show business details, personal details, 
etc.
However, I would like to separate the development of these views as much 
as
possible, and would prefer not to put everything in one view/page, i.e. I
would prefer not to create one page, and have something like
t:if Tab1Generate tab 1 content/t:if
 t:if Tab2Generate tab 2 content/t:if
etc.

What would be the best way to achieve this separation of concern?

Thanks
Erik



Re: T5 tab-like component

2007-06-11 Thread Erik Vullings

Thanks Kris, for the great explanation!!! It also thaught me the use of the
delegate and block components. I've taken the liberty to add your example to
the T5 Wiki (attributed to you, of course),
http://wiki.apache.org/tapestry/Tapestry5HowToCreateATabPanel. If you see
any mistakes, please feel free to correct them (or point them out to me)...

Cheers
Erik


On 6/11/07, Kristian Marinkovic [EMAIL PROTECTED] wrote:


Hi Erik,

in T5 its very easy to create a tab component.
Just create a component for every tab you have.
Then add a Delegate to the page that should
display the tab and bind the to parameter of
the Delegate to a method. This method then returns
the respective tab component

example code:

template:
t:delegate to=selectedTab/
a t:id=tab1_linktab1/a
a t:id=tab2_linktab2/a
t:block
   div t:id=tab1 /
   div t:id=tab2 /
/t:block

java class:

// dont forget getter methods
@Component private Tab tab1_link
@Component private Tab tab2_link

// because of redirect
@Persist(flash) private int selectedComponent;

public void onActionFromTab1_link()  { selectedComponent = 1;}
public void onActionFromTab2_link()  { selectedComponent = 2;}

public Object selectedTab() {
   if(selectedComponent == 1)
   return tab1;
   if(selectedComponent == 2)
   return tab2;
   return tab1;
}

g,
kris




Erik Vullings [EMAIL PROTECTED]
10.06.2007 11:54
Bitte antworten an
Tapestry users users@tapestry.apache.org


An
Tapestry users users@tapestry.apache.org
Kopie

Thema
T5 tab-like component






Hi all,

Since there does not seem to be a T5 tab component, should I use the Dojo
one? Furthermore, what's the best way to use it for offering multiple
views
on the same object. For example, when choosing a user in a list, I would
like to use a tab-like view to show business details, personal details,
etc.
However, I would like to separate the development of these views as much
as
possible, and would prefer not to put everything in one view/page, i.e. I
would prefer not to create one page, and have something like
t:if Tab1Generate tab 1 content/t:if
t:if Tab2Generate tab 2 content/t:if
etc.

What would be the best way to achieve this separation of concern?

Thanks
Erik