Timothy Larson wrote:

I implemented a "Class" widget definition which contains a list of widgets,
but its createInstance() is designed to not create instances of those widgets.
Instead, you use a "New" widget definition which references a "Class" widget
definition, and the "New" createInstance() creates instances of the class's
widgets.  The issue is that this breaks the sequence that is used in the
container widgets (Form, Repeater, etc.):
 subwidget = subdefinition.createInstance();
 parentwidget.addWidget(subwidget);
What do you think of changing this to:
 subdefinition.createInstance(parentwidget);
and in the subwidget definition's createInstance() have this:
 widget = new SomeWidget();
 parentwidget.addWidget(widget);

This would involve changing the signature of createInstance(), making addWiget()
public, and touching every widget to make the changes.

What do you think?



Why not, if this is required by the union widget, although I must admit I not fully understand the need :-/


But we must ensure that we won't go into an infinite loop through e.g. parent.addWidget(child) calling child.setParent(parent) and in turn parent.addWidget(child)... Note that this can be avoided e.g. by testing that child.getParent() != parent before calling child.setParent(parent)

Sylvain


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




Reply via email to