Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Keppler2017-07-23 17:47:04 +0000
committerLars Vogel2017-07-25 19:49:35 +0000
commit9f6ec9fe59db39eabf4648443347acef85b0b52f (patch)
treedac22baa7b7e963c84873591e4a5c9025ea362d6
parent65d3ac23caad610b22b0360800c41365bca32abd (diff)
downloadeclipse.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.java2
-rw-r--r--bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java4
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);
}
}

Back to the top