Skip to content

Commit 57026c1

Browse files
committed
[phoebus] allow empty descriptions in SaR controllers
1 parent 9b8f817 commit 57026c1

File tree

6 files changed

+20
-6
lines changed

6 files changed

+20
-6
lines changed

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Preferences.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ public class Preferences {
6363
@Preference
6464
public static String default_restore_mode;
6565

66+
/**
67+
* Allow empty descriptions / comments in SaR nodes
68+
*/
69+
@Preference
70+
public static boolean allow_empty_descriptions;
71+
6672
static {
6773
AnnotatedPreferences.initialize(Preferences.class, "/save_and_restore_preferences.properties");
6874
}

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/configuration/ConfigurationController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import javafx.util.StringConverter;
5252
import javafx.util.converter.DoubleStringConverter;
5353
import org.phoebus.applications.saveandrestore.Messages;
54+
import org.phoebus.applications.saveandrestore.Preferences;
5455
import org.phoebus.applications.saveandrestore.SaveAndRestoreApplication;
5556
import org.phoebus.applications.saveandrestore.model.ComparisonMode;
5657
import org.phoebus.applications.saveandrestore.model.ConfigPv;
@@ -349,7 +350,7 @@ public void commitEdit(Double value) {
349350
descriptionChangeListener = (observableValue, oldValue, newValue) -> dirty.setValue(true);
350351

351352
saveButton.disableProperty().bind(Bindings.createBooleanBinding(() -> dirty.not().get() ||
352-
configurationDescriptionProperty.isEmpty().get() ||
353+
(!Preferences.allow_empty_descriptions && configurationDescriptionProperty.isEmpty().get()) ||
353354
configurationNameProperty.isEmpty().get() ||
354355
userIdentity.isNull().get(),
355356
dirty, configurationDescriptionProperty, configurationNameProperty, userIdentity));

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/configuration/ConfigurationFromSelectionController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import javafx.stage.Stage;
4242
import org.phoebus.applications.saveandrestore.DirectoryUtilities;
4343
import org.phoebus.applications.saveandrestore.Messages;
44+
import org.phoebus.applications.saveandrestore.Preferences;
4445
import org.phoebus.applications.saveandrestore.filehandler.csv.CSVCommon;
4546
import org.phoebus.applications.saveandrestore.model.ConfigPv;
4647
import org.phoebus.applications.saveandrestore.model.Configuration;
@@ -243,8 +244,9 @@ public void initialize(URL location, ResourceBundle resources) {
243244

244245
// Cannot save until location, config name and description are set.
245246
saveButton.disableProperty().bind(Bindings.createBooleanBinding(() -> targetNode.get() == null ||
246-
configurationName.get() == null || configurationName.get().isEmpty() ||
247-
description.get() == null || description.get().isEmpty(),
247+
configurationName.get() == null || configurationName.get().isEmpty() || (
248+
!Preferences.allow_empty_descriptions && (description.get() == null || description.get().isEmpty())
249+
),
248250
targetNode, configurationName, description));
249251

250252
// Make config name field non-editable if location is not set, or if user is updating existing configuration

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/CompositeSnapshotController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import javafx.util.Callback;
5353
import org.phoebus.applications.saveandrestore.DirectoryUtilities;
5454
import org.phoebus.applications.saveandrestore.Messages;
55+
import org.phoebus.applications.saveandrestore.Preferences;
5556
import org.phoebus.applications.saveandrestore.SaveAndRestoreApplication;
5657
import org.phoebus.applications.saveandrestore.model.CompositeSnapshot;
5758
import org.phoebus.applications.saveandrestore.model.CompositeSnapshotData;
@@ -304,7 +305,7 @@ public void updateItem(Node item, boolean empty) {
304305
descriptionChangeListener = (observableValue, oldValue, newValue) -> dirty.setValue(true);
305306

306307
saveButton.disableProperty().bind(Bindings.createBooleanBinding(() -> dirty.not().get() ||
307-
compositeSnapshotDescriptionProperty.isEmpty().get() ||
308+
(!Preferences.allow_empty_descriptions && compositeSnapshotDescriptionProperty.isEmpty().get()) ||
308309
compositeSnapshotNameProperty.isEmpty().get() ||
309310
userIdentity.isNull().get(),
310311
dirty, compositeSnapshotDescriptionProperty, compositeSnapshotNameProperty, userIdentity));

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/snapshot/SnapshotController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ public void initialize() {
398398
// TODO: support save (=update) a composite snapshot from the snapshot view. In the meanwhile, disable save button.
399399
snapshotDataDirty.not().get() ||
400400
snapshotNameProperty.isEmpty().get() ||
401-
snapshotCommentProperty.isEmpty().get() ||
401+
(!Preferences.allow_empty_descriptions && snapshotCommentProperty.isEmpty().get()) ||
402402
userIdentity.isNull().get(),
403403
snapshotDataDirty, snapshotNameProperty, snapshotCommentProperty, userIdentity));
404404

app/save-and-restore/app/src/main/resources/save_and_restore_preferences.properties

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,8 @@ default_snapshot_mode=READ_PVS
2525
# Defines the default restore mode
2626
# CLIENT_RESTORE: the restore operation is performed by the client
2727
# SERVICE_RESTORE: the restore operation is performed by the server
28-
default_restore_mode=CLIENT_RESTORE
28+
default_restore_mode=CLIENT_RESTORE
29+
30+
# Allow leaving the description / comment field empty for Configs / (Composite)
31+
# Snapshots
32+
allow_empty_descriptions=false

0 commit comments

Comments
 (0)