I have a problem with my ids.

The objects for my list have an id as value and a name as label.
So my Definition for the widgets looks like this:
<fd:datatype base="integer" />
When I use string it complains that it expects string but recieved integer (because the ids are int in their objects)

But now it says:
"Cannot format given Object as a Number"

You defined as string as datatype. Are your attributes in your classes also string?
In my caste they are the primary keys from the database table...

Thx so far.

Dennis


Bart Molenkamp wrote:

Hi Dennis,

I don't exactly understand what you mean, but I'll try to answer. You
can configure
your selection list class as I showed you below. For example, a simple
field widget
which has a selection list:

<fd:field id="user" required="true">
 <fd:datatype base="string"/>
 <fd:label>...</fd:label>
<fd:selection-list type="java" nullable="false"
   class="my.lists.UserSelectionList"/>
</fd:field>

The forms framework will create a new instance of your list, set it up
(see any Avalon
Documentation for that). The forms framework will call your list when
required, and
you need to write code to populate the list. CForms will read this, and
put the data
in a widget. E.g.

class MyList extends AbstractSelectionList {
....
protected boolean build() throws Exception {
 PersistenceManager persistenceManager =
this.manager.lookup(PersistenceManager.ROLE);
 Collection users = persistenceManager.getAllUsers();
 Iterator i = users.iterator();
 while (i.hasNext()) {
   User user = i.next();
   addItem(user.getId(), user.getName());  // Add a user to the form.
 }

 ...
 return true;  // dynamic: CForms rebuild this list when it is
displayed again.
}


It is up to you to set rebuild to true or false.

HTH,
Bart.

________________________________________
Van: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Verzonden: donderdag 2 juni 2005 18:01
Aan: [email protected]
Onderwerp: Re: Selection-List CocoonForms

Hi.
At first a lot of thanks to Derek for these interesting alternatives.
Didn`t thought of it this way (using Sitemap, XML and XSL) although
thats the cocoony way of doing it isn`t it? (Cocoon - xml publishing
framework). Thx alot.

Second: that is the solution I am looking for. Thx Bart.
But how do I give my SelectionList Class to the Form? Will I put the
Instance in a viewData Array and give it to the pipeline?
Do you set rebuild on usage on true or false in your SelectionList
Class?

Dennis


Bart Molenkamp wrote: Hi,

There is a Java implementation. You can write a class that extends
org.apache.cocoon.forms.datatype.AbstractJavaSelectionList and then add
something like this to your <fd:field>:

<fd:selection-list type="java"
 class="my.cocoon.MySelectionList"

I use it myself to create a list from some database resources.

HTH,
Bart.

-----Oorspronkelijk bericht-----
Van: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Verzonden: donderdag 2 juni 2005 14:15
Aan: cocoon user mailing list
Onderwerp: Selection-List CocoonForms

Hello.
Is there no other possibility for dynamic selection lists than
-flow-jxpath implementation
-enum implementation
??

I want to load the data for my selection list from database and like
the JSF idea with backing beans load my bean into my form.
So the selection list should be able to read the collection of items,
display them and I must save the selection in my bean to save the data
to database.

Thx for any idea.

Dennis

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


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




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




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

Reply via email to