Merge remote-tracking branch 'origin/UI-Updates' into UI-Updates

This commit is contained in:
lieght
2025-12-04 17:16:16 +01:00
4 changed files with 27 additions and 7 deletions

View File

@@ -120,8 +120,8 @@ public final class Server {
new EventFlow().addPostEvent(new NetworkEvents.SendLogin(clientId, user)).postEvent(); new EventFlow().addPostEvent(new NetworkEvents.SendLogin(clientId, user)).postEvent();
primary = new ServerView(user, this::sendChallenge, this::disconnect); primary = new ServerView(user, this::sendChallenge);
WidgetContainer.getCurrentView().transitionNextCustom(primary); WidgetContainer.getCurrentView().transitionNextCustom(primary, "disconnect", this::disconnect);
startPopulateScheduler(); startPopulateScheduler();
populateGameList(); populateGameList();

View File

@@ -7,6 +7,9 @@ import javafx.application.Platform;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.scene.layout.StackPane; import javafx.scene.layout.StackPane;
import java.util.ArrayList;
import java.util.List;
public final class WidgetContainer { public final class WidgetContainer {
private static StackPane root; private static StackPane root;
private static ViewWidget currentView; private static ViewWidget currentView;
@@ -74,4 +77,16 @@ public final class WidgetContainer {
currentView = view; currentView = view;
}); });
} }
public static List<Widget> getAllWidgets() {
final List<Widget> children = new ArrayList<>();
for (var child : root.getChildren()) {
if (child instanceof Widget widget) {
children.add(widget);
}
}
return children;
}
} }

View File

@@ -37,9 +37,17 @@ public abstract class ViewWidget extends StackWidget {
view.add(Pos.BOTTOM_LEFT, Primitive.vbox(backButton)); 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; view.previous = this;
replace(Pos.CENTER, view); replace(Pos.CENTER, view);
var customButton = Primitive.button(key, () -> {
runnable.run();
view.transitionPrevious();
});
view.add(Pos.BOTTOM_LEFT, Primitive.vbox(customButton));
} }
public void transitionPrevious() { public void transitionPrevious() {

View File

@@ -14,14 +14,12 @@ import javafx.scene.control.ListView;
public final class ServerView extends ViewWidget { public final class ServerView extends ViewWidget {
private final String user; private final String user;
private final Consumer<String> onPlayerClicked; private final Consumer<String> onPlayerClicked;
private final Runnable onDisconnect;
private final ListView<Button> listView; private final ListView<Button> listView;
public ServerView(String user, Consumer<String> onPlayerClicked, Runnable onDisconnect) { public ServerView(String user, Consumer<String> onPlayerClicked) {
this.user = user; this.user = user;
this.onPlayerClicked = onPlayerClicked; this.onPlayerClicked = onPlayerClicked;
this.onDisconnect = onDisconnect;
this.listView = new ListView<>(); this.listView = new ListView<>();
@@ -40,7 +38,6 @@ public final class ServerView extends ViewWidget {
add(Pos.CENTER, playerListSection); add(Pos.CENTER, playerListSection);
var disconnectButton = Primitive.button("disconnect", () -> { var disconnectButton = Primitive.button("disconnect", () -> {
onDisconnect.run();
transitionPrevious(); transitionPrevious();
}); });