diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/SaveAndRestoreController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/SaveAndRestoreController.java index a85f72e44c..b658453f9f 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/SaveAndRestoreController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/SaveAndRestoreController.java @@ -383,7 +383,6 @@ public void loadInitialData() { JobManager.schedule("Load save-and-restore tree data", monitor -> { Node rootNode = saveAndRestoreService.getRootNode(); - treeInitializationCountDownLatch.countDown(); TreeItem rootItem = createTreeItem(rootNode); List savedTreeViewStructure = getSavedTreeStructure(); @@ -467,6 +466,7 @@ protected void expandTreeNode(TreeItem targetItem) { childNodes.stream().map(this::createTreeItem).toList(); targetItem.getChildren().setAll(list); targetItem.getChildren().sort(treeNodeComparator); + targetItem.setExpanded(true); } /** @@ -861,7 +861,9 @@ public void locateNode(Stack nodeStack) { while (!nodeStack.isEmpty()) { Node currentNode = nodeStack.pop(); TreeItem currentTreeItem = recursiveSearch(currentNode.getUniqueId(), parentTreeItem); - expandTreeNode(currentTreeItem); + if(!currentTreeItem.isExpanded()){ + expandTreeNode(currentTreeItem); + } parentTreeItem = currentTreeItem; } @@ -1349,9 +1351,7 @@ public void secureStoreChanged(List validTokens) { private void openNode(String nodeId) { JobManager.schedule("Open save-and-restore node", monitor -> { try { - if (!treeInitializationCountDownLatch.await(30000, TimeUnit.SECONDS)) { - return; - } + treeInitializationCountDownLatch.await(); } catch (InterruptedException e) { logger.log(Level.WARNING, "Failed to await tree view to load", e); return;