This is how I solved it for now:

- I have overridden FormTable#onProcess() in my own AbstractFormTable
class
- Copied the entire contents of FormTable#onProcess()
- In method onProcess() cast the column to my AbstractAttributeColumn
- Ripped out the Ognl.setValue(...) part and replaced it with
myColumn.setProperty(row, field)
- implemented the setProperty() in various subclasses

This has resulted in a very clean AbstractAttributeColumn which
implements the methods getProperty(Object row) and setProperty(Object
row, Field field). I can use the Field to get the Stirng value and parse
it to fit my object.

So yes, that would definately work for me. :) 

If I can do anything to help Click make more progress I'd be happy to
offer my help.

Cheers,

WarnerJan


On Thu, 2009-04-23 at 14:00 +0200, Bob Schellink wrote:
> WarnerJan Veldhuis wrote:
> > 
> > Now comes the anti-climax: when that form is submitted, there is no way
> > to manually set the value for that field. Since the name of the Field
> > will look like "SA_15", the Ognl lib will look for a property
> > ModelObjectVO#setSA_15(Object) which is obviously not going to work,
> > since the value needs to be set on the AttributeVO. 
> > 
> > I immediately wanted to override FieldColum#setValue(), but there was
> > none :(. 
> 
> 
> Hmm to handle your use case it seems FieldColumn will need a new 
> method setProperty which by default uses OGNL to copy the value to the 
> Object. For more complex use cases it can then be overridden.
> 
> Would that work for you?
> 
> kind regards
> 
> bob


Reply via email to