This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 190634 - yet another inefficient selection handling in ETable
Summary: yet another inefficient selection handling in ETable
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Outline&TreeTable (show other bugs)
Version: 7.0
Hardware: All All
: P2 normal (vote)
Assignee: Martin Entlicher
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-28 08:12 UTC by mauper
Modified: 2010-10-05 03:14 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mauper 2010-09-28 08:12:20 UTC
The method changeSelectionInModel(...) in ETable iterates over all currently selected rows and causes a call to changeSelection(...) for each selected row.
This causes a serious performance hit for bulk changes, e.g. select a few thousand rows in an OutlineView and trigger a column sort. The method should bundle the effective changes and limit the calls to changeSelection(...) to a minimum.
Comment 1 Martin Entlicher 2010-09-29 09:14:47 UTC
Well, the selection needs to be updated when columns are sorted. I'll check what we can do with it... we'd probably have to remember which view rows were selected and do not change the selection if they should be selected again after the sorting.
Comment 2 Martin Entlicher 2010-10-04 21:22:12 UTC
The performance in selection changes is significantly improved by
http://hg.netbeans.org/main/rev/70bd83e8f43f
Comment 3 Quality Engineering 2010-10-05 03:14:47 UTC
Integrated into 'main-golden', will be available in build *201010050000* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/70bd83e8f43f
User: mentlicher@netbeans.org
Log: #190634 Improve performance of changes in selection. Do not select rows that are already selected and add/remove selected rows in intervals.