diff --git a/app/src/main/java/org/toop/app/Server.java b/app/src/main/java/org/toop/app/Server.java index 56f4c10..786b7d9 100644 --- a/app/src/main/java/org/toop/app/Server.java +++ b/app/src/main/java/org/toop/app/Server.java @@ -122,8 +122,8 @@ public final class Server { new EventFlow().addPostEvent(new NetworkEvents.SendLogin(clientId, user)).postEvent(); - primary = new ServerView(user, this::sendChallenge, this::disconnect); - WidgetContainer.getCurrentView().transitionNextCustom(primary); + primary = new ServerView(user, this::sendChallenge); + WidgetContainer.getCurrentView().transitionNextCustom(primary, "disconnect", this::disconnect); startPopulateScheduler(); populateGameList(); diff --git a/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java b/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java index 84205ba..4dc8b04 100644 --- a/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java +++ b/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java @@ -37,9 +37,17 @@ public abstract class ViewWidget extends StackWidget { view.add(Pos.BOTTOM_LEFT, Primitive.vbox(backButton)); } - public void transitionNextCustom(ViewWidget view) { + public void transitionNextCustom(ViewWidget view, String key, Runnable runnable) { view.previous = this; + replace(Pos.CENTER, view); + + var customButton = Primitive.button(key, () -> { + runnable.run(); + view.transitionPrevious(); + }); + + view.add(Pos.BOTTOM_LEFT, Primitive.vbox(customButton)); } public void transitionPrevious() { diff --git a/app/src/main/java/org/toop/app/widget/view/ServerView.java b/app/src/main/java/org/toop/app/widget/view/ServerView.java index 94da1e2..7365e74 100644 --- a/app/src/main/java/org/toop/app/widget/view/ServerView.java +++ b/app/src/main/java/org/toop/app/widget/view/ServerView.java @@ -14,14 +14,12 @@ import javafx.scene.control.ListView; public final class ServerView extends ViewWidget { private final String user; private final Consumer onPlayerClicked; - private final Runnable onDisconnect; private final ListView