... or in 4.1 the service is injected automatically, so you don't need the @InjectObject annotation.

Regards,
Norbi

Ryan Cuprak wrote:
 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]







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

Reply via email to