From ed1630201d176de143d9554ed33abfe485147896 Mon Sep 17 00:00:00 2001 From: Francesco Bariatti <francesco.bariatti@insa-rennes.fr> Date: Mon, 2 May 2016 17:04:01 +0200 Subject: [PATCH] Changed Tile representation in GUI --- gui/src/controller/Controller.java | 9 +++- gui/src/controller/UpdateThread.java | 4 +- gui/src/view/TileView.java | 30 +++++++------- gui/src/view/view.fxml | 61 ++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 20 deletions(-) diff --git a/gui/src/controller/Controller.java b/gui/src/controller/Controller.java index 9fdf2cc..32f4542 100644 --- a/gui/src/controller/Controller.java +++ b/gui/src/controller/Controller.java @@ -37,6 +37,8 @@ public class Controller implements Initializable @FXML private Polygon tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8, tile9, tile10, tile11, tile12, tile13, tile14, tile15, tile16, tile17, tile18, tile19, tile20, tile21, tile22, tile23, tile24, tile25, tile26, tile27, tile28, tile29, tile30, tile31, tile32, tile33, tile34, tile35, tile36, tile37, tile38, tile39, tile40, tile41, tile42, tile43, tile44, tile45, tile46, tile47, tile48, tile49, tile50, tile51, tile52, tile53, tile54, tile55, tile56, tile57, tile58, tile59; + @FXML + private Label nbFish0, nbFish1, nbFish2, nbFish3, nbFish4, nbFish5, nbFish6, nbFish7, nbFish8, nbFish9, nbFish10, nbFish11, nbFish12, nbFish13, nbFish14, nbFish15, nbFish16, nbFish17, nbFish18, nbFish19, nbFish20, nbFish21, nbFish22, nbFish23, nbFish24, nbFish25, nbFish26, nbFish27, nbFish28, nbFish29, nbFish30, nbFish31, nbFish32, nbFish33, nbFish34, nbFish35, nbFish36, nbFish37, nbFish38, nbFish39, nbFish40, nbFish41, nbFish42, nbFish43, nbFish44, nbFish45, nbFish46, nbFish47, nbFish48, nbFish49, nbFish50, nbFish51, nbFish52, nbFish53, nbFish54, nbFish55, nbFish56, nbFish57, nbFish58, nbFish59; @FXML private BorderPane mainPane; @@ -48,13 +50,16 @@ public class Controller implements Initializable public void initialize(URL location, ResourceBundle resources) { Polygon[] fxTiles = {tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8, tile9, tile10, tile11, tile12, tile13, tile14, tile15, tile16, tile17, tile18, tile19, tile20, tile21, tile22, tile23, tile24, tile25, tile26, tile27, tile28, tile29, tile30, tile31, tile32, tile33, tile34, tile35, tile36, tile37, tile38, tile39, tile40, tile41, tile42, tile43, tile44, tile45, tile46, tile47, tile48, tile49, tile50, tile51, tile52, tile53, tile54, tile55, tile56, tile57, tile58, tile59}; + Label[] labels = {nbFish0, nbFish1, nbFish2, nbFish3, nbFish4, nbFish5, nbFish6, nbFish7, nbFish8, nbFish9, nbFish10, nbFish11, nbFish12, nbFish13, nbFish14, nbFish15, nbFish16, nbFish17, nbFish18, nbFish19, nbFish20, nbFish21, nbFish22, nbFish23, nbFish24, nbFish25, nbFish26, nbFish27, nbFish28, nbFish29, nbFish30, nbFish31, nbFish32, nbFish33, nbFish34, nbFish35, nbFish36, nbFish37, nbFish38, nbFish39, nbFish40, nbFish41, nbFish42, nbFish43, nbFish44, nbFish45, nbFish46, nbFish47, nbFish48, nbFish49, nbFish50, nbFish51, nbFish52, nbFish53, nbFish54, nbFish55, nbFish56, nbFish57, nbFish58, nbFish59}; this.board = new Tile[fxTiles.length]; this.boardView = new TileView[fxTiles.length]; for (int i = 0; i < fxTiles.length; i++) { board[i] = new Tile(i, Tile.PenguinPresence.NO_PENGUIN); - fxTiles[i].setOnMouseClicked(new TileClickHandler(i)); - boardView[i] = new TileView(fxTiles[i], board[i]); + TileClickHandler clickHandler = new TileClickHandler(i); + fxTiles[i].setOnMouseClicked(clickHandler); + labels[i].setOnMouseClicked(clickHandler); + boardView[i] = new TileView(fxTiles[i], board[i], labels[i]); } this.selectedTile = -1; this.gameState = new GameState(); diff --git a/gui/src/controller/UpdateThread.java b/gui/src/controller/UpdateThread.java index 92f2834..8d22719 100644 --- a/gui/src/controller/UpdateThread.java +++ b/gui/src/controller/UpdateThread.java @@ -79,9 +79,9 @@ public class UpdateThread extends Thread } //UPDATE VIEW - for (int i = 0; i < boardView.length; i++) - boardView[i].update(); Platform.runLater(() -> { + for (int i = 0; i < boardView.length; i++) + boardView[i].update(); scoreRed.setText(Integer.toString(gameState.getScore(Player.Red))); scoreBlue.setText(Integer.toString(gameState.getScore(Player.Blue))); turnLabel.setText(gameState.getCurrent_player()+ "'s turn"); diff --git a/gui/src/view/TileView.java b/gui/src/view/TileView.java index 2ebb489..36f5928 100644 --- a/gui/src/view/TileView.java +++ b/gui/src/view/TileView.java @@ -1,5 +1,6 @@ package view; +import javafx.scene.control.Label; import javafx.scene.paint.Color; import javafx.scene.shape.Polygon; import model.Move; @@ -12,14 +13,16 @@ public class TileView { private Polygon fxTile; private Tile modelTile; + private Label fishLabel; private boolean selected, highlighted; private Move highlightMove = null; // How do we get here from the selected tile (used when highlighting) - public TileView(Polygon fxTile, Tile modelTile) + public TileView(Polygon fxTile, Tile modelTile, Label fishLabel) { this.fxTile = fxTile; this.modelTile = modelTile; + this.fishLabel = fishLabel; } /** @@ -30,20 +33,15 @@ public class TileView //TODO: Better tile representation Color fillColor = null; //FISH NUMBER - switch (modelTile.getNbFish()) + if(modelTile.getNbFish() == 0) { - case 0: - fillColor = Color.LIGHTBLUE; - break; - case 1: - fillColor = Color.GREENYELLOW; - break; - case 2: - fillColor = Color.GREEN; - break; - case 3: - fillColor = Color.DARKGREEN; - break; + fishLabel.setText(""); + fillColor = Color.WHITE; + } + else + { + fishLabel.setText(Integer.toString(modelTile.getNbFish())); + fillColor = Color.LIGHTBLUE; } //PENGUIN if (modelTile.getPenguinPresence().equals(Tile.PenguinPresence.RED_PENGUIN)) @@ -53,9 +51,9 @@ public class TileView //SELECTION/HIGHLIGHT if (selected) - fillColor = fillColor.deriveColor(0, 1, 0.5, 1); - if (highlighted) fillColor = fillColor.deriveColor(0, 0.5, 1, 1); + if (highlighted) + fillColor = fillColor.deriveColor(0, 1, 0.5, 1); fxTile.setFill(fillColor); diff --git a/gui/src/view/view.fxml b/gui/src/view/view.fxml index 2f7f1d6..c63064b 100644 --- a/gui/src/view/view.fxml +++ b/gui/src/view/view.fxml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> +<?import javafx.scene.image.*?> <?import javafx.geometry.*?> <?import javafx.scene.text.*?> <?import java.lang.*?> @@ -1016,6 +1017,66 @@ <Font size="24.0" /> </font> </Label> + <Label fx:id="nbFish44" layoutX="61.0" layoutY="202.0" text="0" /> + <Label fx:id="nbFish43" layoutX="111.0" layoutY="202.0" text="0" /> + <Label fx:id="nbFish42" layoutX="161.0" layoutY="202.0" text="0" /> + <Label fx:id="nbFish41" layoutX="211.0" layoutY="202.0" text="0" /> + <Label fx:id="nbFish40" layoutX="260.0" layoutY="202.0" text="0" /> + <Label fx:id="nbFish39" layoutX="310.0" layoutY="202.0" text="0" /> + <Label fx:id="nbFish38" layoutX="360.0" layoutY="202.0" text="0" /> + <Label fx:id="nbFish59" layoutX="60.0" layoutY="112.0" text="0" /> + <Label fx:id="nbFish58" layoutX="110.0" layoutY="112.0" text="0" /> + <Label fx:id="nbFish57" layoutX="160.0" layoutY="112.0" text="0" /> + <Label fx:id="nbFish56" layoutX="210.0" layoutY="112.0" text="0" /> + <Label fx:id="nbFish55" layoutX="259.0" layoutY="112.0" text="0" /> + <Label fx:id="nbFish54" layoutX="309.0" layoutY="112.0" text="0" /> + <Label fx:id="nbFish53" layoutX="359.0" layoutY="112.0" text="0" /> + <Label fx:id="nbFish29" layoutX="60.0" layoutY="292.0" text="0" /> + <Label fx:id="nbFish28" layoutX="110.0" layoutY="292.0" text="0" /> + <Label fx:id="nbFish27" layoutX="160.0" layoutY="292.0" text="0" /> + <Label fx:id="nbFish26" layoutX="210.0" layoutY="292.0" text="0" /> + <Label fx:id="nbFish25" layoutX="259.0" layoutY="292.0" text="0" /> + <Label fx:id="nbFish24" layoutX="309.0" layoutY="292.0" text="0" /> + <Label fx:id="nbFish23" layoutX="359.0" layoutY="292.0" text="0" /> + <Label fx:id="nbFish14" layoutX="60.0" layoutY="383.0" text="0" /> + <Label fx:id="nbFish13" layoutX="110.0" layoutY="383.0" text="0" /> + <Label fx:id="nbFish12" layoutX="160.0" layoutY="383.0" text="0" /> + <Label fx:id="nbFish11" layoutX="210.0" layoutY="383.0" text="0" /> + <Label fx:id="nbFish10" layoutX="259.0" layoutY="383.0" text="0" /> + <Label fx:id="nbFish9" layoutX="309.0" layoutY="383.0" text="0" /> + <Label fx:id="nbFish8" layoutX="359.0" layoutY="383.0" text="0" /> + <Label fx:id="nbFish6" layoutX="84.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish5" layoutX="134.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish4" layoutX="184.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish3" layoutX="234.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish2" layoutX="283.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish1" layoutX="333.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish0" layoutX="383.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish21" layoutX="86.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish20" layoutX="136.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish19" layoutX="186.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish18" layoutX="236.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish17" layoutX="285.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish16" layoutX="335.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish15" layoutX="385.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish36" layoutX="85.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish35" layoutX="135.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish34" layoutX="185.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish33" layoutX="235.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish32" layoutX="284.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish31" layoutX="334.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish30" layoutX="384.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish51" layoutX="84.0" layoutY="157.0" text="0" /> + <Label fx:id="nbFish50" layoutX="134.0" layoutY="157.0" text="0" /> + <Label fx:id="nbFish49" layoutX="184.0" layoutY="157.0" text="0" /> + <Label fx:id="nbFish48" layoutX="234.0" layoutY="157.0" text="0" /> + <Label fx:id="nbFish47" layoutX="283.0" layoutY="157.0" text="0" /> + <Label fx:id="nbFish46" layoutX="333.0" layoutY="157.0" text="0" /> + <Label fx:id="nbFish45" layoutX="383.0" layoutY="157.0" text="0" /> + <Label fx:id="nbFish7" layoutX="34.0" layoutY="427.0" text="0" /> + <Label fx:id="nbFish22" layoutX="34.0" layoutY="337.0" text="0" /> + <Label fx:id="nbFish37" layoutX="34.0" layoutY="247.0" text="0" /> + <Label fx:id="nbFish52" layoutX="34.0" layoutY="157.0" text="0" /> </children> </AnchorPane> </center> -- GitLab