D'oh was a simple fix, use service:
 @InjectObject("service:tapestry.ognl.ExpressionEvaluator")
 
On Wednesday, August 16, 2006, at 07:54AM, Ryan Cuprak <[EMAIL PROTECTED]> 
wrote:

>
> 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]
>
>
>

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

Reply via email to