diff --git a/app/save-and-restore/app/doc/images/composite-snapshot.png b/app/save-and-restore/app/doc/images/composite-snapshot.png new file mode 100644 index 0000000000..bce5562246 Binary files /dev/null and b/app/save-and-restore/app/doc/images/composite-snapshot.png differ 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 a0a0cde25d..3811aeb71e 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 @@ -430,7 +430,18 @@ private String getSavedFilterName() { * @param targetItem {@link TreeItem} on which the operation is performed. */ protected void expandTreeNode(TreeItem targetItem) { - List childNodes = saveAndRestoreService.getChildNodes(targetItem.getValue()); + List childNodes; + if(targetItem.getValue().getNodeType().equals(NodeType.COMPOSITE_SNAPSHOT)){ + try { + childNodes = saveAndRestoreService.getCompositeSnapshotNodes(targetItem.getValue().getUniqueId()); + } catch (Exception e) { + ExceptionDetailsErrorDialog.openError(treeTableView, Messages.errorGeneric, Messages.errorUnableToRetrieveData, e); + return; + } + } + else{ + childNodes = saveAndRestoreService.getChildNodes(targetItem.getValue()); + } List> list = childNodes.stream().map(this::createTreeItem).toList(); targetItem.getChildren().setAll(list); @@ -745,7 +756,7 @@ private TreeItem createTreeItem(final Node node) { return new TreeItem<>(node) { @Override public boolean isLeaf() { - return node.getNodeType().equals(NodeType.SNAPSHOT) || node.getNodeType().equals(NodeType.COMPOSITE_SNAPSHOT); + return node.getNodeType().equals(NodeType.SNAPSHOT); } }; }