http://gwt-code-reviews.appspot.com/1619803/diff/7001/user/src/com/google/gwt/user/client/ui/ValueListBox.java
File user/src/com/google/gwt/user/client/ui/ValueListBox.java (right):

http://gwt-code-reviews.appspot.com/1619803/diff/7001/user/src/com/google/gwt/user/client/ui/ValueListBox.java#newcode127
user/src/com/google/gwt/user/client/ui/ValueListBox.java:127:
setValue(null);
I still believe we shouldn't call setValue here, as it will result in
two calls to updateListBox.

Either the updateListBox() below should be put in an 'else' block (so we
either call setValue or updateListBox, but not both; as setValue will
call updateListBox for us), or we should assign this.value instead.
The only difference is that setValue will set the value as "hasBeenSet",
so it depends how we want the following code to behave:
box.setAcceptableValues(Arrays.asList(null, "foo", "bar"));
box.setAcceptableValues(Arrays.asList("foo", "bar"));
On the second call to setAcceptableValues, do we want the value to still
be 'null' –and as a consequence change the options in the list box from
null/foo/bar to foo/bar/null–, or do we rather want the "uninitialized
value" to be "foo" rather than "null".

I don't have a strong opinion on this, but to me, as we introduce the
concept of "uninitialized state" or "uninitialized value", I think the
value should be "initialized" only when setValue is called, and in the
mean time, any call to setAcceptableValues could change the current
value.

http://gwt-code-reviews.appspot.com/1619803/

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to