diff --git a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java
index d0039a8b61b..383024c9c44 100644
--- a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java
+++ b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java
@@ -102,21 +102,41 @@ public class FilteredTree extends Composite {
*/
private static final long SOFT_MAX_EXPAND_TIME = 200;
+ /**
+ * Time delay after which the search is triggered, acting as a debounce
+ * mechanism.
+ */
+ private final long refreshJobDelayInMillis;
+
+ /**
+ * Default time for refresh job delay in ms
+ */
+ private static final long DEFAULT_REFRESH_TIME = 200;
+
/**
* Create a new instance of the receiver.
*
- * @param parent
- * the parent Composite
- * @param treeStyle
- * the style bits for the Tree
- * @param filter
- * the filter to be used
- */
- public FilteredTree(Composite parent, int treeStyle, PatternFilter filter) {
+ * @param parent the parent Composite
+ * @param treeStyle the style bits for the Tree
+ * @param filter the filter to be used
+ * @param refreshDelayTime refresh delay in ms, the time to expand the tree
+ * after debounce
+ * @since 1.5
+ */
+ public FilteredTree(Composite parent, int treeStyle, PatternFilter filter, long refreshDelayTime) {
super(parent, SWT.NONE);
+ this.refreshJobDelayInMillis = refreshDelayTime;
init(treeStyle, filter);
}
+ /**
+ * Calls {@link #FilteredTree(Composite, int, PatternFilter, long)} with a
+ * default refresh time
+ */
+ public FilteredTree(Composite parent, int treeStyle, PatternFilter filter) {
+ this(parent, treeStyle, filter, DEFAULT_REFRESH_TIME);
+ }
+
/**
* Create a new instance of the receiver. Subclasses that wish to override
* the default creation behavior may use this constructor, but must ensure
@@ -129,6 +149,7 @@ public FilteredTree(Composite parent, int treeStyle, PatternFilter filter) {
*/
protected FilteredTree(Composite parent) {
super(parent, SWT.NONE);
+ this.refreshJobDelayInMillis = DEFAULT_REFRESH_TIME;
}
/**
@@ -540,7 +561,7 @@ protected void textChanged() {
* @since 3.5
*/
protected long getRefreshJobDelay() {
- return 200;
+ return refreshJobDelayInMillis;
}
/**
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java
index 370a9e9e175..24e2d884217 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/dialogs/FilteredTree.java
@@ -147,6 +147,16 @@ public class FilteredTree extends Composite {
*/
private static final long SOFT_MAX_EXPAND_TIME = 200;
+ /**
+ * Time for refresh job delay in terms of expansion in long value
+ */
+ private final long refreshJobDelayInMillis;
+
+ /**
+ * Default time for refresh job delay in ms
+ */
+ private static final long DEFAULT_REFRESH_TIME = 200;
+
/**
* Create a new instance of the receiver. Subclasses that wish to override the
* default creation behavior may use this constructor, but must ensure that the
@@ -171,11 +181,24 @@ public class FilteredTree extends Composite {
public FilteredTree(Composite parent, boolean useNewLook, boolean useFastHashLookup) {
super(parent, SWT.NONE);
this.parent = parent;
+ this.refreshJobDelayInMillis = DEFAULT_REFRESH_TIME;
if (treeViewer != null) {
treeViewer.setUseHashlookup(useFastHashLookup);
}
}
+ /**
+ * Calls
+ * {@link #FilteredTree(Composite, int, PatternFilter, boolean, boolean, long)}
+ * with a default refresh time
+ *
+ * @since 3.116
+ */
+ public FilteredTree(Composite parent, int treeStyle, PatternFilter filter, boolean useNewLook,
+ boolean useFastHashLookup) {
+ this(parent, treeStyle, filter, useNewLook, useFastHashLookup, DEFAULT_REFRESH_TIME);
+ }
+
/**
* Create a new instance of the receiver.
*
@@ -187,20 +210,24 @@ public FilteredTree(Composite parent, boolean useNewLook, boolean useFastHashLoo
*
*
Composite
- * @param treeStyle the style bits for the Tree
- * @param filter the filter to be used
- * @param useNewLook ignored, keep for API compliance
- * @param useFastHashLookup true, if tree should use fast hash lookup, false, if
- * the tree should be slow but working for data with
- * mutable or broken hashcode implementation. Only used
- * if treeViewer is already initialized
- * @since 3.116
+ * @param parent the parent Composite
+ * @param treeStyle the style bits for the Tree
+ * @param filter the filter to be used
+ * @param useNewLook ignored, keep for API compliance
+ * @param useFastHashLookup true, if tree should use fast hash lookup,
+ * false, if the tree should be slow but working
+ * for data with mutable or broken hashcode
+ * implementation. Only used if treeViewer is
+ * already initialized
+ * @param refreshJobDelayInMillis refresh delay in ms, the time to expand the
+ * tree after debounce
+ * @since 3.132
*/
public FilteredTree(Composite parent, int treeStyle, PatternFilter filter, boolean useNewLook,
- boolean useFastHashLookup) {
+ boolean useFastHashLookup, long refreshJobDelayInMillis) {
super(parent, SWT.NONE);
this.parent = parent;
+ this.refreshJobDelayInMillis = refreshJobDelayInMillis;
init(treeStyle, filter);
if (treeViewer != null) {
treeViewer.setUseHashlookup(useFastHashLookup);
@@ -231,6 +258,7 @@ public FilteredTree(Composite parent, int treeStyle, PatternFilter filter, boole
@Deprecated
protected FilteredTree(Composite parent) {
super(parent, SWT.NONE);
+ this.refreshJobDelayInMillis = DEFAULT_REFRESH_TIME;
this.parent = parent;
}
@@ -259,8 +287,7 @@ protected FilteredTree(Composite parent) {
*/
@Deprecated
protected FilteredTree(Composite parent, boolean useNewLook) {
- super(parent, SWT.NONE);
- this.parent = parent;
+ this(parent);
}
/**
@@ -282,8 +309,7 @@ protected FilteredTree(Composite parent, boolean useNewLook) {
*/
@Deprecated
public FilteredTree(Composite parent, int treeStyle, PatternFilter filter) {
- super(parent, SWT.NONE);
- this.parent = parent;
+ this(parent);
init(treeStyle, filter);
}
@@ -308,9 +334,7 @@ public FilteredTree(Composite parent, int treeStyle, PatternFilter filter) {
*/
@Deprecated
public FilteredTree(Composite parent, int treeStyle, PatternFilter filter, boolean useNewLook) {
- super(parent, SWT.NONE);
- this.parent = parent;
- init(treeStyle, filter);
+ this(parent, treeStyle, filter);
}
/**
@@ -755,7 +779,7 @@ protected void textChanged() {
* @since 3.5
*/
protected long getRefreshJobDelay() {
- return 200;
+ return refreshJobDelayInMillis;
}
/**