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();
   
  
  
  

Reply via email to