The ooDialog SetData method can have unfortunate consequences when you have a ListControl or TabControl on your Gui.
It changes the focus to match the contents of the attribute associated with that control.
With a tab control it finds the first leaf that matches, which might not be the one that was focused before if the leaf values are not all unique.
I think it would be handy to have a SetData that you could limit to certain types of control, something like
which would only transfer data to the controls of the type(s) enumerated in the parameter
It is natural to want to do a GetData & a SetData around a validate method for instance.
I have enclosed a little script which shows how when you run setData your tree control selection can be 'corrupted'. Select a leaf from the IDE branch, press set data & see what happens to the focus.