There are an awful lot of modules with widgets that are unwieldy. Often this makes them impossible to use because they do not fit on small displays without relying on scroll bars, but also to novice panel users the array of controls is intimidating.
I think these modules would be well-served to use idl widget_tab components, which are a set of named widget_bases stacked on top of one another. (For example, see the new defaults editor.) The expert module user will enjoy having these controls broken up into functional groups, and enjoy not having to fit within the constraints of even a large display system.
Also, I think a canonical way to do this should have an initial "basic options" tab that contains just a dataset selection. Novices who just want to see the data would find all the functions they need to get a useful science product. Additional tabs would have advanced options that are broken up by function group.
For example, I'm attaching a screenshot of polar_ceppad's panel editor. This would be broken up into three tabs: "basic options", "advanced options" (yellow), and "b field model" (blue).
Note that the impact on the code is trivial. Events are handled the same way, and essentially there is just one widget_base per tab, plus the widget_tab itself.
polar_ceppad panel editor