diff options
author | Michael Keppler | 2017-07-23 17:47:04 +0000 |
---|---|---|
committer | Lars Vogel | 2017-07-25 19:49:35 +0000 |
commit | 9f6ec9fe59db39eabf4648443347acef85b0b52f (patch) | |
tree | dac22baa7b7e963c84873591e4a5c9025ea362d6 | |
parent | 65d3ac23caad610b22b0360800c41365bca32abd (diff) | |
download | eclipse.platform.ui-9f6ec9fe59db39eabf4648443347acef85b0b52f.tar.gz eclipse.platform.ui-9f6ec9fe59db39eabf4648443347acef85b0b52f.tar.xz eclipse.platform.ui-9f6ec9fe59db39eabf4648443347acef85b0b52f.zip |
Bug 520069 - Better performance when setting viewer filtersI20170725-2000
Suppress updating item labels when filters of a viewer are updated,
since updating the filters will not modify any of the existing labels.
This can reduce the refresh() time drastically.
The change in AbstractTreeViewer seems to be an independent bug, which
was only uncovered by this change. If labelRefreshing is disabled, the
association between viewer elements and widgets will get out of sync,
but that execution path was probably not exploited up to now.
Change-Id: Ic94999d9bcba49a94d2157b2e50cc411e4f9c850
Signed-off-by: Michael Keppler <Michael.Keppler@gmx.de>
-rw-r--r-- | bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java | 2 | ||||
-rw-r--r-- | bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java index 609e9079bf8..566b9f57d8a 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java @@ -2711,6 +2711,8 @@ public abstract class AbstractTreeViewer extends ColumnViewer { updatePlus(item, newElement); if (updateLabels) { updateItem(item, newElement); + } else { + associate(newElement, item); } } } diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java index 85125d3f075..a8db23b9162 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java @@ -1621,7 +1621,7 @@ public abstract class StructuredViewer extends ContentViewer implements IPostSel resetFilters(); } else { this.filters = new ArrayList<>(Arrays.asList(filters)); - refresh(); + refresh(false); } } @@ -1632,7 +1632,7 @@ public abstract class StructuredViewer extends ContentViewer implements IPostSel public void resetFilters() { if (filters != null) { filters = null; - refresh(); + refresh(false); } } |