Feat/ui switch lobby game #222

Merged
jona.walpert merged 12 commits from feat/ui-switch-lobby-game into main 2026-04-01 12:34:31 +02:00
5 changed files with 70 additions and 22 deletions
Showing only changes of commit 40ea45460e - Show all commits
@@ -41,6 +41,11 @@ public class ChatController {
chatScrollPane.vvalueProperty().bind(chatVBox.heightProperty()); chatScrollPane.vvalueProperty().bind(chatVBox.heightProperty());
} }
/** Standardkonstruktor. Wird von FXML verwendet. */
public ChatController() {
// default constructor for FXML
}
/** /**
* Diese Methode wird vom Senden-Button oder Enter ausgelöst. Sie gibt die eigene Nachricht an * Diese Methode wird vom Senden-Button oder Enter ausgelöst. Sie gibt die eigene Nachricht an
* das Netzwerkprotokoll weiter. * das Netzwerkprotokoll weiter.
@@ -7,25 +7,41 @@ import javafx.scene.layout.VBox;
/** /**
* Controller für die Casino-Spielfläche. * Controller für die Casino-Spielfläche.
* *
* <p>Verantwortlich für: - die Darstellung des Pokertisches und der Spieleroberfläche, - die * <p>
* Verarbeitung von Benutzereingaben, - die Schnittstelle zur GameEngine und zum Netzwerkprotokoll. * Verantwortlich für: - die Darstellung des Pokertisches und der
* Spieleroberfläche, - die
* Verarbeitung von Benutzereingaben, - die Schnittstelle zur GameEngine und zum
* Netzwerkprotokoll.
* *
* <p>Hinweise: - Die Methode `onTableClick()` dient aktuell nur als Test-Logik. Sie ist ggf. nicht * <p>
* mehr funktionsfähig und wird zukünftig durch die finale Spielinteraktion ersetzt. * Hinweise: - Die Methode `onTableClick()` dient aktuell nur als Test-Logik.
* Sie ist ggf. nicht
* mehr funktionsfähig und wird zukünftig durch die finale Spielinteraktion
* ersetzt.
*/ */
public class CasinoGameController { public class CasinoGameController {
@FXML private Label welcomeText; /** Standardkonstruktor. Wird von FXML verwendet. */
@FXML private VBox casinoTable; public CasinoGameController() {
// default constructor for FXML
}
@FXML
private Label welcomeText;
@FXML
private VBox casinoTable;
// TODO: Test-Logik: wird durch echte Spielinteraktionen ersetzt, // TODO: Test-Logik: wird durch echte Spielinteraktionen ersetzt,
// sobald die GameEngine fertig ist // sobald die GameEngine fertig ist
@FXML
/** /**
* Temporäre Test-Methode, die bei Klick auf den Tisch eine Platzhalteraktion ausführt. * Temporäre Test-Methode, die bei Klick auf den Tisch eine Platzhalteraktion
* ausführt.
* *
* <p>Wird in der finalen Implementierung durch die Spiel-Logik ersetzt. * <p>
* Wird in der finalen Implementierung durch die Spiel-Logik ersetzt.
*/ */
@FXML
public void onTableClick() { public void onTableClick() {
welcomeText.setText("Einsatz akzeptiert!"); welcomeText.setText("Einsatz akzeptiert!");
} }
@@ -17,6 +17,11 @@ import javafx.stage.Stage;
*/ */
public class CasinoGameUI extends Application { public class CasinoGameUI extends Application {
/** Standardkonstruktor. */
public CasinoGameUI() {
// default no-arg constructor
}
private static final int DEFAULT_WIDTH = 1200; private static final int DEFAULT_WIDTH = 1200;
private static final int DEFAULT_HEIGHT = 800; private static final int DEFAULT_HEIGHT = 800;
@@ -50,6 +50,10 @@ import javafx.stage.Stage;
*/ */
public class CasinoBrowserController { public class CasinoBrowserController {
/** Standardkonstruktor. Initialisiert den CasinoBrowserController. */
public CasinoBrowserController() {
// Intentionally left blank; controller initialization is FXML-driven.
}
private static final Set<String> TRUSTED_DOMAINS = new HashSet<>(); private static final Set<String> TRUSTED_DOMAINS = new HashSet<>();
private static final CookieManager COOKIE_MANAGER = private static final CookieManager COOKIE_MANAGER =
@@ -13,15 +13,24 @@ import org.apache.logging.log4j.Logger;
/** /**
* Controller für die interaktive Taskleiste innerhalb der Poker-UI. * Controller für die interaktive Taskleiste innerhalb der Poker-UI.
* *
* <p>Verantwortlich für: - Drag-and-Drop-Verschieben der Taskleiste, - Eingabe und Verwaltung von * <p>
* Verantwortlich für: - Drag-and-Drop-Verschieben der Taskleiste, - Eingabe und
* Verwaltung von
* Spieleinsätzen, - Steuerung allgemeiner Menüfunktionen wie Exit. * Spieleinsätzen, - Steuerung allgemeiner Menüfunktionen wie Exit.
*/ */
public class TaskbarController { public class TaskbarController {
/** Standardkonstruktor. Wird von FXML verwendet. */
public TaskbarController() {
// default constructor for FXML
}
private static final Logger LOGGER = LogManager.getLogger(CasinoBrowserController.class); private static final Logger LOGGER = LogManager.getLogger(CasinoBrowserController.class);
@FXML private HBox taskbar; @FXML
@FXML private TextField taskbarInput; private HBox taskbar;
@FXML
private TextField taskbarInput;
private double xOffset = 0; private double xOffset = 0;
private double yOffset = 0; private double yOffset = 0;
@@ -31,7 +40,8 @@ public class TaskbarController {
private static final int CREDIT_STEP = 5; private static final int CREDIT_STEP = 5;
/** /**
* Wird aufgerufen, wenn die Taskleiste mit der Maus gedrückt wird. Speichert die relative * Wird aufgerufen, wenn die Taskleiste mit der Maus gedrückt wird. Speichert
* die relative
* Position, um später korrekt zu verschieben. * Position, um später korrekt zu verschieben.
* *
* @param event Das Mausereignis * @param event Das Mausereignis
@@ -43,10 +53,13 @@ public class TaskbarController {
} }
/** /**
* Wird aufgerufen, während die Taskleiste mit der Maus gezogen wird. Aktualisiert die Position * Wird aufgerufen, während die Taskleiste mit der Maus gezogen wird.
* Aktualisiert die Position
* und skaliert die Taskleiste leicht zur visuellen Rückmeldung. * und skaliert die Taskleiste leicht zur visuellen Rückmeldung.
* *
* <p>TODO: Es muss noch gefixt werden, dass die Taskleiste nicht aus dem Fenster verschwinden * <p>
* TODO: Es muss noch gefixt werden, dass die Taskleiste nicht aus dem Fenster
* verschwinden
* kann. * kann.
* *
* @param event Das Mausereignis * @param event Das Mausereignis
@@ -61,7 +74,8 @@ public class TaskbarController {
} }
/** /**
* Wird aufgerufen, wenn die Maus über der Taskleiste losgelassen wird. Setzt die Skalierung der * Wird aufgerufen, wenn die Maus über der Taskleiste losgelassen wird. Setzt
* die Skalierung der
* Taskleiste wieder auf Normalgröße. * Taskleiste wieder auf Normalgröße.
* *
* @param event Das Mausereignis * @param event Das Mausereignis
@@ -85,7 +99,8 @@ public class TaskbarController {
} }
/** /**
* Wird aufgerufen, wenn der Submit-Button in der Taskleiste gedrückt wird. Löst die * Wird aufgerufen, wenn der Submit-Button in der Taskleiste gedrückt wird. Löst
* die
* Verarbeitung des Einsatzes aus. * Verarbeitung des Einsatzes aus.
*/ */
@FXML @FXML
@@ -98,8 +113,7 @@ public class TaskbarController {
javafx.application.Platform.runLater( javafx.application.Platform.runLater(
() -> { () -> {
// Game-Stage schließen // Game-Stage schließen
javafx.stage.Stage currentStage = javafx.stage.Stage currentStage = (javafx.stage.Stage) taskbar.getScene().getWindow();
(javafx.stage.Stage) taskbar.getScene().getWindow();
currentStage.close(); currentStage.close();
// Lobby-UI starten // Lobby-UI starten
try { try {
@@ -111,8 +125,10 @@ public class TaskbarController {
} }
/** /**
* Verarbeitet den im Textfeld eingegebenen Einsatz. Es werden ausschließlich ganzzahlige Werte * Verarbeitet den im Textfeld eingegebenen Einsatz. Es werden ausschließlich
* im Bereich von 5 bis 100.000 Credits akzeptiert, die einem Vielfachen von 5 entsprechen * ganzzahlige Werte
* im Bereich von 5 bis 100.000 Credits akzeptiert, die einem Vielfachen von 5
* entsprechen
* (5er-Schritte). Der Einsatz wird aktuell nur auf der Konsole ausgegeben. * (5er-Schritte). Der Einsatz wird aktuell nur auf der Konsole ausgegeben.
*/ */
private void processBet() { private void processBet() {
@@ -135,7 +151,9 @@ public class TaskbarController {
/** /**
* Öffnet den integrierten Casono Webbrowser. * Öffnet den integrierten Casono Webbrowser.
* *
* <p>TODO: Ersetze die Start-URL durch die offizielle Projekt-Website (z.B. Tipps & Tricks * <p>
* TODO: Ersetze die Start-URL durch die offizielle Projekt-Website (z.B. Tipps
* & Tricks
* Seite), sobald die Inhalte für Strategien und Support bereitstehen. * Seite), sobald die Inhalte für Strategien und Support bereitstehen.
*/ */
@FXML @FXML