From c0f101653ab24af6a4cb68372c789406b916c82d Mon Sep 17 00:00:00 2001 From: RoiArthurB Date: Thu, 10 Feb 2022 11:38:56 +0700 Subject: [PATCH] Cherrypick 673a0deab1b798e881edb5e0b0853f9d880fa665 ' fix for #3230 ' Picked to resolve breaking auto-merging following commit --- .../gama/ui/navigator/NavigatorSearchControl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ummisco.gama.ui.navigator/src/ummisco/gama/ui/navigator/NavigatorSearchControl.java b/ummisco.gama.ui.navigator/src/ummisco/gama/ui/navigator/NavigatorSearchControl.java index 3d30a5c171..eb7ae11e55 100644 --- a/ummisco.gama.ui.navigator/src/ummisco/gama/ui/navigator/NavigatorSearchControl.java +++ b/ummisco.gama.ui.navigator/src/ummisco/gama/ui/navigator/NavigatorSearchControl.java @@ -156,7 +156,11 @@ private boolean internalSelect(final VirtualContent element, final boolean co /** The tree viewer. */ CommonViewer treeViewer; - + + /** List of expanded elements at the start of a search + * used internally to restore the state before search**/ + private Object[] expandedElementsBeforeSearch = null; + /** The filter. */ final NamePatternFilter filter = new NamePatternFilter(); @@ -268,6 +272,9 @@ public IStatus runInUIThread(final IProgressMonitor monitor) { * Do search. */ public void doSearch() { + if(expandedElementsBeforeSearch == null) { + expandedElementsBeforeSearch = treeViewer.getExpandedElements(); + } treeViewer.getControl().setRedraw(false); filter.reset(); if (!Arrays.asList(treeViewer.getFilters()).contains(filter)) { @@ -289,6 +296,11 @@ public void resetSearch() { } else { treeViewer.refresh(false); } + if(expandedElementsBeforeSearch != null) { + treeViewer.collapseAll(); + treeViewer.setExpandedElements(expandedElementsBeforeSearch); + expandedElementsBeforeSearch = null; + } treeViewer.getControl().setRedraw(true); }