You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "Ivan S. Georgiev" <iv...@mail.orbitel.bg> on 2007/01/02 23:07:31 UTC
Add paremeter in For type component
Hi all,
I am quite new to tapestry. I am trying to run a simple menu. It is made
with links and sublinks - when user click links, the sublinks are shown
below the lhe parent link. I was wondering if I can pass a paremeter
with the current link evaluated to the 'sublinks' component so in my
Home.java the method should be getSublinks(String currentLink).
Here is the current code - all sublinks are displayed for each link:
Home.page
<page-specification>
<property name="aLink"/>
<property name="aSublink"/>
<component id="links" type="For">
<binding name="source" value="links"/>
<binding name="value" value="aLink"/>
<binding name="element" value="literal:tr"/>
</component>
<component id="sublinks" type="For">
<binding name="source" value="sublinks"/>
<binding name="value" value="aSublink"/>
<binding name="element" value="literal:tr"/>
</component>
<component id="linkName" type="Insert">
<binding name="value" value="aLink"/>
</component>
<component id="sublinkName" type="Insert">
<binding name="value" value="aSublink"/>
</component>
<component id="detailsLink" type="DirectLink">
<binding name="listener"
value="listener:onClickDetailsLink"/>
<binding name="parameters" value="aLink"/>
</component>
<component id="subDetailsLink" type="DirectLink">
<binding name="listener"
value="listener:onClickDetailsLink"/>
</component>
</page-specification>
----
Home.html
<html>
<head>
<title>TestLinks</title>
</head>
<body>
<table border="1">
<tr jwcid="links">
<td colspan=2>
<a href="" jwcid="detailsLink"><span
jwcid="linkName">Link</span></a>
</td>
<tr jwcid="sublinks">
<td></td>
<td>
<a href=""
jwcid="subDetailsLink"><span jwcid="sublinkName">SubLink</span></a>
</td>
</tr>
</tr>
</table>
</body>
</html>
----
Home.java
public abstract class Home extends BasePage {
@InjectPage("Home")
public abstract Home getHome();
@Persist("client")
public abstract String getSelected();
public abstract void setSelected(String selected);
public void onClickDetailsLink(String selected) {
setSelected(selected);
getHome();
}
public Collection getLinks() {
ArrayList<String> list = new ArrayList<String>();
list.add("Link1");
list.add("Link2");
return list;
}
public Collection getSublinks() {
if (getSelected() != null) {
if (getSelected().equals("Link1")) {
ArrayList<String> list = new
ArrayList<String>();
list.add("SubLink1");
list.add("SubLink2");
return list;
}
if (getSelected().equals("Link2")) {
ArrayList<String> list = new
ArrayList<String>();
list.add("SubLink3");
list.add("SubLink4");
return list;
}
}
return new ArrayList<String>();
}
}
Thanks in advance,
Regards,
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org