Thanks,
 That is much simpler!
 For the ExpressionTableColumn I need a ExpressionEvaluator as the last 
parameter. I think it is a tapestry service (still digging through the binding 
files), thought this would work:
    @InjectObject("infrastructure:tapestry.ognl.ExpressionEvaluator")
    public abstract ExpressionEvaluator getExpressionEvaluator();
   (also tried engine-service)

 However I get a nice exception that it can't find the service etc.

 -Ryan 
 
On Wednesday, August 16, 2006, at 07:10AM, Robert Zeigler <[EMAIL PROTECTED]> 
wrote:

>If you want, you don't even have to implement ITableColumnModel.
>just do something like:
>.html:
><table jwcid="@contrib:Table" source="ognl:theSource"
>columns="ognl:columnList"/>
>
>.java:
>
>public List getColumnList() {
>    List ret = new ArrayList();
>    String columnId="callPointH";
>    String columnHeader="Call Point H";
>    //not that the root of your ognl expression is the current row obj.
>    String ognlExpression = "callPoinH";
>    boolean sortable=true;
>    ret.add(new
>ExpressionTableColumn(columnId,columnHeeader,ognlExpression,sortable);
>    return ret;
>}
>
>Ryan Cuprak wrote:
>> Hello, 
>>  I am working creating a table for which the number of columns is dynamic 
>> (user can control which columns they want displayed). What is the proper 
>> approach for implementing the behavior? 
>> 
>>   Thus far I created an implementation of ITableColumnModel which then 
>> returns the custom set of columns. I initially returned SimpleTableColumn 
>> instances but was getting a 'Unable to read OGNL expression '<parsed OGNL 
>> expression>' of [EMAIL PROTECTED]/image/bands.tableColumns]: 
>> tableColumnRenderer' exception (src below). After getting this exception I 
>> thought my approach might be wrong. Looking over the code I was a little 
>> puzzled on how my column would extract the values from the model etc. 
>> Looking through the contrib:table source I chanced upon 
>> 'ExpressionTableColumn'. There are no java docs so I am not quiet sure how 
>> it is supposed to be used. From the title I 'think' this would take ognl 
>> expressions and retrieve the values from my data model? However, I am not 
>> quiet sure how to contruct an instance - where/what do I use for an 
>> ExpressionEvaluator? 
>> 
>> Page spec:
>>      <component id="bands" type="Contrib:Table">
>>         <binding name="source" value="tableModel"/>
>>         <binding name="columns" value="ognl:tableColumnModel"/>
>>         <binding name="rowsClass" value="beans.evenOdd.next"/>
>>         <binding name="columnsClass" value="literal:title"/>
>>     </component> 
>> 
>> My TableColumnModel (only one field, was trying to get it working first..):
>>  public class BandSummaryColumnModel implements ITableColumnModel {
>> 
>>     private static final Logger logger = 
>> Logger.getLogger(BandSummaryColumnModel.class);
>> 
>>     private Map<String, ITableColumn> _columns;
>> 
>>     public BandSummaryColumnModel() {
>>         if(logger.isDebugEnabled()) logger.debug("Instantiating 
>> BandSummaryColumnModel");
>>         _columns = new HashMap<String,ITableColumn>();
>>         _columns.put("callPointH",new 
>> SimpleTableColumn("callPointH","callPointH",true));
>>     }
>> 
>>     public int getColumnCount() {
>>         if(logger.isDebugEnabled()) logger.debug("Column count: " + 
>> _columns.size());
>>         return _columns.size();
>>     }
>> 
>>     public ITableColumn getColumn(String string) {
>>         if(logger.isDebugEnabled()) logger.debug("Column requested: " + 
>> string);
>>         return _columns.get(string);
>>     }
>> 
>>     public Iterator getColumns() {
>>         if(logger.isDebugEnabled()) logger.debug("Column iterator 
>> requested");
>>         return _columns.entrySet().iterator();
>>     }
>> }
>> 
>>  Thanks!
>>  Ryan
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> 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]
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to