Tim Larson wrote:

On Thu, Sep 09, 2004 at 03:46:52PM +0200, Sylvain Wallez wrote:
<snip/>


I started implementing an "on-create" event listener, but failed on that same problem, as the whole form must be in a consistent state before that event can be fired, because the event listener can potentially reference any other widget.



What were you going to use "on-create" events for? I am guessing mainly
for new repeater rows and newly referenced union cases?



Exactly. In flat forms, custom initializations can be done in the flowscript between "new Form()" and "form.showForm()", but I the case of dynamically created widgets, this cannot be done that way.


I have some complex use cases where the case field of an union, itself in a class, has a selection-list that is defined by analyzing the values defined somewhere else in the form.

Still following me? If not, you need to attend my presentation at the GT ;-)

So the idea is that in "on-create", the widget gathers in the form the necessary data to build and set its own selection list.

Even for flat forms, this create-event can allow custom initialization code that currently is written in the flowscript back in the definition, thus making the form definition self-contained in a single file.

So your initialize() stuff could be a solution to finish the implementation of create-event. However, that event must also be fired when a widget is creater later during the life for the form, e.g. when a new repeater row is created. So initialize() must also be called in that case.



I already handle that case, and also calling initialize() for the
created-on-demand child widgets of union widgets. Should I commit?



+1. I'll add the "on-create" stuff on top of this.

Sylvain

--
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }



Reply via email to