From bcbf6b515300a3e308843a9892ce0e0b5065b6af Mon Sep 17 00:00:00 2001 From: h7x4 Date: Wed, 24 Feb 2021 11:36:04 +0100 Subject: [PATCH] Add about feature --- src/main/java/app/Main.java | 3 +++ src/main/java/app/MainController.java | 18 ++++++++++++++++++ .../app/controllers/MenubarController.java | 6 ++++++ .../app/events/OpenLinkInBrowserEvent.java | 15 +++++++++++++++ .../resources/fxml/components/Menubar.fxml | 2 +- 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/main/java/app/events/OpenLinkInBrowserEvent.java diff --git a/src/main/java/app/Main.java b/src/main/java/app/Main.java index c3bdf6e..cd71192 100644 --- a/src/main/java/app/Main.java +++ b/src/main/java/app/Main.java @@ -58,6 +58,7 @@ public class Main extends Application { MainController mainController = fxmlLoader.getController(); mainController.getEventBus().post(new LanguageChangedEvent("Java")); mainController.getEventBus().post(new FileSaveStateChangedEvent(true)); + mainController.setHostServices(getHostServices()); } /** @@ -75,6 +76,8 @@ public class Main extends Application { window.setScene(scene); window.show(); + + getHostServices().showDocument("https://google.com"); } } diff --git a/src/main/java/app/MainController.java b/src/main/java/app/MainController.java index 858eb4c..b9c8466 100644 --- a/src/main/java/app/MainController.java +++ b/src/main/java/app/MainController.java @@ -10,7 +10,9 @@ import com.google.common.eventbus.Subscribe; import app.controllers.*; import app.events.ExitApplicationEvent; import app.events.LanguageChangedEvent; +import app.events.OpenLinkInBrowserEvent; import app.model.Model; +import javafx.application.HostServices; import javafx.application.Platform; import javafx.fxml.FXML; import javafx.fxml.Initializable; @@ -30,6 +32,7 @@ public class MainController implements Initializable { private MenubarController menubarController; private EventBus eventBus; + private HostServices hostServices; @Override public void initialize(URL url, ResourceBundle resourceBundle) { @@ -53,6 +56,15 @@ public class MainController implements Initializable { return this.eventBus; } + + public HostServices getHostServices() { + return hostServices; + } + + public void setHostServices(HostServices hostServices) { + this.hostServices = hostServices; + } + /** * Change the CSS according to which language is being used. * @param event @@ -73,6 +85,12 @@ public class MainController implements Initializable { Model.getScene().getStylesheets().add(nextStyleSheet); } + + @Subscribe + private void handle(OpenLinkInBrowserEvent event) { + this.getHostServices().showDocument(event.getLink()); + } + /** * Handle an exit request for the whole program. * @param event diff --git a/src/main/java/app/controllers/MenubarController.java b/src/main/java/app/controllers/MenubarController.java index d59b839..55db96a 100644 --- a/src/main/java/app/controllers/MenubarController.java +++ b/src/main/java/app/controllers/MenubarController.java @@ -9,6 +9,7 @@ import com.google.common.eventbus.Subscribe; import app.events.ExitApplicationEvent; import app.events.LanguageChangedEvent; +import app.events.OpenLinkInBrowserEvent; import app.events.ToggleCommentEvent; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -120,6 +121,11 @@ public class MenubarController implements Initializable, Controller { /* ABOUT */ /* ------------------------------------------------------------------------ */ + @FXML + private void handleAbout(ActionEvent event) { + String aboutLink = "https://gitlab.stud.idi.ntnu.no/oysteikt/tdt4100-project-2021v/-/blob/master/README.md"; + this.eventBus.post(new OpenLinkInBrowserEvent(aboutLink)); + } /* ------------------------------------------------------------------------ */ /* SUBSCRIPTIONS */ diff --git a/src/main/java/app/events/OpenLinkInBrowserEvent.java b/src/main/java/app/events/OpenLinkInBrowserEvent.java new file mode 100644 index 0000000..07fb855 --- /dev/null +++ b/src/main/java/app/events/OpenLinkInBrowserEvent.java @@ -0,0 +1,15 @@ +package app.events; + +public class OpenLinkInBrowserEvent extends Event { + + private String link; + + public OpenLinkInBrowserEvent(String link) { + this.link = link; + } + + public String getLink() { + return link; + } + +} diff --git a/src/main/resources/fxml/components/Menubar.fxml b/src/main/resources/fxml/components/Menubar.fxml index 1a90090..d6a24b4 100644 --- a/src/main/resources/fxml/components/Menubar.fxml +++ b/src/main/resources/fxml/components/Menubar.fxml @@ -67,7 +67,7 @@ - +