For now there are no widget types using simple selection components (expect the
boolean checkbox widget type). There are 6 JSF components of interest in this mat -
Each of these components could be mapped to generic widget types. The difficulty
is about expressing available values.
There are two standard ways of declaring available values on these components.
Using tag "f:selectItem" for each available selection:
Using tag "f:selectItems" for all available selections:
Any number of these tags can be combined to add selection values to the global se -
lect. Nuxeo add two kinds of tags to these standard select items.
A first one makes it possible to build selections from any kind of object list (and not
only a map for instance):
A second one makes it possible to take into account directory values. It also support
filter of obsolete entries, and usage of a sort criterion:
These ways to declare selections should be made available through XML
Syntax is still to discuss.
2.5.2 Directorywidget types
SelectOne and SelectMany directory widget types are using hardcoded schema
names (vocabulary, xvocabulary) which makes it very difficult to adapt when work-
ing with other schemas. Also, only two of the previously presented six available se-
lectors have been defined to work with directories.
Only the usage of the "nxdir:selectItems" tag combined with standard select com-
ponents makes it possible to define such selections.
However, these components offer features that are currently not supported by gen -
eric selection items:
- read only mode, to be able to reuse the same component features in view mode
(displayValueOnly), with separator in case it is multi-valued
- automatic translation of labels
Some other features are supported but may require additionnal configuration, like
displaying the disabled selection item stating "please select a value".
For better code maintenance, these components could be mapped to facelet
handlers that would generate the needed sub-components when calling only one
dedicated tag with the appropriate attributes.
Other similar components (selectOneRadio, selectManyCheckbox) could be added
easily following the same principle.
Chain select components would also benefit from this kind of refactoring: their
implementation is blurry, buggy, and their behaviour can easily be done using the
above directory selectors, combined with ajax calls to restrict values from a second
selector, or add some selections to a list.
One of the features to expect is to be able to configure a n-level chain select just by
giving attributes like : directoryLevel1 = directoryLevel2= directoryLevel3= , ...
TODO: make a detailed list of chain select features before deciding how it should be rewritten or repackaged.