From 7dcc0ad3b3686a5370f73bd59cb6a0371a284b9a Mon Sep 17 00:00:00 2001 From: georgweiss Date: Fri, 11 Oct 2024 10:23:45 +0200 Subject: [PATCH] Toolbar entry for Logbook --- .../logbook/olog/ui/LogEntryTableApp.java | 11 ++--- .../olog/ui/LogEntryTableMenuEntry.java | 2 +- .../logbook/olog/ui/LogbookUIPreferences.java | 1 - .../org/phoebus/logbook/olog/ui/Messages.java | 2 + .../ui/menu/LogEntryTableToolbarEntry.java | 40 +++++++++++++++++++ .../services/org.phoebus.ui.spi.ToolbarEntry | 3 +- .../log_olog_ui_preferences.properties | 3 -- .../logbook/olog/ui/messages.properties | 2 + 8 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/menu/LogEntryTableToolbarEntry.java diff --git a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableApp.java b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableApp.java index deaadb5baf..7d721faf67 100644 --- a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableApp.java +++ b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableApp.java @@ -5,7 +5,6 @@ import org.phoebus.framework.spi.AppResourceDescriptor; import org.phoebus.logbook.*; import org.phoebus.ui.javafx.ImageCache; -import org.phoebus.util.text.Strings; import java.net.URI; import java.util.logging.Logger; @@ -13,9 +12,9 @@ public class LogEntryTableApp implements AppResourceDescriptor { public static final Logger logger = Logger.getLogger(LogEntryTableApp.class.getName()); - static final Image icon = ImageCache.getImage(LogEntryTableApp.class, "/icons/logbook-16.png"); + public static final Image icon = ImageCache.getImage(LogEntryTableApp.class, "/icons/logbook-16.png"); public static final String NAME = "logEntryTable"; - public static String DISPLAYNAME = "Log Entry Table"; + public static String DISPLAY_NAME = Messages.Logbook; private static final String SUPPORTED_SCHEMA = "logbook"; private LogFactory logFactory; @@ -25,15 +24,11 @@ public class LogEntryTableApp implements AppResourceDescriptor { @Override public void start() { logFactory = LogService.getInstance().getLogFactories().get(LogbookPreferences.logbook_factory); - String displayName = LogbookUIPreferences.log_entry_table_display_name; - if(!Strings.isNullOrEmpty(displayName)){ - DISPLAYNAME = displayName; - } } @Override public String getDisplayName() { - return DISPLAYNAME; + return DISPLAY_NAME; } @Override diff --git a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableMenuEntry.java b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableMenuEntry.java index ed4c7e94ef..29292a6dbe 100644 --- a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableMenuEntry.java +++ b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogEntryTableMenuEntry.java @@ -27,7 +27,7 @@ public Void call() throws Exception @Override public String getName() { - return LogEntryTableApp.DISPLAYNAME; + return LogEntryTableApp.DISPLAY_NAME; } @Override diff --git a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogbookUIPreferences.java b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogbookUIPreferences.java index 9b2cc23d7f..9e9496d9d5 100644 --- a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogbookUIPreferences.java +++ b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/LogbookUIPreferences.java @@ -31,7 +31,6 @@ public class LogbookUIPreferences @Preference public static boolean log_entry_groups_support; @Preference public static boolean log_entry_update_support; @Preference public static String[] hidden_properties; - @Preference public static String log_entry_table_display_name; @Preference public static String log_entry_calendar_display_name; @Preference public static String log_attribute_desc; @Preference public static int search_result_page_size; diff --git a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/Messages.java b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/Messages.java index d36677af3e..47a4043ecc 100644 --- a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/Messages.java +++ b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/Messages.java @@ -35,6 +35,8 @@ public class Messages GroupingFailed, GroupSelectedEntries, Level, + Logbook, + LogbookNotSupported, LogbooksSearchFailTitle, LogbookServiceUnavailableTitle, LogbookServiceHasNoLogbooks, diff --git a/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/menu/LogEntryTableToolbarEntry.java b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/menu/LogEntryTableToolbarEntry.java new file mode 100644 index 0000000000..774f6fa636 --- /dev/null +++ b/app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/menu/LogEntryTableToolbarEntry.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 European Spallation Source ERIC. + */ + +package org.phoebus.logbook.olog.ui.menu; + +import javafx.scene.image.Image; +import org.phoebus.framework.workbench.ApplicationService; +import org.phoebus.logbook.LogbookPreferences; +import org.phoebus.logbook.olog.ui.LogEntryTableApp; +import org.phoebus.logbook.olog.ui.Messages; +import org.phoebus.ui.dialog.ExceptionDetailsErrorDialog; +import org.phoebus.ui.spi.ToolbarEntry; + +public class LogEntryTableToolbarEntry implements ToolbarEntry { + + @Override + public Void call() throws Exception + { + if (LogbookPreferences.is_supported){ + ApplicationService.createInstance(LogEntryTableApp.NAME); + } + else{ + ExceptionDetailsErrorDialog.openError(Messages.LogbookNotSupported, Messages.LogbookNotSupported, new Exception("No logbook factory found")); + } + return null; + } + + @Override + public String getName() + { + return LogEntryTableApp.DISPLAY_NAME; + } + + @Override + public Image getIcon() + { + return LogEntryTableApp.icon; + } +} diff --git a/app/logbook/olog/ui/src/main/resources/META-INF/services/org.phoebus.ui.spi.ToolbarEntry b/app/logbook/olog/ui/src/main/resources/META-INF/services/org.phoebus.ui.spi.ToolbarEntry index d16d8987a3..d0ec517852 100644 --- a/app/logbook/olog/ui/src/main/resources/META-INF/services/org.phoebus.ui.spi.ToolbarEntry +++ b/app/logbook/olog/ui/src/main/resources/META-INF/services/org.phoebus.ui.spi.ToolbarEntry @@ -1 +1,2 @@ -org.phoebus.logbook.olog.ui.menu.SendToLogBookToolbarEntry \ No newline at end of file +org.phoebus.logbook.olog.ui.menu.SendToLogBookToolbarEntry +org.phoebus.logbook.olog.ui.menu.LogEntryTableToolbarEntry \ No newline at end of file diff --git a/app/logbook/olog/ui/src/main/resources/log_olog_ui_preferences.properties b/app/logbook/olog/ui/src/main/resources/log_olog_ui_preferences.properties index 92935f036f..8c276adf5a 100644 --- a/app/logbook/olog/ui/src/main/resources/log_olog_ui_preferences.properties +++ b/app/logbook/olog/ui/src/main/resources/log_olog_ui_preferences.properties @@ -36,9 +36,6 @@ log_entry_update_support=true # business logic, but should not be rendered in the properties view. hidden_properties=Log Entry Group -# Log Entry Table display name. If non-empty it overrides default "Log Entry Table" -log_entry_table_display_name= - # Log Entry Calendar display name. If non-empty it overrides default "Log Entry Calendar" log_entry_calendar_display_name= diff --git a/app/logbook/olog/ui/src/main/resources/org/phoebus/logbook/olog/ui/messages.properties b/app/logbook/olog/ui/src/main/resources/org/phoebus/logbook/olog/ui/messages.properties index 6651629efd..574928e692 100644 --- a/app/logbook/olog/ui/src/main/resources/org/phoebus/logbook/olog/ui/messages.properties +++ b/app/logbook/olog/ui/src/main/resources/org/phoebus/logbook/olog/ui/messages.properties @@ -52,7 +52,9 @@ HitsPerPage=Hits per page: ImageWidth=Width ImageHeight=Height Level=Level +Logbook=Logbook Logbooks=Logbooks: +LogbookNotSupported=No Logbook Support LogbookServiceUnavailableTitle=Cannot create logbook entry LogbookServiceHasNoLogbooks=Logbook service "{0}" has no logbooks or is not available. LogbooksSearchFailTitle=Logbook Search Error