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 * *

* - * @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 - * @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; } /**