From 2fbda6f14dac052f1bf40e85558bd927417247a2 Mon Sep 17 00:00:00 2001 From: lieght <49651652+BAFGdeJong@users.noreply.github.com> Date: Thu, 4 Dec 2025 22:14:58 +0100 Subject: [PATCH] Escape remove popup --- app/src/main/java/org/toop/app/App.java | 29 +++++++------------ .../org/toop/app/widget/WidgetContainer.java | 8 +++++ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/toop/app/App.java b/app/src/main/java/org/toop/app/App.java index ab56b71..30d8e16 100644 --- a/app/src/main/java/org/toop/app/App.java +++ b/app/src/main/java/org/toop/app/App.java @@ -5,7 +5,6 @@ import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import org.toop.app.widget.Primitive; -import org.toop.app.widget.Widget; import org.toop.app.widget.WidgetContainer; import org.toop.app.widget.complex.LoadingWidget; import org.toop.app.widget.display.SongDisplay; @@ -39,9 +38,6 @@ public final class App extends Application { private static int height; private static int width; - private static boolean isEscActive; // TODO kut variable - private static EscapePopup escPopup; // TODO kut variable - public static void run(String[] args) { launch(args); } @@ -142,14 +138,16 @@ public final class App extends Application { } public void escapePopup() { - if (App.escPopup == null) App.escPopup = new EscapePopup(); - if (!App.isEscActive) { - App.isEscActive = true; - escPopup.show(Pos.CENTER); - } else { - escPopup.hide(); - App.isEscActive = false; + if (WidgetContainer.getAllWidgets().stream().anyMatch( + e -> e instanceof QuitPopup || e instanceof EscapePopup + )) { + WidgetContainer.findRemove(QuitPopup.class); + WidgetContainer.findRemove(EscapePopup.class); + return; } + + EscapePopup escPopup = new EscapePopup(); + escPopup.show(Pos.CENTER); } private void setOnLoadingSuccess(LoadingWidget loading) { @@ -163,15 +161,10 @@ public final class App extends Application { stage.setOnCloseRequest(event -> { event.consume(); - var abc = WidgetContainer.getAllWidgets(); - for (Widget widget : abc) { - IO.println(widget.getClass().getSimpleName()); - } - if (WidgetContainer.getAllWidgets().stream().anyMatch(e -> e instanceof QuitPopup)) return; - var a = new QuitPopup(); - a.show(Pos.CENTER); // TODO disable allow having multiple + QuitPopup a = new QuitPopup(); + a.show(Pos.CENTER); }); }); diff --git a/app/src/main/java/org/toop/app/widget/WidgetContainer.java b/app/src/main/java/org/toop/app/widget/WidgetContainer.java index 5753039..33b4ae8 100644 --- a/app/src/main/java/org/toop/app/widget/WidgetContainer.java +++ b/app/src/main/java/org/toop/app/widget/WidgetContainer.java @@ -62,6 +62,14 @@ public final class WidgetContainer { }); } + public static void findRemove(Class widgetClass) { + if (root == null || currentView == null) return; + + Platform.runLater(() -> + currentView.getChildren().removeIf(widget -> widget.getClass().isAssignableFrom(widgetClass)) + ); + } + public static ViewWidget getCurrentView() { return currentView; }