Hi all,

We have an issue with Form where it automatically adds hidden fields, such as the form-name field, which can create some surprising effects with the insert order. For example:

form.add(field1);
form.add(field2);
form.insert(field3, 1);

It would seem that textField3 would be inserted between field1 and field2. However because of the hidden fields added by Form, field3 would be inserted before field1.

We could add the hidden fields in the Form #render method instead, however subclasses can forget to add the hidden fields which would break the Form.

Since ControlRegistry supports registering multiple listeners for the same control, I've been thinking of introducing different "phases" when listeners would be fired. In the case of Form, a POST_ON_RENDER phase would be useful which invokes registered listeners after the onRender event.

So in short ControlRegistry phase callbacks would allow developers to register listeners (callbacks) which are guaranteed to be called and cannot be overridden.

For now the phases supported would be POST_RENDER and POST_PROCSES. POST_PROCESS is the current default which fires after controls have been processed.

regards

bob

Reply via email to