diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java index 1c31b05..106c256 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java @@ -1,30 +1,27 @@ package ch.unibas.dmi.dbis.cs108.casono.client.ui.gameui.gameuicomponents; -import javafx.application.Platform; +import ch.unibas.dmi.dbis.cs108.casono.client.ui.lobbyui.Casinomainui; import javafx.fxml.FXML; import javafx.scene.control.TextField; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.input.MouseEvent; import javafx.scene.layout.HBox; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * Controller für die interaktive Taskleiste innerhalb der Poker-UI. * - *
- * Verantwortlich für: - Drag-and-Drop-Verschieben der Taskleiste, - Eingabe und - * Verwaltung von + *
Verantwortlich für: - Drag-and-Drop-Verschieben der Taskleiste, - Eingabe und Verwaltung von * Spieleinsätzen, - Steuerung allgemeiner Menüfunktionen wie Exit. */ public class TaskbarController { - private static final org.apache.logging.log4j.Logger LOGGER = org.apache.logging.log4j.LogManager - .getLogger(CasinoBrowserController.class); + 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; @@ -34,8 +31,7 @@ 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 @@ -47,13 +43,10 @@ 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. * - *
- * TODO: Es muss noch gefixt werden, dass die Taskleiste nicht aus dem Fenster - * verschwinden + *
TODO: Es muss noch gefixt werden, dass die Taskleiste nicht aus dem Fenster verschwinden * kann. * * @param event Das Mausereignis @@ -68,8 +61,7 @@ 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 @@ -93,8 +85,7 @@ 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 @@ -105,31 +96,29 @@ public class TaskbarController { /** * Wird aufgerufen, wenn der Exit-Button in der Taskleiste gedrückt wird. * - *
- * TODO: Logik implementieren, um zur Lobby zurückzukehren, ohne die gesamte - * Anwendung zu + *
TODO: Logik implementieren, um zur Lobby zurückzukehren, ohne die gesamte Anwendung zu * schließen (kein System.exit/Platform.exit). */ @FXML private void onExitButtonClick() { - javafx.application.Platform.runLater(() -> { - // Game-Stage schließen - javafx.stage.Stage currentStage = (javafx.stage.Stage) taskbar.getScene().getWindow(); - currentStage.close(); - // Lobby-UI starten - try { - new ch.unibas.dmi.dbis.cs108.casono.client.ui.lobbyui.Casinomainui().start(new javafx.stage.Stage()); - } catch (Exception e) { - LOGGER.error("Fehler beim Starten der Lobby-UI: {}", e.getMessage()); - } - }); + javafx.application.Platform.runLater( + () -> { + // Game-Stage schließen + javafx.stage.Stage currentStage = + (javafx.stage.Stage) taskbar.getScene().getWindow(); + currentStage.close(); + // Lobby-UI starten + try { + new Casinomainui().start(new javafx.stage.Stage()); + } catch (Exception e) { + LOGGER.error("Fehler beim Starten der Lobby-UI: {}", e.getMessage()); + } + }); } /** - * 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() { @@ -152,9 +141,7 @@ public class TaskbarController { /** * Öffnet den integrierten Casono Webbrowser. * - *
- * TODO: Ersetze die Start-URL durch die offizielle Projekt-Website (z.B. Tipps - * & Tricks + *
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
diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/CasinomainuiController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/CasinomainuiController.java
index ca0e69b..f58b04c 100644
--- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/CasinomainuiController.java
+++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/CasinomainuiController.java
@@ -12,27 +12,17 @@ import javafx.scene.shape.Rectangle;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-/**
- * Controller for the Casono main UI lobby. Handles UI initialization and user
- * actions.
- */
+/** Controller for the Casono main UI lobby. Handles UI initialization and user actions. */
public class CasinomainuiController {
private static final Logger LOGGER = LogManager.getLogger(CasinomainuiController.class);
- @FXML
- private AnchorPane rootPane;
- @FXML
- private Label titleLabel;
- @FXML
- private Label subtitleLabel;
- @FXML
- private ImageView logoView;
- @FXML
- private Rectangle greenBox;
- @FXML
- private Button exitbutton;
- @FXML
- private VBox casinoTable;
+ @FXML private AnchorPane rootPane;
+ @FXML private Label titleLabel;
+ @FXML private Label subtitleLabel;
+ @FXML private ImageView logoView;
+ @FXML private Rectangle greenBox;
+ @FXML private Button exitbutton;
+ @FXML private VBox casinoTable;
private LobbyButtonTranslationManager translationManager;
private LobbyButtonGridManager gridManager;
@@ -50,7 +40,8 @@ public class CasinomainuiController {
logoView.setImage(new Image(getClass().getResource("/images/logo.png").toExternalForm()));
translationManager = LobbyButtonTranslationManager.getInstance();
- gridManager = new LobbyButtonGridManager(new javafx.scene.layout.GridPane(), translationManager);
+ gridManager =
+ new LobbyButtonGridManager(new javafx.scene.layout.GridPane(), translationManager);
casinoTable.getChildren().clear();
casinoTable.getChildren().add(gridManager.getGridPane());
gridManager.renderLobbyButtons();
diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonGridManager.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonGridManager.java
index 2c4ab64..7495204 100644
--- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonGridManager.java
+++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonGridManager.java
@@ -13,8 +13,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
- * Manages the grid for lobby buttons and rendering. Uses
- * LobbyButtonTranslationManager for mapping
+ * Manages the grid for lobby buttons and rendering. Uses LobbyButtonTranslationManager for mapping
* ButtonID to LobbyID.
*/
public class LobbyButtonGridManager {
@@ -41,7 +40,7 @@ public class LobbyButtonGridManager {
/**
* Constructor for the GridManager.
*
- * @param gridPane the GridPane for rendering
+ * @param gridPane the GridPane for rendering
* @param translationManager the manager for mapping ButtonID to LobbyID
*/
public LobbyButtonGridManager(
@@ -52,8 +51,7 @@ public class LobbyButtonGridManager {
}
/**
- * Renders all lobby buttons in the grid. Creates a button for each mapping with
- * image and event
+ * Renders all lobby buttons in the grid. Creates a button for each mapping with image and event
* handler.
*/
public void renderLobbyButtons() {
@@ -68,7 +66,8 @@ public class LobbyButtonGridManager {
int buttonId = entry.getKey();
Button btn = new Button();
btn.setId("lobbyBtn-" + buttonId);
- ImageView imageView = new ImageView(new Image(getClass().getResourceAsStream(BUTTON_IMAGE_PATH)));
+ ImageView imageView =
+ new ImageView(new Image(getClass().getResourceAsStream(BUTTON_IMAGE_PATH)));
imageView.setPreserveRatio(true);
// Dynamische Breite: Bindung an die Zellengröße
imageView.fitWidthProperty().bind(gridPane.widthProperty().divide(COLS).subtract(20));
@@ -114,17 +113,20 @@ public class LobbyButtonGridManager {
public void joinLobby(int lobbyId) {
// Game-UI starten und Lobby-UI schließen
LOGGER.info("Joining lobby: {}", lobbyId);
- javafx.application.Platform.runLater(() -> {
- // Lobby-Stage schließen
- javafx.stage.Stage currentStage = (javafx.stage.Stage) gridPane.getScene().getWindow();
- currentStage.close();
- // Game-UI starten
- try {
- new ch.unibas.dmi.dbis.cs108.casono.client.ui.gameui.CasinoGameUI().start(new javafx.stage.Stage());
- } catch (Exception e) {
- LOGGER.error("Fehler beim Starten der Game-UI: {}", e.getMessage());
- }
- });
+ javafx.application.Platform.runLater(
+ () -> {
+ // Lobby-Stage schließen
+ javafx.stage.Stage currentStage =
+ (javafx.stage.Stage) gridPane.getScene().getWindow();
+ currentStage.close();
+ // Game-UI starten
+ try {
+ new ch.unibas.dmi.dbis.cs108.casono.client.ui.gameui.CasinoGameUI()
+ .start(new javafx.stage.Stage());
+ } catch (Exception e) {
+ LOGGER.error("Fehler beim Starten der Game-UI: {}", e.getMessage());
+ }
+ });
}
/**
diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonTranslationManager.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonTranslationManager.java
index 1d6371f..5d8df82 100644
--- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonTranslationManager.java
+++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/lobbyui/LobbyButtonTranslationManager.java
@@ -4,8 +4,7 @@ import java.util.HashMap;
import java.util.Map;
/**
- * Verwaltet das Mapping zwischen Button-IDs und Lobby-IDs rein im Speicher.
- * Keine Dateioperationen,
+ * Verwaltet das Mapping zwischen Button-IDs und Lobby-IDs rein im Speicher. Keine Dateioperationen,
* nur Laufzeitdatenstruktur.
*/
public class LobbyButtonTranslationManager {
@@ -27,9 +26,7 @@ public class LobbyButtonTranslationManager {
/** Zuordnung ButtonID → LobbyID */
private final Map