From 6a1aa466e21ff1e29ad73856e56a8bf5a7688f34 Mon Sep 17 00:00:00 2001 From: AleandroPagani Date: Sun, 10 May 2026 20:10:00 +0200 Subject: [PATCH] Progress in code refactor --- .../gc14/View/GUI/MainFXMLController.java | 116 ++++++++---------- src/main/resources/GUIScene/main.fxml | 8 +- 2 files changed, 56 insertions(+), 68 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java index 0902f6d..a4c9023 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java @@ -63,20 +63,7 @@ public class MainFXMLController { renderUpper(); renderBoard(); renderLower(); - - - // My hand - myHand.getChildren().clear(); - myHand.setSpacing(6); - myHand.setAlignment(Pos.CENTER); - - drawMyHandCard(myHand, model.getPlayerByUsername(username).artists); - drawMyHandCard(myHand, model.getPlayerByUsername(username).gatherers); - drawMyHandCard(myHand, model.getPlayerByUsername(username).inventors); - drawMyHandCard(myHand, model.getPlayerByUsername(username).builders); - drawMyHandCard(myHand, model.getPlayerByUsername(username).shamans); - drawMyHandCard(myHand, model.getPlayerByUsername(username).hunters); - drawMyHandCard(myHand, model.getPlayerByUsername(username).buildingCards); + drawMyHand(); // Other players and info @@ -211,37 +198,10 @@ public class MainFXMLController { } - - - - - - - - - - - - - - - - - - - void drawMyHandCard(HBox myHand, ArrayList cardList) { + private void drawMyHandList(HBox myHand, ArrayList cardList) { if (!cardList.isEmpty()) { - ImageView img = new ImageView(new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + cardList.getLast().getIdIMG() + ".png"))); - img.setFitHeight(200); - img.setPreserveRatio(true); - - Rectangle clip = new Rectangle(); - clip.setWidth(img.getBoundsInLocal().getWidth()); - clip.setHeight(200); - clip.setArcWidth(20); - clip.setArcHeight(20); - img.setClip(clip); + ImageView img = createCard(cardList.getLast()); Label label = new Label(String.valueOf(cardList.size())); label.setTranslateY(-55); label.setTranslateX(10); @@ -253,47 +213,73 @@ public class MainFXMLController { stack.setOnMouseClicked(e -> openPopup(cardList)); myHand.getChildren().add(stack); + } else { + Region placeholder = new Region(); + placeholder.setPrefHeight(200); + placeholder.setPrefWidth(200 * 0.675); + placeholder.setStyle("-fx-background-color: transparent;"); + myHand.getChildren().add(placeholder); } } + + + private void drawMyHand() { + myHand.getChildren().clear(); + myHand.setSpacing(6); + myHand.setAlignment(Pos.CENTER); + + drawMyHandList(myHand, model.getPlayerByUsername(username).artists); + drawMyHandList(myHand, model.getPlayerByUsername(username).gatherers); + drawMyHandList(myHand, model.getPlayerByUsername(username).inventors); + drawMyHandList(myHand, model.getPlayerByUsername(username).builders); + drawMyHandList(myHand, model.getPlayerByUsername(username).shamans); + drawMyHandList(myHand, model.getPlayerByUsername(username).hunters); + drawMyHandList(myHand, model.getPlayerByUsername(username).buildingCards); + } + + + + + + + + + + + + + + + + + + + + private void initPopup() { popupCards = new HBox(10); popupCards.setAlignment(Pos.CENTER); popupCards.setPadding(new Insets(10)); - - Button closeBtn = new Button("X"); - closeBtn.setOnAction(e -> popup.hide()); - - VBox content = new VBox(10, closeBtn, popupCards); - content.setPadding(new Insets(20)); - content.setStyle("-fx-background-color: #222; -fx-border-color: white; -fx-border-width: 2; -fx-border-radius: 10; -fx-background-radius: 10;"); + popupCards.setStyle("-fx-background-color: #b42224; -fx-border-color: black; -fx-border-width: 2; -fx-border-radius: 10; -fx-background-radius: 10;"); popup = new Popup(); - popup.getContent().add(content); - popup.setAutoHide(true); // si chiude anche cliccando fuori + popup.getContent().add(popupCards); + popup.setAutoHide(true); } private void openPopup(ArrayList cardList) { popupCards.getChildren().clear(); for (PlayableCard card : cardList) { - ImageView img = new ImageView(new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"))); - img.setFitHeight(200); - img.setPreserveRatio(true); + ImageView img = createCard(card); popupCards.getChildren().add(img); } javafx.stage.Window window = myHand.getScene().getWindow(); - // Mostralo prima fuori schermo - popup.show(window, 0, 0); - - // Poi centralo con le dimensioni reali - double x = window.getX() + (window.getWidth() - popup.getWidth()) / 2; - double y = window.getY() + (window.getHeight() - popup.getHeight()) / 2; - popup.setX(x); - popup.setY(y); + popup.show(window, (window.getWidth() - popup.getWidth()) / 2, (window.getHeight() - popup.getHeight()) / 2); } private void renderPlayers(VBox playersHand) { @@ -306,7 +292,7 @@ public class MainFXMLController { "-fx-border-width: 2;" + "-fx-border-radius: 15;" + "-fx-background-radius: 15;" + - "-fx-background-color: white;" + "-fx-background-color: #b42224;" ); @@ -342,4 +328,6 @@ public class MainFXMLController { } + + } diff --git a/src/main/resources/GUIScene/main.fxml b/src/main/resources/GUIScene/main.fxml index dd35b44..ccfd6e9 100644 --- a/src/main/resources/GUIScene/main.fxml +++ b/src/main/resources/GUIScene/main.fxml @@ -14,22 +14,22 @@ - + - + - + - +