Hi!
I have a selectManyListbox on the second pane of a panelTabbedPane. When I click to it, the box preselects none of the values I have bound to it. I believe this happens because the call to uiSelectMany.getSubmittedValue() on line 475 of RenderUtils returns an String[] of size 0. I don't where this is set, since it doesn't appear to be set using setSubmittedValue() but it pretty much makes it impossible to use.
OK managed to catch it setting the submittedValue...
It's called by HtmlRenderUtils.decodeUISelectMany (line 201).
I think the problem is that because the component already exists and wasn't rendered on the first tab, when you change tabs the applyRequestValues phase for object fires.
Now because the object wasn't rendered but wasn't explicitly disabled when it fails to find any parameters relating to it, it assumes that the user has deliberately set none.
A better solution for cases like these (including the booleanCheckBoxes) would be to render a hidden input if the object is also rendered and then check for the existence of that. You could also use it to say if the object was disabled instead of relying on the object's disabled to remained consistent across the request. (I.E. asking was object disabled not is.)
thanks, andy -- Andrew Thornton
