public Object calculate(Form form, Widget parent, Datatype datatype) {
try {
Object result = null;
if (initialResult != null) {
result = initialResult.evaluate(new ExpressionContextImpl(parent, true));
}
WidgetFinder finder = new WidgetFinder(parent, this.repeatOn, false);
Collection widgets = finder.getWidgets();
for (Iterator iter = widgets.iterator(); iter.hasNext();) {
Widget widget = (Widget) iter.next();