Bug 545686 - Keyboard navigation of tables with many validation problems is slow
Summary: Keyboard navigation of tables with many validation problems is slow
Status: CLOSED FIXED
Alias: None
Product: ECP
Classification: Modeling
Component: EMF Forms (show other bugs)
Version: 1.20.0   Edit
Hardware: All All
: P2 normal (vote)
Target Milestone: 1.21.0   Edit
Assignee: Christian Damus CLA
QA Contact: Eugen Neufeld CLA
URL:
Whiteboard:
Keywords: test, ui, usability
Depends on:
Blocks:
 
Reported: 2019-03-22 13:42 EDT by Christian Damus CLA
Modified: 2019-06-18 10:11 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Damus CLA 2019-03-22 13:42:40 EDT
Software:
Eclipse 2019-03
EMF Forms 1.20

System:
Model Name:	MacBook Pro
Model Identifier:	MacBookPro13,3
Processor Name:	Intel Core i7
Processor Speed:	2.9 GHz
Number of Processors:	1
Total Number of Cores:	4
L2 Cache (per Core):	256 KB
L3 Cache:	8 MB
Memory:	16 GB

Keyboard navigation around a Grid-rendered table view with details can be very slow when (a) the table has a large number of row and (b) there are a large number of validation problems in the objects presented in the table.

For example, on a modern MacBook Pro system (as per above) it can take several seconds for the UI to become responsive when using the keyboard to navigate from one row to the next in a master-detail table with a few thousand objects and a few validation problems on details of each.  A significant part of this is in refreshing the table rows for validation updates from the change of child context.
Comment 1 Eclipse Genie CLA 2019-03-22 16:18:07 EDT
New Gerrit change created: https://git.eclipse.org/r/139358
Comment 2 Eclipse Genie CLA 2019-03-25 10:15:59 EDT
New Gerrit change created: https://git.eclipse.org/r/139415
Comment 4 Christian Damus CLA 2019-04-01 11:25:42 EDT
A new proposal to address the performance of keyboard navigation (and the cost of initial editor presentation, too) is to throttle the propagation of validation problems up the view hierarchy, which seems to be where the next major bottle-neck lies after merge of https://git.eclipse.org/r/139358.

The idea is to cap the number of problems propagated to the parent view by any element in the view model to at most the 3 or 5 most severe problems.  All others would be represented by a roll-up diagnostic that just indicates to the user that there are more problems visible by drilling down into the form.  This roll-up would have a severity matching the most severe unreported problem.

This would be a major change in the behaviour of the forms UI for problem reporting.  As only a small number of problems will be propagated up the view hierarchy, users may perceive this as having data go missing from the UI.  But it may also be perceived as an improvement in usability:  in cases where a model has a large number of problems, decluttering the UI and letting the user focus on a few problems at a time.  In any case, the impact of this proposal on the UI is indicated in the keywords field.
Comment 5 Eclipse Genie CLA 2019-04-25 11:16:35 EDT
New Gerrit change created: https://git.eclipse.org/r/141155
Comment 6 Eclipse Genie CLA 2019-05-04 09:53:14 EDT
New Gerrit change created: https://git.eclipse.org/r/141600
Comment 8 Eclipse Genie CLA 2019-05-13 18:05:34 EDT
New Gerrit change created: https://git.eclipse.org/r/142103
Comment 10 Christian Damus CLA 2019-05-14 07:09:20 EDT
(In reply to Eclipse Genie from comment #9)
> Gerrit change https://git.eclipse.org/r/142103 was merged to [develop].

This was the last step to achieving acceptable responsiveness in keyboard navigation of tables of thousands of rows with thousands of validation problems.
Comment 11 Christian Damus CLA 2019-06-18 10:11:12 EDT
The fix is published in 1.22 M1a.