Add: slot, draw tribe functions implemented
This commit is contained in:
@@ -17,6 +17,7 @@ public class ClientLauncherGUI extends Application {
|
|||||||
GUI view = new GUI(stage);
|
GUI view = new GUI(stage);
|
||||||
|
|
||||||
ClientController controller = new ClientController(view);
|
ClientController controller = new ClientController(view);
|
||||||
|
view.setController(controller);
|
||||||
|
|
||||||
loginView.getBtnAccedi().setOnAction(e -> {
|
loginView.getBtnAccedi().setOnAction(e -> {
|
||||||
String nome = loginView.getNome();
|
String nome = loginView.getNome();
|
||||||
@@ -28,6 +29,7 @@ public class ClientLauncherGUI extends Application {
|
|||||||
loginView.setErrore("Compila tutti i campi.");
|
loginView.setErrore("Compila tutti i campi.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
view.setUsername(nome);
|
||||||
|
|
||||||
// Connessione in un thread separato — non bloccare il JavaFX thread!
|
// Connessione in un thread separato — non bloccare il JavaFX thread!
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ public class GUI implements IView { // stessa interfaccia che implementa TUI
|
|||||||
private final Stage stage;
|
private final Stage stage;
|
||||||
private final MainView mainView = new MainView();
|
private final MainView mainView = new MainView();
|
||||||
private Game model;
|
private Game model;
|
||||||
|
private ClientController controller;
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
public GUI(Stage stage) {
|
public GUI(Stage stage) {
|
||||||
@@ -21,7 +22,7 @@ public class GUI implements IView { // stessa interfaccia che implementa TUI
|
|||||||
@Override
|
@Override
|
||||||
public void setModel(Game model) {
|
public void setModel(Game model) {
|
||||||
this.model = model;
|
this.model = model;
|
||||||
mainView.setModel(model);
|
mainView.setModel(model, controller, username);
|
||||||
|
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
stage.setScene(mainView.getScene());
|
stage.setScene(mainView.getScene());
|
||||||
@@ -54,6 +55,8 @@ public class GUI implements IView { // stessa interfaccia che implementa TUI
|
|||||||
this.username=username;
|
this.username=username;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setController(ClientController controller) { this.controller = controller;}
|
||||||
|
|
||||||
// Getter per il launcher
|
// Getter per il launcher
|
||||||
public Stage getStage() { return stage; }
|
public Stage getStage() { return stage; }
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.polimi.ingsw.gc14.View.GUI;
|
package it.polimi.ingsw.gc14.View.GUI;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Game;
|
import it.polimi.ingsw.gc14.Model.Game;
|
||||||
import it.polimi.ingsw.gc14.Model.Player;
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
@@ -11,6 +12,7 @@ import javafx.scene.image.*;
|
|||||||
import javafx.scene.layout.*;
|
import javafx.scene.layout.*;
|
||||||
import javafx.scene.shape.*;
|
import javafx.scene.shape.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -25,63 +27,79 @@ public class MainFXMLController {
|
|||||||
@FXML private Button reload;
|
@FXML private Button reload;
|
||||||
|
|
||||||
private Game model;
|
private Game model;
|
||||||
|
private ClientController controller;
|
||||||
|
private String username;
|
||||||
|
|
||||||
public void setModel(Game model) {
|
public void setModel(Game model) {
|
||||||
this.model = model;
|
this.model = model;
|
||||||
}
|
}
|
||||||
|
public void setController(ClientController controller) {this.controller = controller;}
|
||||||
|
public void setUsername(String username) {this.username = username;}
|
||||||
|
|
||||||
public void render() {
|
public void render() {
|
||||||
Image placeholder = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-001.png"));
|
Image placeholder = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-001.png"));
|
||||||
|
|
||||||
|
// Upper list
|
||||||
upperList.setSpacing(6);
|
upperList.setSpacing(6);
|
||||||
upperList.setAlignment(Pos.CENTER);
|
upperList.setAlignment(Pos.CENTER);
|
||||||
upperList.getChildren().clear();
|
upperList.getChildren().clear();
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
for (TribeCard card : model.getUpperListTribeCards()) {
|
for (TribeCard card : model.getUpperListTribeCards()) {
|
||||||
|
final int index = i;
|
||||||
|
|
||||||
ImageView view = new ImageView(placeholder);
|
ImageView view = new ImageView(placeholder);
|
||||||
view.fitHeightProperty().bind(upperList.heightProperty().subtract(10));
|
view.fitHeightProperty().bind(upperList.heightProperty().subtract(10));
|
||||||
view.setPreserveRatio(true);
|
view.setPreserveRatio(true);
|
||||||
|
|
||||||
view.setOnMouseClicked(e -> System.out.println(card.toStringBoard()));
|
view.setOnMouseClicked(e -> controller.drawUpperTribeCard(username, index));
|
||||||
|
|
||||||
upperList.getChildren().add(view);
|
upperList.getChildren().add(view);
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Board
|
||||||
board.setSpacing(6);
|
board.setSpacing(6);
|
||||||
board.setAlignment(Pos.CENTER);
|
board.setAlignment(Pos.CENTER);
|
||||||
board.getChildren().clear();
|
board.getChildren().clear();
|
||||||
|
|
||||||
|
i = 0;
|
||||||
for (Map.Entry<Slot, Player> entry : model.getSlotMap().entrySet()) {
|
for (Map.Entry<Slot, Player> entry : model.getSlotMap().entrySet()) {
|
||||||
Slot slot = entry.getKey();
|
Slot slot = entry.getKey();
|
||||||
|
final int index = i;
|
||||||
|
|
||||||
Image slotImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-"+slot.getSlotId()+".png"));
|
Image slotImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-"+slot.getSlotId()+".png"));
|
||||||
ImageView view = new ImageView(slotImg);
|
ImageView view = new ImageView(slotImg);
|
||||||
|
|
||||||
view.fitHeightProperty().bind(board.heightProperty().subtract(10));
|
view.fitHeightProperty().bind(board.heightProperty().subtract(10));
|
||||||
view.setPreserveRatio(true);
|
view.setPreserveRatio(true);
|
||||||
|
|
||||||
//view.setOnMouseClicked(e -> System.out.println(card.toStringBoard()));
|
view.setOnMouseClicked(e -> controller.slotChoice(username, index));
|
||||||
|
|
||||||
board.getChildren().add(view);
|
board.getChildren().add(view);
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Lower list
|
||||||
lowerList.setSpacing(6);
|
lowerList.setSpacing(6);
|
||||||
lowerList.setAlignment(Pos.CENTER);
|
lowerList.setAlignment(Pos.CENTER);
|
||||||
lowerList.getChildren().clear();
|
lowerList.getChildren().clear();
|
||||||
|
|
||||||
lowerList.getChildren().clear();
|
i = 0;
|
||||||
for (TribeCard card : model.getLowerListTribeCards()) {
|
for (TribeCard card : model.getLowerListTribeCards()) {
|
||||||
|
final int index = i;
|
||||||
|
|
||||||
ImageView view = new ImageView(placeholder);
|
ImageView view = new ImageView(placeholder);
|
||||||
view.fitHeightProperty().bind(upperList.heightProperty().subtract(10));
|
view.fitHeightProperty().bind(lowerList.heightProperty().subtract(10));
|
||||||
view.setPreserveRatio(true);
|
view.setPreserveRatio(true);
|
||||||
|
|
||||||
view.setOnMouseClicked(e -> System.out.println(card.toStringBoard()));
|
view.setOnMouseClicked(e -> controller.drawLowerTribeCard(username, index));
|
||||||
|
|
||||||
lowerList.getChildren().add(view);
|
lowerList.getChildren().add(view);
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.polimi.ingsw.gc14.View.GUI;
|
package it.polimi.ingsw.gc14.View.GUI;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||||
import it.polimi.ingsw.gc14.Model.Game;
|
import it.polimi.ingsw.gc14.Model.Game;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
@@ -15,6 +16,8 @@ public class MainView {
|
|||||||
private final Scene scene;
|
private final Scene scene;
|
||||||
private final MainFXMLController fxmlController;
|
private final MainFXMLController fxmlController;
|
||||||
private Game model;
|
private Game model;
|
||||||
|
private ClientController controller;
|
||||||
|
private String username;
|
||||||
|
|
||||||
public MainView() {
|
public MainView() {
|
||||||
try {
|
try {
|
||||||
@@ -29,15 +32,17 @@ public class MainView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Scene getScene() { return scene; }
|
public Scene getScene() { return scene; }
|
||||||
public void setModel(Game model) {
|
public void setModel(Game model, ClientController controller, String username) {
|
||||||
this.model = model;
|
this.model = model;
|
||||||
fxmlController.setModel(model);
|
fxmlController.setModel(model);
|
||||||
|
this.controller = controller;
|
||||||
|
fxmlController.setController(controller);
|
||||||
|
this.username = username;
|
||||||
|
fxmlController.setUsername(username);
|
||||||
|
|
||||||
}
|
}
|
||||||
public void render() {
|
public void render() {
|
||||||
fxmlController.render();
|
fxmlController.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reload() {
|
|
||||||
render();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user