Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Keppler2017-07-23 17:47:04 +0000
committerLars Vogel2017-10-22 16:56:17 +0000
commitbbfcd587130dc0d166e5b7d0ab454c9519fbfa5d (patch)
tree7b1be622a77062cc5e5a4fa416b2efcf7eba53c7
parent6a4b7123160757f0ccfa1587bc166eccd85e0081 (diff)
downloadeclipse.platform.ui-bbfcd587130dc0d166e5b7d0ab454c9519fbfa5d.tar.gz
eclipse.platform.ui-bbfcd587130dc0d166e5b7d0ab454c9519fbfa5d.tar.xz
eclipse.platform.ui-bbfcd587130dc0d166e5b7d0ab454c9519fbfa5d.zip
Bug 520069 - Better performance when setting viewer filtersM20171108-0500M20171108-0400M20171101-0400M20171025-0400
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 bc934405212..325956369cb 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