Bug #58861 Maintain continuity of "Select Object to Reverse Engineer" lists through changes
Submitted: 10 Dec 2010 11:04 Modified: 10 Dec 2010 12:13
Reporter: Terry Nycum Email Updates:
Status: Verified Impact on me:
Category:MySQL Workbench: Modeling Severity:S4 (Feature request)
Version:5.2.31 OS:Windows
Assigned to: CPU Architecture:Any
Tags: dialog, filter, list, reverse engineering, select objects

[10 Dec 2010 11:04] Terry Nycum
Each filter list in the Select Objects step of the Reverse Engineer Database dialog resets in both its scroll position and current selection whenever its contents change (as a result of moving items between the two--inclusion and exclusion--sides).

How to repeat:
Find or make a schema containing at least 15 tables, 15 views, and/or 15 routines.
Proceed to the "Select Objects" step of reverse engineering that schema.
Click the "Show Filter" button for the object type of which you have 15+ instances.
Scroll to the bottom of the list on the left.
Select the second-to-last item and send it to the right.
Note that your scroll position and selection in the left-hand list are lost.

If you play around with it, you'll note this occurs to any list whenever its contents change.

Suggested fix:
When a list updates, preserve scroll position and selection within that list. If the previously selected item has just been removed, pass the selection to the next remaining item in the list, unless there isn't one, in which case pass it to the previous remaining item, if there is one. Manipulate the scroll position so that whether the list grows or shrinks, the selection highlight stays in the same spot within the window as long as the bounds allow.

This makes for the most efficient and natural linear browsing, in my opinion. (What can I say? It's the little things. :D )
[10 Dec 2010 12:13] Valeriy Kravchuk
Thank you for the feature request.