cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bruno Dumon <br...@outerthought.org>
Subject Re: [cforms] Widget states in request-scoped forms
Date Tue, 15 Mar 2005 08:34:31 GMT
On Tue, 2005-03-15 at 09:11 +0100, Reinhard Poetz wrote:
> Sylvain Wallez wrote:
> > Reinhard Poetz wrote:
> > 
> >> Sylvain Wallez wrote:
> >>
> >>> Reinhard Poetz wrote:
> >>>
> >>>>
> >>>> Today I've tried to run a form that uses the widget state 
> >>>> "INVISIBLE" and when the form state is saved in the request. (my 
> >>>> experiments are based on the form1 action example)
> >>>>
> >>>> If I use the event framework to change the state from ACTIVE to 
> >>>> INVISIBLE, toggling works, but the value of the changed widget gets

> >>>> lost.
> >>>>
> >>>> Looking at the samples I can't figure out ...
> >>>>
> >>>> - How can a widget have the state "INVISIBLE"? Where is this 
> >>>> information stored, or better from where is it read?
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Have a look at AbstractWidget.{get|set|getCombined}State() and also 
> >>> at WidgetState.
> >>>
> >>>> - If I'm right and the described behavior (losing the values of 
> >>>> INVISIBLE widgets) is a bug, how can it be fixed? Any ideas?
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> If it behaves as you describe it, then yes it's a bug. A field only 
> >>> reads its value when in ACTIVE state, and keeps its current value 
> >>> otherwise.
> >>
> >>
> >>
> >> and here seems to be the bug: the inactive widget can't keep its state 
> >> as its state would have to be available as request parameter and this 
> >> never comes (as it's inactive).
> > 
> > 
> > 
> > Hmm... before being invisible, the widget is active, no? So that means 
> > that its value is submitted along with the action that will change the 
> > state. So, except if you have some fancy layout, it should read its 
> > value before having its state changed.
> 
> I assume that it works so far but ...
> 
> > 
> > And later, once invisible, the widget doesn't read its value on the 
> > request.
> 
> if the widget is invisible, there is no request value any more and as the form 
> is not saved in the session, the widget loses its value.

Yep, though I'd say that's not a bug but a limitation. If you choose to
work stateless, there are some features you loose (for example, value
changed events won't do anything meaningful either).

-- 
Bruno Dumon                             http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
bruno@outerthought.org                          bruno@apache.org


Mime
View raw message