From 76bc6e4013cee452f26c9297db5317206d9c153c Mon Sep 17 00:00:00 2001 From: georgweiss Date: Thu, 25 Sep 2025 13:08:33 +0200 Subject: [PATCH 1/3] Bug fix: snapshot value edits not saved --- .../saveandrestore/ui/snapshot/SnapshotController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java index fc79edaba4..c223de4cd7 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java @@ -771,6 +771,7 @@ public void saveSnapshot(ActionEvent actionEvent) { List snapshotItems = snapshot.getSnapshotData().getSnapshotItems(); SnapshotData snapshotData = new SnapshotData(); snapshotData.setSnapshotItems(snapshotItems); + snapshotData.setUniqueId(snapshot.getSnapshotNode().getUniqueId()); this.snapshot.setSnapshotData(snapshotData); Node snapshotNode = Node.builder() From 22b424630bbdb7a9979ddc9c736fb4eff7999595 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Thu, 25 Sep 2025 13:19:24 +0200 Subject: [PATCH 2/3] Mark snapshot as dirty if snapshot values are changed --- .../saveandrestore/ui/snapshot/SnapshotController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java index c223de4cd7..908123e6d4 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java @@ -820,6 +820,7 @@ private List configurationToSnapshotItems(List configPvs private void updateLoadedSnapshot(TableEntry rowValue, VType newValue) { + snapshotDataDirty.set(true); snapshot.getSnapshotData().getSnapshotItems().stream() .filter(item -> item.getConfigPv().equals(rowValue.getConfigPv())) .findFirst() From 586d34b6c3edbdb8ccc37aa93ba9d69e727002e1 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Thu, 25 Sep 2025 13:25:26 +0200 Subject: [PATCH 3/3] Disallow edits of snapshot values in composite snapshot view --- .../saveandrestore/ui/snapshot/SnapshotController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java index 908123e6d4..21ef50f53d 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java @@ -894,6 +894,7 @@ private void showLoggingError(String cause) { */ public void loadSnapshot(Node snapshotNode) { disabledUi.set(true); + storedValueColumn.editableProperty().set(snapshotNode.getNodeType().equals(NodeType.SNAPSHOT)); JobManager.schedule("Load snapshot items", monitor -> { try { this.snapshot = getSnapshotFromService(snapshotNode);