You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Bruno Dumon <br...@outerthought.org> on 2004/04/27 10:17:41 UTC
Re: Widget states again (was Re:
fi:booleanfield[fi:styling/@type='output'])
On Tue, 2004-04-27 at 08:30, Sylvain Wallez wrote:
> Joerg Heinicke wrote:
>
> > On 26.04.2004 23:43, Sylvain Wallez wrote:
> >
> >>> They would also be reset after request.
> >>>
> >>> These stylings make only sense if the form widget values are not
> >>> evaluated. I can imagine a confirmation page, where just the submit
> >>> widget (ok vs. cancel) is evaluated.
> >>
> >>
> >> BooleanField is special as "no parameter" means "false", but for
> >> regular Fields, what do you think about not resetting the value to
> >> null if the request parameter is not present? This would make
> >> @type="output" more useful than it is today.
> >
> >
> > I would like to see a more explicite setting for this behaviour - and
> > also supporting all widget types. We already talked a bit about a
> > direction="save|load|both" for the field definition in relation to
> > reading the values from request. This would replace fd:output and
> > styling="output" with the above mentioned consequences.
>
>
> Having this handled by a widget state rather than a particular styling
> sounds better. But although save/load/both makes sense for the binding,
> it doesn't IMO fit for widgets. What's the meaning of a widget in
> "save-only" mode? A widget that can be given a value by the user but
> which is never output by the application? It doesn't make sense.
>
> At the time where we discussed this, I proposed active/disabled/hidden,
> which is more traditional for GUI widgets:
> - active is the normal behaviour (what we have today)
maybe "enabled" is better as name, opposite of disabled?
> - disabled is like @type=output with the additional behaviour that the
> request parameter isn't considered (avoids hacking using forged requests)
> - hidden means that the widget doesn't output its SAX fragment,
> effectively hiding the value along with ignoring the request parameter
> as in disabled state.
>
> This kind of feature is a must-have for complex workflows or
> authorization schemes as it allows a single form and template to be
> easily adjusted to the authorized visibility and modification, depending
> on the application context.
So I presume the goal is to make this adjustable on the instance-level.
I see no problem when doing this as a one-time configuration after
creation of the form. I imagine people will however be changing this
dynamically also, i.e. between form submits. This might then give
troubles (or unexpected results) if a user goes back and submits an old
form, i.e. one in which a few widgets were disabled, to a form instance
where now those widgets are enabled. I see this mostly as a problem the
application developer should handle.
--
Bruno Dumon http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
bruno@outerthought.org bruno@apache.org