bruno       2003/11/06 03:35:08

  Modified:    src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript
                        ScriptableWidget.java
  Log:
  Read access to MultiValueField through flow script
  Contributed by: Daniel Fagerstrom
  
  Revision  Changes    Path
  1.3       +21 -0     
cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/ScriptableWidget.java
  
  Index: ScriptableWidget.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/ScriptableWidget.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ScriptableWidget.java     24 Sep 2003 20:47:06 -0000      1.2
  +++ ScriptableWidget.java     6 Nov 2003 11:35:08 -0000       1.3
  @@ -99,6 +99,10 @@
               if (id.equals("length")) {
                   return true;
               }
  +     } else if (delegate instanceof MultiValueField) {
  +            if (id.equals("length")) {
  +                return true;
  +            }
           } else if (delegate != null) {
               Widget sub = delegate.getWidget(id);
               if (sub != null) {
  @@ -113,6 +117,10 @@
               Repeater repeater = (Repeater)delegate;
               return index >= 0 && index < repeater.getSize();
           }
  +        if (delegate instanceof MultiValueField) {
  +            Object[] values = (Object[])delegate.getValue();
  +            return index >= 0 && index < values.length;
  +        }
           return super.has(index, start);
       }
   
  @@ -122,6 +130,11 @@
                   Repeater repeater = (Repeater)delegate;
                   return new Integer(repeater.getSize());
               }
  +        } else if (delegate instanceof MultiValueField) {
  +            if (id.equals("length")) {
  +                Object[] values = (Object[])delegate.getValue();
  +                return new Integer(values.length);
  +            }
           } else if (delegate != null) {
               Widget sub = delegate.getWidget(id);
               if (sub != null) {
  @@ -145,6 +158,14 @@
                   }
                   return wrap(repeater.getRow(index));
               }
  +        }
  +        if (delegate instanceof MultiValueField) {
  +            Object[] values = (Object[])delegate.getValue();
  +            if (index >= 0 && index < values.length) {
  +                return values[index];
  +            } else {
  +           return NOT_FOUND;
  +         }
           }
           return super.get(index, start);
       }
  
  
  

Reply via email to