diff --git a/pom.xml b/pom.xml index 04ea80a..d95bb32 100755 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.parabot client - 2.7 + 2.7.1 jar @@ -73,7 +73,7 @@ org.parabot internal-api - 1.52.1 + 1.53.1 diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 90b384f..4765394 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -1,6 +1,5 @@ package org.parabot.core.ui; -import javafx.application.Application; import org.parabot.core.Configuration; import org.parabot.core.Context; import org.parabot.core.Directories; @@ -248,7 +247,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, Directories.clearCache(); break; case "Notifications": - Application.launch(NotificationUI.class); + NotificationUI.create(); break; default: System.out.println("Invalid command: " + command); diff --git a/src/main/java/org/parabot/core/ui/components/notifications/NotificationUI.java b/src/main/java/org/parabot/core/ui/components/notifications/NotificationUI.java index bc55311..72b8a34 100644 --- a/src/main/java/org/parabot/core/ui/components/notifications/NotificationUI.java +++ b/src/main/java/org/parabot/core/ui/components/notifications/NotificationUI.java @@ -1,20 +1,56 @@ package org.parabot.core.ui.components.notifications; -import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Scene; -import javafx.scene.layout.BorderPane; -import javafx.stage.Stage; -import org.parabot.core.Configuration; +import org.parabot.api.Configuration; +import org.parabot.api.output.Verboser; +import org.parabot.api.ui.JavaFxUtil; -public class NotificationUI extends Application { +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; + +/** + * A JavaFX Panel embedded into a Swing JFrame - handles notification settings + * + * @author Shadowrs + */ +public class NotificationUI extends JavaFxUtil { + + final NotificationUI n; + + private NotificationUI() throws URISyntaxException, MalformedURLException { + super(Configuration.class.getClass().getResource("/storage/ui/notifications.fxml").toURI().toURL(), NotificationUIController.class); + this.n = this; + } + + public static void create() { + try { + new NotificationUI(); + } catch (URISyntaxException | MalformedURLException e) { + e.printStackTrace(); + } + } @Override - public void start(Stage stage) throws Exception { - //noinspection RedundantCast - BorderPane root = (BorderPane) FXMLLoader.load(this.getClass().getResource("/storage/ui/notifications.fxml")); - stage.setTitle(Configuration.BOT_TITLE); - stage.setScene(new Scene(root)); - stage.show(); + public WindowAdapter getWindowAdapter() { + return new WindowAdapter() { + @Override + public void windowClosed(WindowEvent e) { + Verboser.verbose("NotificationUI closed " + e); + } + + @Override + public void windowClosing(WindowEvent e) { + // Anything here. JFrame hides on exit. + Verboser.verbose("NotificationUI closing " + e); + n.getFrame().dispose(); + } + }; + } + + @Override + protected void onLaunched() { + n.getFrame().setTitle("Notifications"); } } \ No newline at end of file diff --git a/src/main/java/org/parabot/environment/Environment.java b/src/main/java/org/parabot/environment/Environment.java index 88cf093..0e05b0d 100644 --- a/src/main/java/org/parabot/environment/Environment.java +++ b/src/main/java/org/parabot/environment/Environment.java @@ -33,7 +33,7 @@ public class Environment extends org.parabot.api.io.libraries.Environment { loadLibrary(lib, true); } - Core.verbose("Loading server: " + desc.toString() + "..."); + Core.verbose("[Environment] Loading server: " + desc.toString() + "..."); ServerParser.SERVER_CACHE.get(desc).run(); } diff --git a/src/main/resources/storage/ui/notifications.fxml b/src/main/resources/storage/ui/notifications.fxml index 1e6ac7b..6577abd 100644 --- a/src/main/resources/storage/ui/notifications.fxml +++ b/src/main/resources/storage/ui/notifications.fxml @@ -4,8 +4,7 @@ + prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1">