Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 30 additions & 17 deletions core/launcher/src/main/java/org/phoebus/product/Launcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,15 @@

import javafx.application.Application;
import org.phoebus.framework.preferences.PropertyPreferenceLoader;
import org.phoebus.framework.preferences.PropertyPreferenceWriter;
import org.phoebus.framework.spi.AppDescriptor;
import org.phoebus.framework.spi.AppResourceDescriptor;
import org.phoebus.framework.workbench.ApplicationService;
import org.phoebus.framework.workbench.Locations;
import org.phoebus.ui.application.ApplicationServer;
import org.phoebus.ui.application.PhoebusApplication;

import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.*;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.ArrayList;
Expand All @@ -25,11 +23,14 @@
import java.util.prefs.Preferences;
import java.util.stream.Collectors;

import static org.phoebus.ui.application.PhoebusApplication.logger;

@SuppressWarnings("nls")
public class Launcher {
private static final String LOGGING_OPTION = "-logging";
private static final String DEFAULT_LOGGING_FILE="/logging.properties";
private static final String LOGGING_PROP = "java.util.logging.config.file";
private static final String SETTINGS_SNAPSHOT = "settings_snapshot";

public static void main(final String[] original_args) throws Exception {
// First Handle arguments, potentially not even starting the UI
Expand Down Expand Up @@ -95,15 +96,11 @@ public static void main(final String[] original_args) throws Exception {
Locations.initialize();
// Check for site-specific settings.ini bundled into distribution
// before potentially adding command-line settings.
final File site_settings = new File(Locations.install(), "settings.ini");
if (site_settings.canRead())
final File siteSettings = new File(Locations.install(), "settings.ini");
if (siteSettings.canRead())
{
logger.info("Loading bundled settings from " + site_settings.getAbsolutePath());
final FileInputStream fileInputStream = new FileInputStream(site_settings);
if (site_settings.getName().endsWith(".xml"))
Preferences.importPreferences(fileInputStream);
else
PropertyPreferenceLoader.load(fileInputStream);
logger.info("Loading bundled settings from " + siteSettings.getAbsolutePath());
loadSettings(siteSettings.getName());
}

// Handle arguments, potentially not even starting the UI
Expand Down Expand Up @@ -140,11 +137,7 @@ public static void main(final String[] original_args) throws Exception {
iter.remove();

logger.info("Loading settings from " + location);
if (location.endsWith(".xml"))
Preferences.importPreferences(new FileInputStream(location));
else
PropertyPreferenceLoader.load(location);

loadSettings(location);
} else if (cmd.equals("-export_settings")) {
if (!iter.hasNext())
throw new Exception("Missing -export_settings file name");
Expand Down Expand Up @@ -220,6 +213,26 @@ public static void main(final String[] original_args) throws Exception {
Application.launch(PhoebusApplication.class, args.toArray(new String[args.size()]));
}

private static void loadSettings(String location) throws Exception {
if (location.endsWith(".xml"))
Preferences.importPreferences(new FileInputStream(location));
else
PropertyPreferenceLoader.load(location);

// Preference settings
final ByteArrayOutputStream prefsBuf = new ByteArrayOutputStream();
try
{
PropertyPreferenceWriter.save(prefsBuf);
}
catch (Exception ex)
{
logger.log(Level.WARNING, "Cannot list preferences", ex);
}

Preferences.userRoot().put(SETTINGS_SNAPSHOT, prefsBuf.toString());
}

private static void help() {
System.out.println(" _______ _______ _______ ______ _______ ");
System.out.println("( ____ )|\\ /|( ___ )( ____ \\( ___ \\ |\\ /|( ____ \\");
Expand Down
24 changes: 5 additions & 19 deletions core/ui/src/main/java/org/phoebus/ui/help/OpenAbout.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,11 @@
*******************************************************************************/
package org.phoebus.ui.help;

import static org.phoebus.ui.application.PhoebusApplication.logger;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import java.util.prefs.Preferences;

import org.phoebus.framework.preferences.PropertyPreferenceWriter;
import org.phoebus.framework.workbench.ApplicationService;
import org.phoebus.framework.workbench.Locations;
import org.phoebus.ui.application.Messages;
Expand Down Expand Up @@ -50,6 +46,7 @@
@SuppressWarnings("nls")
public class OpenAbout implements MenuEntry
{
private static final String SETTINGS_SNAPSHOT = "settings_snapshot";
/** Non-<code>null</code> while the 'about' dialog is shown */
private Alert dialog;

Expand Down Expand Up @@ -194,30 +191,19 @@ private Node createDetailSection()
area.setEditable(false);
final Tab props = new Tab(Messages.HelpAboutSysFea, area);

// Preference settings
final ByteArrayOutputStream prefs_buf = new ByteArrayOutputStream();
try
{
PropertyPreferenceWriter.save(prefs_buf);
}
catch (Exception ex)
{
logger.log(Level.WARNING, "Cannot list preferences", ex);
}

String settingsSnapshot = Preferences.userRoot().get(SETTINGS_SNAPSHOT, "");
WebView webView = new WebView();
String content = "<html><head><style>" +
"body {font-family: monospace;}" +
"</style></head><body>";
content += prefs_buf.toString();
content += settingsSnapshot;
content += "</body></html>";
webView.getEngine().loadContent(content);

VBox.setVgrow(webView, Priority.ALWAYS);

final Tab prefs = new Tab(Messages.HelpAboutPrefs, webView);

final TabPane tabs = new TabPane(apps, envs, props, prefs);
return tabs;
return new TabPane(apps, envs, props, prefs);
}
}
Loading