Style: Line length
This commit is contained in:
+29
-42
@@ -1,30 +1,27 @@
|
|||||||
package ch.unibas.dmi.dbis.cs108.casono.client.ui.gameui.gameuicomponents;
|
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.fxml.FXML;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import javafx.scene.input.KeyEvent;
|
import javafx.scene.input.KeyEvent;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.layout.HBox;
|
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.
|
* Controller für die interaktive Taskleiste innerhalb der Poker-UI.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>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.
|
* Spieleinsätzen, - Steuerung allgemeiner Menüfunktionen wie Exit.
|
||||||
*/
|
*/
|
||||||
public class TaskbarController {
|
public class TaskbarController {
|
||||||
|
|
||||||
private static final org.apache.logging.log4j.Logger LOGGER = org.apache.logging.log4j.LogManager
|
private static final Logger LOGGER = LogManager.getLogger(CasinoBrowserController.class);
|
||||||
.getLogger(CasinoBrowserController.class);
|
|
||||||
|
|
||||||
@FXML
|
@FXML private HBox taskbar;
|
||||||
private HBox taskbar;
|
@FXML private TextField taskbarInput;
|
||||||
@FXML
|
|
||||||
private TextField taskbarInput;
|
|
||||||
|
|
||||||
private double xOffset = 0;
|
private double xOffset = 0;
|
||||||
private double yOffset = 0;
|
private double yOffset = 0;
|
||||||
@@ -34,8 +31,7 @@ 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
|
* Wird aufgerufen, wenn die Taskleiste mit der Maus gedrückt wird. Speichert die relative
|
||||||
* die relative
|
|
||||||
* Position, um später korrekt zu verschieben.
|
* Position, um später korrekt zu verschieben.
|
||||||
*
|
*
|
||||||
* @param event Das Mausereignis
|
* @param event Das Mausereignis
|
||||||
@@ -47,13 +43,10 @@ public class TaskbarController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wird aufgerufen, während die Taskleiste mit der Maus gezogen wird.
|
* Wird aufgerufen, während die Taskleiste mit der Maus gezogen wird. Aktualisiert die Position
|
||||||
* Aktualisiert die Position
|
|
||||||
* und skaliert die Taskleiste leicht zur visuellen Rückmeldung.
|
* und skaliert die Taskleiste leicht zur visuellen Rückmeldung.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>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.
|
* kann.
|
||||||
*
|
*
|
||||||
* @param event Das Mausereignis
|
* @param event Das Mausereignis
|
||||||
@@ -68,8 +61,7 @@ public class TaskbarController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wird aufgerufen, wenn die Maus über der Taskleiste losgelassen wird. Setzt
|
* Wird aufgerufen, wenn die Maus über der Taskleiste losgelassen wird. Setzt die Skalierung der
|
||||||
* die Skalierung der
|
|
||||||
* Taskleiste wieder auf Normalgröße.
|
* Taskleiste wieder auf Normalgröße.
|
||||||
*
|
*
|
||||||
* @param event Das Mausereignis
|
* @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
|
* Wird aufgerufen, wenn der Submit-Button in der Taskleiste gedrückt wird. Löst die
|
||||||
* die
|
|
||||||
* Verarbeitung des Einsatzes aus.
|
* Verarbeitung des Einsatzes aus.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
@@ -105,31 +96,29 @@ public class TaskbarController {
|
|||||||
/**
|
/**
|
||||||
* Wird aufgerufen, wenn der Exit-Button in der Taskleiste gedrückt wird.
|
* Wird aufgerufen, wenn der Exit-Button in der Taskleiste gedrückt wird.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>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).
|
* schließen (kein System.exit/Platform.exit).
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
private void onExitButtonClick() {
|
private void onExitButtonClick() {
|
||||||
javafx.application.Platform.runLater(() -> {
|
javafx.application.Platform.runLater(
|
||||||
// Game-Stage schließen
|
() -> {
|
||||||
javafx.stage.Stage currentStage = (javafx.stage.Stage) taskbar.getScene().getWindow();
|
// Game-Stage schließen
|
||||||
currentStage.close();
|
javafx.stage.Stage currentStage =
|
||||||
// Lobby-UI starten
|
(javafx.stage.Stage) taskbar.getScene().getWindow();
|
||||||
try {
|
currentStage.close();
|
||||||
new ch.unibas.dmi.dbis.cs108.casono.client.ui.lobbyui.Casinomainui().start(new javafx.stage.Stage());
|
// Lobby-UI starten
|
||||||
} catch (Exception e) {
|
try {
|
||||||
LOGGER.error("Fehler beim Starten der Lobby-UI: {}", e.getMessage());
|
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
|
* Verarbeitet den im Textfeld eingegebenen Einsatz. Es werden ausschließlich ganzzahlige Werte
|
||||||
* ganzzahlige Werte
|
* im Bereich von 5 bis 100.000 Credits akzeptiert, die einem Vielfachen von 5 entsprechen
|
||||||
* 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() {
|
||||||
@@ -152,9 +141,7 @@ public class TaskbarController {
|
|||||||
/**
|
/**
|
||||||
* Öffnet den integrierten Casono Webbrowser.
|
* Öffnet den integrierten Casono Webbrowser.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>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.
|
* Seite), sobald die Inhalte für Strategien und Support bereitstehen.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
|
|||||||
+10
-19
@@ -12,27 +12,17 @@ import javafx.scene.shape.Rectangle;
|
|||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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 {
|
public class CasinomainuiController {
|
||||||
private static final Logger LOGGER = LogManager.getLogger(CasinomainuiController.class);
|
private static final Logger LOGGER = LogManager.getLogger(CasinomainuiController.class);
|
||||||
|
|
||||||
@FXML
|
@FXML private AnchorPane rootPane;
|
||||||
private AnchorPane rootPane;
|
@FXML private Label titleLabel;
|
||||||
@FXML
|
@FXML private Label subtitleLabel;
|
||||||
private Label titleLabel;
|
@FXML private ImageView logoView;
|
||||||
@FXML
|
@FXML private Rectangle greenBox;
|
||||||
private Label subtitleLabel;
|
@FXML private Button exitbutton;
|
||||||
@FXML
|
@FXML private VBox casinoTable;
|
||||||
private ImageView logoView;
|
|
||||||
@FXML
|
|
||||||
private Rectangle greenBox;
|
|
||||||
@FXML
|
|
||||||
private Button exitbutton;
|
|
||||||
@FXML
|
|
||||||
private VBox casinoTable;
|
|
||||||
|
|
||||||
private LobbyButtonTranslationManager translationManager;
|
private LobbyButtonTranslationManager translationManager;
|
||||||
private LobbyButtonGridManager gridManager;
|
private LobbyButtonGridManager gridManager;
|
||||||
@@ -50,7 +40,8 @@ public class CasinomainuiController {
|
|||||||
logoView.setImage(new Image(getClass().getResource("/images/logo.png").toExternalForm()));
|
logoView.setImage(new Image(getClass().getResource("/images/logo.png").toExternalForm()));
|
||||||
|
|
||||||
translationManager = LobbyButtonTranslationManager.getInstance();
|
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().clear();
|
||||||
casinoTable.getChildren().add(gridManager.getGridPane());
|
casinoTable.getChildren().add(gridManager.getGridPane());
|
||||||
gridManager.renderLobbyButtons();
|
gridManager.renderLobbyButtons();
|
||||||
|
|||||||
+19
-17
@@ -13,8 +13,7 @@ import org.apache.logging.log4j.LogManager;
|
|||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages the grid for lobby buttons and rendering. Uses
|
* Manages the grid for lobby buttons and rendering. Uses LobbyButtonTranslationManager for mapping
|
||||||
* LobbyButtonTranslationManager for mapping
|
|
||||||
* ButtonID to LobbyID.
|
* ButtonID to LobbyID.
|
||||||
*/
|
*/
|
||||||
public class LobbyButtonGridManager {
|
public class LobbyButtonGridManager {
|
||||||
@@ -41,7 +40,7 @@ public class LobbyButtonGridManager {
|
|||||||
/**
|
/**
|
||||||
* Constructor for the GridManager.
|
* 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
|
* @param translationManager the manager for mapping ButtonID to LobbyID
|
||||||
*/
|
*/
|
||||||
public LobbyButtonGridManager(
|
public LobbyButtonGridManager(
|
||||||
@@ -52,8 +51,7 @@ public class LobbyButtonGridManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders all lobby buttons in the grid. Creates a button for each mapping with
|
* Renders all lobby buttons in the grid. Creates a button for each mapping with image and event
|
||||||
* image and event
|
|
||||||
* handler.
|
* handler.
|
||||||
*/
|
*/
|
||||||
public void renderLobbyButtons() {
|
public void renderLobbyButtons() {
|
||||||
@@ -68,7 +66,8 @@ public class LobbyButtonGridManager {
|
|||||||
int buttonId = entry.getKey();
|
int buttonId = entry.getKey();
|
||||||
Button btn = new Button();
|
Button btn = new Button();
|
||||||
btn.setId("lobbyBtn-" + buttonId);
|
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);
|
imageView.setPreserveRatio(true);
|
||||||
// Dynamische Breite: Bindung an die Zellengröße
|
// Dynamische Breite: Bindung an die Zellengröße
|
||||||
imageView.fitWidthProperty().bind(gridPane.widthProperty().divide(COLS).subtract(20));
|
imageView.fitWidthProperty().bind(gridPane.widthProperty().divide(COLS).subtract(20));
|
||||||
@@ -114,17 +113,20 @@ public class LobbyButtonGridManager {
|
|||||||
public void joinLobby(int lobbyId) {
|
public void joinLobby(int lobbyId) {
|
||||||
// Game-UI starten und Lobby-UI schließen
|
// Game-UI starten und Lobby-UI schließen
|
||||||
LOGGER.info("Joining lobby: {}", lobbyId);
|
LOGGER.info("Joining lobby: {}", lobbyId);
|
||||||
javafx.application.Platform.runLater(() -> {
|
javafx.application.Platform.runLater(
|
||||||
// Lobby-Stage schließen
|
() -> {
|
||||||
javafx.stage.Stage currentStage = (javafx.stage.Stage) gridPane.getScene().getWindow();
|
// Lobby-Stage schließen
|
||||||
currentStage.close();
|
javafx.stage.Stage currentStage =
|
||||||
// Game-UI starten
|
(javafx.stage.Stage) gridPane.getScene().getWindow();
|
||||||
try {
|
currentStage.close();
|
||||||
new ch.unibas.dmi.dbis.cs108.casono.client.ui.gameui.CasinoGameUI().start(new javafx.stage.Stage());
|
// Game-UI starten
|
||||||
} catch (Exception e) {
|
try {
|
||||||
LOGGER.error("Fehler beim Starten der Game-UI: {}", e.getMessage());
|
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());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+3
-6
@@ -4,8 +4,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verwaltet das Mapping zwischen Button-IDs und Lobby-IDs rein im Speicher.
|
* Verwaltet das Mapping zwischen Button-IDs und Lobby-IDs rein im Speicher. Keine Dateioperationen,
|
||||||
* Keine Dateioperationen,
|
|
||||||
* nur Laufzeitdatenstruktur.
|
* nur Laufzeitdatenstruktur.
|
||||||
*/
|
*/
|
||||||
public class LobbyButtonTranslationManager {
|
public class LobbyButtonTranslationManager {
|
||||||
@@ -27,9 +26,7 @@ public class LobbyButtonTranslationManager {
|
|||||||
/** Zuordnung ButtonID → LobbyID */
|
/** Zuordnung ButtonID → LobbyID */
|
||||||
private final Map<Integer, Integer> buttonIdToLobbyId = new HashMap<>();
|
private final Map<Integer, Integer> buttonIdToLobbyId = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/** Privater Konstruktor für Singleton-Pattern */
|
||||||
* Privater Konstruktor für Singleton-Pattern
|
|
||||||
*/
|
|
||||||
private LobbyButtonTranslationManager() {
|
private LobbyButtonTranslationManager() {
|
||||||
// Zuordnung bleibt leer beim Start
|
// Zuordnung bleibt leer beim Start
|
||||||
}
|
}
|
||||||
@@ -47,7 +44,7 @@ public class LobbyButtonTranslationManager {
|
|||||||
* Fügt eine Zuordnung ButtonID → LobbyID hinzu.
|
* Fügt eine Zuordnung ButtonID → LobbyID hinzu.
|
||||||
*
|
*
|
||||||
* @param buttonId Die ID des Buttons
|
* @param buttonId Die ID des Buttons
|
||||||
* @param lobbyId Die ID der Lobby
|
* @param lobbyId Die ID der Lobby
|
||||||
* @throws Exception wenn das Grid voll ist
|
* @throws Exception wenn das Grid voll ist
|
||||||
*/
|
*/
|
||||||
public void addLobbyButton(int buttonId, int lobbyId) throws Exception {
|
public void addLobbyButton(int buttonId, int lobbyId) throws Exception {
|
||||||
|
|||||||
-1
@@ -23,5 +23,4 @@ class LobbyButtonGridManagerTest {
|
|||||||
int lobbyId = gridManager.createLobby();
|
int lobbyId = gridManager.createLobby();
|
||||||
assertTrue(lobbyId > 0);
|
assertTrue(lobbyId > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user