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