I have a GWT ListBox. My validation code inquires whether the ListBox’s selected index is -1 (my ListBox’s default state). If I do not touch the ListBox, the getSelectedIndex() returns -1, as expected. If I hover over the ListBox items but do not click on one (i.e. click outside), getSelectedIndex() returns a non-(-1) index. I want it to return -1 unless I click on a ListBox item and the ListBox updates itself to reflect that selection.
What should I do?
You won’t be able to use the native
<select>element for this in a nice way since the browsers determine what the selected element is, not GWT. In other words, this is just how<select>works.You’ll have to either create your own select widget (which might be preferred for styling reasons anyway) or get creative and kludge up something next to the existing widgets. You could add a click handler to the ListBox and “manually” set the selected index to -1, but you’ll have to figure out if the user cancels his operation and restore the selection afterwards. You’ll have to suppress selection events from your custom code because you probably don’t want the rest of your app to react to your new -1 hack. Ugh! Probably easiest to handle this in a different way.