diff --git a/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy b/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy index 736c0011..a5a74369 100644 --- a/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy @@ -65,12 +65,15 @@ class BrowseModel { } void filterResults() { + filterer?.cancel() results.clear() root.removeAllChildren() - filterer?.cancel() + view.clearForFilter() + view.refreshResults() if (filter != null) { filterer = new Filterer() filterer.execute() + setFilterEnabled(false) } else { synchronized (allResults) { results.addAll(allResults) @@ -103,11 +106,13 @@ class BrowseModel { @Override protected void process(List chunks) { - if (cancelled) + if (cancelled || chunks.isEmpty()) return results.addAll(chunks) for (UIResultEvent result : chunks) resultsTreeModel.addToTree(result) + view.refreshResults() + view.expandUnconditionally() } @Override @@ -116,6 +121,7 @@ class BrowseModel { return view.refreshResults() view.expandUnconditionally() + setFilterEnabled(true) } } } \ No newline at end of file diff --git a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy index 32cc039f..8abf74f9 100644 --- a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy @@ -296,6 +296,12 @@ class BrowseView { showTree.call() } + void clearForFilter() { + resultsTable.clearSelection() + treeExpansions.manualExpansion = false + treeExpansions.expandedPaths.clear() + } + void refreshResults() { int [] selectedRows = resultsTable.getSelectedRows() if (lastSortEvent != null) {