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