bruno 2003/06/26 02:14:33
Modified: src/blocks/woody/java/org/apache/cocoon/woody/formmodel ExpressionContextImpl.java Log: Added new constructor Revision Changes Path 1.2 +16 -1 cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/formmodel/ExpressionContextImpl.java Index: ExpressionContextImpl.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/formmodel/ExpressionContextImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ExpressionContextImpl.java 22 Apr 2003 12:04:19 -0000 1.1 +++ ExpressionContextImpl.java 26 Jun 2003 09:14:33 -0000 1.2 @@ -60,9 +60,20 @@ */ public class ExpressionContextImpl implements ExpressionContext { private Widget widget; + private boolean referenceChildren; public ExpressionContextImpl(Widget widget) { this.widget = widget; + this.referenceChildren = false; + } + + /** + * @param referenceChildren if true, variables will be resolved among the children of the given + * container widget, rather than among the siblings of the widget. + */ + public ExpressionContextImpl(ContainerWidget widget, boolean referenceChildren) { + this.widget = widget; + this.referenceChildren = referenceChildren; } /** @@ -85,7 +96,11 @@ */ public Object resolveVariable(String name) { // TODO allow to access other widgets instead of only siblings (allow going up with ../ notation or something) - Widget widget = this.widget.getParent().getWidget(name); + Widget widget; + if (!referenceChildren) + widget = this.widget.getParent().getWidget(name); + else + widget = ((ContainerWidget)this.widget).getWidget(name); if (widget != null) { Object value = widget.getValue();