Toby wrote:
I'm trying to implement a dynamic selection list for a form field.
I need to extract the selection values and labels from a database.

The only way of filling a selection list with dynamic values, that I
could glean from the documentation, is by using flow-jxpath.

Which poses the problem of how to make a SQL query in javascript.

It can be done, though the syntax isn't quite as nice. You could also implement the query in a Java method and just call that method from Javascript to get back a List of items.

But there's also JavaSelectionList, which mysteriously doesn't appear to be in the published user docs. It sounds like this is closer to what you're looking for.

To use it, create a Java class that extends AbstractJavaSelectionList[1]. It will need to implement the build() abstract method; in this method you can run your query to get the list of items, and then add those items to the selection list by calling addItem(value, label) for each. Then return either true or false depending on whether or not you want the selection list to be rebuilt every time or just the first time.

Then in your form definition, reference your class like so:

<fd:field id="...">
   ...
   <fd:selection-list type="java" class="foo.bar.MyJavaSelectionList" />
</fd:field>

The fd:selection-list element also accepts a nullable="true" attribute for if you want a null item to be added to the top of the list.

In addition, you can add any arbitrary attributes you want and then access their values within your Java class via getAttribute(name). This is a very easy way to use the same class many times with different parameters affecting its behavior.

Hope that helps!
--Jason

[1] http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/forms/datatype/AbstractJavaSelectionList.html



Or, if flowscript could fetch an arbitrary sitemap URI and access the
generated XML data, I could write the query in ESQL.  Is it possible?

Am I barking at the wrong tree here?  How should I proceed?


Toby



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to