Dom,
This is working great! Following your example helped me to better
understand the table component too.
Specifically, it never occurred to me that I could generate the string
for the table columns in the class file like this:
public String getTableColumns()
{ //Column id:Column Title:ognl expression
//value="literal:id, firstName:First
name:name.firstName,lastName:name.lastName, telNo"/>
return
"data0:ID:getUserDetails('USERGUID'),data1:Email:getUserDetails('EMAIL'),data2:First
Name:getUserDetails('FIRSTNAME'),data3:Last
Name:getUserDetails('LASTNAME')";
}
Here is my page spec:
<component id="table" type="Contrib:Table">
<binding name="source" value="users"/>
<binding name="columns" value="tableColumns"/>
<binding name="columnsClass" value="literal:title"/>
<binding name="pageSize" value="10"/>
</component>
<component id="data1ColumnValue" type="Block"/>
<component id="emailLink" type="DirectLink">
<binding name="listener" value="listener:onShowDetails"/>
<binding name="parameters"
value="components.table.tableRow.getUserDetails('EMAIL')"/>
</component>
<component id="emailLinkDisplay" type="Insert">
<binding name="value"
value="components.table.tableRow.getUserDetails('EMAIL')"/>
</component>
and my html:
<table border="1" jwcid="table">
<tr>
<th>id</th><th>email</th>
</tr>
<tr>
<td>1</td>
<td jwcid="data1ColumnValue">
<a href="" jwcid="emailLink">
<span jwcid="emailLinkDisplay">[EMAIL PROTECTED]</span>
</a></td></tr></table>
I am really liking the results, but I feel like I am violating the MVC
separation. I think that is because my keys (like "LASTNAME") are the
column names I read from a db table's metadata (part of the model).
I guess I am wanting the best of both: MVC separation and not having
to write redundant code to access all the parts of the model. At the
moment I am not using an ORM to create accessor methods for me, so
that's why I am using a map with db columns (grabbed via metadata
commands) as the keys.
This is kinda OT for Tapestry, but do you think this is violating MVC?
Daniel
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]