diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java index 5a1dd2a15..9e1e9ebab 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java @@ -99,6 +99,7 @@ public class Messages { public static String inverseSelection; public static String liveReadbackVsSetpoint; public static String liveSetpoint; + public static String login; public static String loggingFailedTitle; public static String loggingFailed; public static String loggingFailedCauseUnknown; diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuBase.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuBase.java index e904215ee..5a1121e5e 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuBase.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuBase.java @@ -26,6 +26,7 @@ import javafx.scene.image.ImageView; import org.phoebus.applications.saveandrestore.Messages; import org.phoebus.applications.saveandrestore.model.Node; +import org.phoebus.framework.workbench.ApplicationService; import org.phoebus.ui.javafx.ImageCache; /** @@ -38,6 +39,9 @@ public abstract class ContextMenuBase extends ContextMenu { protected MenuItem deleteNodesMenuItem; protected MenuItem copyUniqueIdToClipboardMenuItem; + protected MenuItem loginMenuItem; + private static final String loginAppName = "credentials_management"; + protected SimpleBooleanProperty multipleNodesSelectedProperty = new SimpleBooleanProperty(); protected SaveAndRestoreController saveAndRestoreController; @@ -84,6 +88,12 @@ public ContextMenuBase(SaveAndRestoreController saveAndRestoreController) { copyUniqueIdToClipboardMenuItem.setOnAction(ae -> saveAndRestoreController.copyUniqueNodeIdToClipboard()); copyUniqueIdToClipboardMenuItem.disableProperty().bind(multipleNodesSelectedProperty); + loginMenuItem = new MenuItem(Messages.login, ImageCache.getImageView(ImageCache.class, "/icons/credentials.png")); + loginMenuItem.setOnAction(ae -> { + ApplicationService.createInstance(loginAppName); + }); + loginMenuItem.visibleProperty().bind(userIsAuthenticatedProperty.not()); + // Controller may be null, e.g. when adding PVs from channel table if(saveAndRestoreController != null){ setOnShowing(event -> runChecks()); diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuCompositeSnapshot.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuCompositeSnapshot.java index eadec07c4..d824a948b 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuCompositeSnapshot.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuCompositeSnapshot.java @@ -70,7 +70,9 @@ public ContextMenuCompositeSnapshot(SaveAndRestoreController saveAndRestoreContr userIsAuthenticatedProperty.not().get() || mayCopyProperty.not().get(), userIsAuthenticatedProperty, mayCopyProperty)); - getItems().addAll(editCompositeSnapshotMenuItem, + getItems().addAll( + loginMenuItem, + editCompositeSnapshotMenuItem, copyMenuItem, deleteNodesMenuItem, copyUniqueIdToClipboardMenuItem, diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuConfiguration.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuConfiguration.java index 8347e1378..8ff727f58 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuConfiguration.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuConfiguration.java @@ -70,7 +70,9 @@ public ContextMenuConfiguration(SaveAndRestoreController saveAndRestoreControlle pasteMenuItem.setOnAction(ae -> saveAndRestoreController.pasteFromClipboard()); pasteMenuItem.disableProperty().bind(mayPasteProperty.not()); - getItems().addAll(openConfigurationMenuItem, + getItems().addAll( + loginMenuItem, + openConfigurationMenuItem, copyMenuItem, pasteMenuItem, deleteNodesMenuItem, diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuFolder.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuFolder.java index 4b42dff69..d1f8e20d9 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuFolder.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuFolder.java @@ -79,7 +79,9 @@ public ContextMenuFolder(SaveAndRestoreController saveAndRestoreController) { mayPasteProperty.not().get() || userIsAuthenticatedProperty.not().get(), mayPasteProperty, userIsAuthenticatedProperty)); - getItems().addAll(newFolderMenuItem, + getItems().addAll( + loginMenuItem, + newFolderMenuItem, renameNodeMenuItem, pasteMenuItem, deleteNodesMenuItem, diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuRootFolder.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuRootFolder.java index 4c949ac74..3aac90ea7 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuRootFolder.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuRootFolder.java @@ -42,7 +42,9 @@ public ContextMenuRootFolder(SaveAndRestoreController saveAndRestoreController) multipleNodesSelectedProperty, userIsAuthenticatedProperty)); newFolderMenuItem.setOnAction(ae -> saveAndRestoreController.createNewFolder()); - getItems().addAll(newFolderMenuItem); + getItems().addAll( + loginMenuItem, + newFolderMenuItem); } diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuSnapshot.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuSnapshot.java index 4a4086b68..324e05531 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuSnapshot.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuSnapshot.java @@ -92,7 +92,9 @@ public ContextMenuSnapshot(SaveAndRestoreController saveAndRestoreController) { copyMenuItem.setOnAction(action -> saveAndRestoreController.copySelectionToClipboard()); copyMenuItem.disableProperty().bind(mayCopyProperty.not()); - getItems().addAll(deleteNodesMenuItem, + getItems().addAll( + loginMenuItem, + deleteNodesMenuItem, compareSnapshotsMenuItem, tagGoldenMenuItem, tagWithComment, diff --git a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties index ebf31f854..7a8b0937b 100644 --- a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties +++ b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties @@ -113,6 +113,7 @@ labelThreshold=\u0394 Threshold (%) lastModifiedDate=Last Modified liveReadbackVsSetpoint=Live Readback\n(? Live Setpoint) liveSetpoint=Live Setpoint +login=Login loggingFailedTitle=Logging failed loggingFailed=Unable to create log entry loggingFailedCauseUnknown=Cause unknown, please check application logs diff --git a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages_fr.properties b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages_fr.properties index 5c582b670..f37eef6cc 100644 --- a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages_fr.properties +++ b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages_fr.properties @@ -101,6 +101,7 @@ labelThreshold=\u0394 Seuil (%) lastModifiedDate=Dernière modification liveReadbackVsSetpoint=Retour en direct\n(? Consigne en direct) liveSetpoint=Consigne en direct +login=Se connecter loggingFailedTitle=Échec de la journalisation loggingFailed=Impossible de créer une entrée de journal loggingFailedCauseUnknown=Cause inconnue, veuillez vérifier les journaux de l'application