cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Franziska Witzani" <>
Subject Problems with serialization and Union Widget
Date Tue, 08 May 2007 15:16:04 GMT
Hi there!

Is there anybody who can tell me where the location (which method in which call) is, where
the Form-object reads it’s values from the request?
Or, more precisely, where it decides which widgets have been updated or not?

I’d like to know this, because I am facing a problem with using the Union Widget.

Imagine the following case (sorry for the complex explanation!): 
A form containing a union widget, which itself contains several widgets (which are displayed
exclusively, depending on another widget…- this is actually what union widget is for - …lets
call them Inner-Widgets!).

This form is displayed (lets say Inner-Widget #1 is displayed), the user submits the form,
afterwards the form reads its values from the request. So far, so good.
Later on, the user decides to go back (with continuations) because he wants to change the
values of the form. There he changes as well the value of the widget which decides which Inner-Widget
is displayed. So another Inner-Widget ( Inner-Widget #2) is displayed and sends its values
with the request.

The problem is now the following:
The Form-object now holds both the values the user has entered in Inner-Widget #1 and those
of Inner-Widget #2.
But if I want to serialize the values dynamically (like: plz, form-object, write all your
values into the PageLocal-Object… [we had that some time ago])  it is necessary that the
Form-Object somehow throws away all the values that didn’t come with the request.
But it doesn’t. 

With searching the source code I came so far that I found the methods where the fields read
their new values, but there must be a place where something like “Set updatedWidgets”
is set. (this is e.g. from
Can anybody tell me where to look, or even better, if there is a way to somehow parameterize
the form that it always updates itself with ALL its values and not only those, which came
with the request?

The thing seems to be that this Set of updatedWidgets only consists of the parameters sent
with the HTTP-Request. So the Form-Object does not know that the values of Inner-Widget #1
should be deleted, because there were no more html-elements of Inner-Widget #1.

Regards and thanks a lot for your answers already!



PS: Another solution could be changing the javascript that restructures the HTML on the client-side
after changing the value of the widget that decides about the displayed Inner-Widget. And
after the change setting the values of Inner-Widget #1 to null.
Does anybody know where that is?



View raw message