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();
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();

View File

@@ -7,6 +7,9 @@ import javafx.application.Platform;
import javafx.geometry.Pos;
import javafx.scene.layout.StackPane;
import java.util.ArrayList;
import java.util.List;
public final class WidgetContainer {
private static StackPane root;
private static ViewWidget currentView;
@@ -74,4 +77,16 @@ public final class WidgetContainer {
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));
}
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() {

View File

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