From bab83924301463ec98dc692157cfb73f65c2f326 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 23 Jan 2021 17:25:39 +0100 Subject: [PATCH] Start documentation server on demand instead of the start of the app --- .../src/main/java/ctbrec/docs/DocServer.java | 2 +- .../main/java/ctbrec/ui/CamrecApplication.java | 12 ------------ .../src/main/java/ctbrec/ui/tabs/HelpTab.java | 18 ++++++++++++++++-- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/client/src/main/java/ctbrec/docs/DocServer.java b/client/src/main/java/ctbrec/docs/DocServer.java index 2e386dae..1f3c97ed 100644 --- a/client/src/main/java/ctbrec/docs/DocServer.java +++ b/client/src/main/java/ctbrec/docs/DocServer.java @@ -26,6 +26,7 @@ public class DocServer { return; } + started = true; server = new Server(); HttpConfiguration config = new HttpConfiguration(); @@ -55,7 +56,6 @@ public class DocServer { try { server.start(); - started = true; server.join(); } catch (BindException e) { LOG.error("Port {} is already in use", http.getPort(), e); diff --git a/client/src/main/java/ctbrec/ui/CamrecApplication.java b/client/src/main/java/ctbrec/ui/CamrecApplication.java index f97ea8d4..8d813cdb 100644 --- a/client/src/main/java/ctbrec/ui/CamrecApplication.java +++ b/client/src/main/java/ctbrec/ui/CamrecApplication.java @@ -32,7 +32,6 @@ import ctbrec.Config; import ctbrec.Model; import ctbrec.StringUtil; import ctbrec.Version; -import ctbrec.docs.DocServer; import ctbrec.event.Event; import ctbrec.event.EventBusHolder; import ctbrec.event.EventHandler; @@ -134,7 +133,6 @@ public class CamrecApplication extends Application { startOnlineMonitor(); createGui(primaryStage); checkForUpdates(); - startHelpServer(); registerClipboardListener(); } @@ -160,16 +158,6 @@ public class CamrecApplication extends Application { } } - private void startHelpServer() { - new Thread(() -> { - try { - DocServer.start(); - } catch (Exception e) { - LOG.error("Couldn't start documentation server", e); - } - }).start(); - } - private void startOnlineMonitor() { for (Site site : sites) { if(site.isEnabled()) { diff --git a/client/src/main/java/ctbrec/ui/tabs/HelpTab.java b/client/src/main/java/ctbrec/ui/tabs/HelpTab.java index 6da575be..de8b75a4 100644 --- a/client/src/main/java/ctbrec/ui/tabs/HelpTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/HelpTab.java @@ -1,5 +1,9 @@ package ctbrec.ui.tabs; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import ctbrec.docs.DocServer; import ctbrec.ui.DesktopIntegration; import javafx.geometry.Insets; import javafx.scene.control.Button; @@ -8,16 +12,26 @@ import javafx.scene.layout.BorderPane; public class HelpTab extends Tab { + private static final Logger LOG = LoggerFactory.getLogger(HelpTab.class); + public HelpTab() { setClosable(true); setText("Help"); - Button openHelp = new Button("Open Help"); openHelp.setPadding(new Insets(20)); BorderPane layout = new BorderPane(openHelp); BorderPane.setMargin(openHelp, new Insets(20)); setContent(layout); - openHelp.setOnAction(e -> DesktopIntegration.open("http://localhost:5689/docs/index.md")); + openHelp.setOnAction(e -> { + new Thread(() -> { + try { + DocServer.start(); + } catch (Exception ex) { + LOG.error("Couldn't start documentation server", ex); + } + }).start(); + DesktopIntegration.open("http://localhost:5689/docs/index.md"); + }); } }