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());
}
/** 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
* das Netzwerkprotokoll weiter.
@@ -7,25 +7,41 @@ import javafx.scene.layout.VBox;
/**
* Controller für die Casino-Spielfläche.
*
* <p>Verantwortlich für: - die Darstellung des Pokertisches und der Spieleroberfläche, - die
* Verarbeitung von Benutzereingaben, - die Schnittstelle zur GameEngine und zum Netzwerkprotokoll.
* <p>
* 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
* mehr funktionsfähig und wird zukünftig durch die finale Spielinteraktion ersetzt.
* <p>
* 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 {
@FXML private Label welcomeText;
@FXML private VBox casinoTable;
/** Standardkonstruktor. Wird von FXML verwendet. */
public CasinoGameController() {
// default constructor for FXML
}
@FXML
private Label welcomeText;
@FXML
private VBox casinoTable;
// TODO: Test-Logik: wird durch echte Spielinteraktionen ersetzt,
// 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() {
welcomeText.setText("Einsatz akzeptiert!");
}
@@ -17,6 +17,11 @@ import javafx.stage.Stage;
*/
public class CasinoGameUI extends Application {
/** Standardkonstruktor. */
public CasinoGameUI() {
// default no-arg constructor
}
private static final int DEFAULT_WIDTH = 1200;
private static final int DEFAULT_HEIGHT = 800;
@@ -50,6 +50,10 @@ import javafx.stage.Stage;
*/
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 CookieManager COOKIE_MANAGER =
@@ -13,15 +13,24 @@ import org.apache.logging.log4j.Logger;
/**
* 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.
*/
public class TaskbarController {
/** Standardkonstruktor. Wird von FXML verwendet. */
public TaskbarController() {
// default constructor for FXML
}
private static final Logger LOGGER = LogManager.getLogger(CasinoBrowserController.class);
@FXML private HBox taskbar;
@FXML private TextField taskbarInput;
@FXML
private HBox taskbar;
@FXML
private TextField taskbarInput;
private double xOffset = 0;
private double yOffset = 0;
@@ -31,7 +40,8 @@ public class TaskbarController {
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.
*
* @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.
*
* <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.
*
* @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.
*
* @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.
*/
@FXML
@@ -98,8 +113,7 @@ public class TaskbarController {
javafx.application.Platform.runLater(
() -> {
// Game-Stage schließen
javafx.stage.Stage currentStage =
(javafx.stage.Stage) taskbar.getScene().getWindow();
javafx.stage.Stage currentStage = (javafx.stage.Stage) taskbar.getScene().getWindow();
currentStage.close();
// Lobby-UI starten
try {
@@ -111,8 +125,10 @@ public class TaskbarController {
}
/**
* Verarbeitet den im Textfeld eingegebenen Einsatz. Es werden ausschließlich ganzzahlige Werte
* im Bereich von 5 bis 100.000 Credits akzeptiert, die einem Vielfachen von 5 entsprechen
* Verarbeitet den im Textfeld eingegebenen Einsatz. Es werden ausschließlich
* 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.
*/
private void processBet() {
@@ -135,7 +151,9 @@ public class TaskbarController {
/**
* Ö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.
*/
@FXML