Say you have list of options - new Boolean[] { null, True, False }.
so Null is a valid value. Why don't we allow choice renderer to assign id value for null in this case?

I think when isNullValid() is true, we should allow choice renderer to generate id even for null value (because it's valid). If null is _not_ valid, then we should either return "" or -1.

Does this sound sane?

-Matej

Johan Compagner wrote:
i think we can drop that NO_SELECTION_VALUE
and just return "" for it in AbstractSingleSelectChoice
so that it is consistent with what ChoiceRenderer does
Calling choicerender directly doesn't seem to be a good choice
because that is just a default implementation..

johan

On 10/6/06, Matej Knopp <[EMAIL PROTECTED]> wrote:

Hi,

There is a inconsistency of how null is handled in
ChoiceRenderer#getIdValue and AbstractSingleSelectChoice#getModelValue.

ChoiceRenderer renders either "" as id, or index under which the null
value is in choices list.

AbstractSingleSelectChoice#getModelValue returns always -1 for null.

The outcome is that if RadioChoice has item with null value and the
model object is also null, the item is not pre-selected.

(because getValue() is compared to
getChoiceRenderer().getIdValue(choice, 0))

It is a bug, but I'm not sure what would be the best way to fix it.

Perhaps when AbstractSingleSelectChoice#isNullValid() is true the
getModelValue should call choiceRenderer.getIdValue(object, index) even
for null objects?

WDYT?

-Matej



Reply via email to