WIP Totem
@@ -26,6 +26,8 @@ public class ClientController {
|
||||
/** Network client (either TCP or RMI) */
|
||||
private IClient client;
|
||||
|
||||
public String myUsername;
|
||||
|
||||
|
||||
/**
|
||||
* Constructs the ClientController.
|
||||
@@ -56,6 +58,10 @@ public class ClientController {
|
||||
view.setModel(miniModel);
|
||||
}
|
||||
|
||||
public void setMyUsername (String username) {
|
||||
this.myUsername=username;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Displays an error message in the view.
|
||||
|
||||
@@ -17,9 +17,18 @@ import static it.polimi.ingsw.gc14.Model.GamePackage.GameStages.TOTEM_CHOICE;
|
||||
|
||||
public class GUI extends Application implements IView {
|
||||
private Stage primaryStage;
|
||||
|
||||
FXMLLoader loaderLogin;
|
||||
Scene loginScene;
|
||||
LoginFXMLController controllerLogin;
|
||||
|
||||
FXMLLoader loaderTotem;
|
||||
Scene totemScene;
|
||||
TotemFXMLController controllerTotem;
|
||||
|
||||
FXMLLoader loaderMain;
|
||||
Scene mainScene;
|
||||
MainFXMLController controllerMain;
|
||||
|
||||
private ClientController controller;
|
||||
private MiniModel model;
|
||||
@@ -30,17 +39,23 @@ public class GUI extends Application implements IView {
|
||||
|
||||
@Override
|
||||
public void start(Stage stage) throws Exception {
|
||||
FXMLLoader loaderLogin = new FXMLLoader(getClass().getResource("/GUIScene/login.fxml"));
|
||||
loaderLogin = new FXMLLoader(getClass().getResource("/GUIScene/login.fxml"));
|
||||
loginScene = new Scene(loaderLogin.load());
|
||||
LoginFXMLController controllerLogin = loaderLogin.getController();
|
||||
controllerLogin = loaderLogin.getController();
|
||||
controllerLogin.setController(controller);
|
||||
|
||||
|
||||
|
||||
FXMLLoader loaderTotem = new FXMLLoader(getClass().getResource("/GUIScene/totem.fxml"));
|
||||
loaderTotem = new FXMLLoader(getClass().getResource("/GUIScene/totem.fxml"));
|
||||
totemScene = new Scene(loaderTotem.load());
|
||||
FXMLLoader loaderMain = new FXMLLoader(getClass().getResource("/GUIScene/main.fxml"));
|
||||
controllerTotem = loaderTotem.getController();
|
||||
controllerTotem.setController(controller);
|
||||
|
||||
|
||||
loaderMain = new FXMLLoader(getClass().getResource("/GUIScene/main.fxml"));
|
||||
mainScene = new Scene(loaderMain.load());
|
||||
controllerMain = loaderMain.getController();
|
||||
controllerMain.setController(controller);
|
||||
|
||||
showLogin();
|
||||
stage.setTitle("Mesos");
|
||||
@@ -64,6 +79,7 @@ public class GUI extends Application implements IView {
|
||||
public void render() {
|
||||
if(controller.miniModel.currentState.getGameStage()==TOTEM_CHOICE) {
|
||||
Platform.runLater(() -> {
|
||||
controllerTotem.render();
|
||||
primaryStage.setScene(totemScene);
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -65,6 +65,7 @@ public class LoginFXMLController {
|
||||
@FXML
|
||||
private void onAccediClick() {
|
||||
String nome = campoNome.getText().trim();
|
||||
controller.setMyUsername(nome);
|
||||
String ip = campoIP.getText().trim();
|
||||
int numPlayers;
|
||||
try {
|
||||
@@ -88,7 +89,6 @@ public class LoginFXMLController {
|
||||
RMIClient client = new RMIClient(controller, ip, 1099, interfaccia);
|
||||
if (client.connect(nome, numPlayers)) {
|
||||
controller.setClient(client);
|
||||
// Da qui il server chiamerà gui.render() → cambio scena
|
||||
} else {
|
||||
Platform.runLater(() -> labelErrore.setText("Connessione RMI fallita."));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package it.polimi.ingsw.gc14.View.GUI;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.Controller.GameController;
|
||||
import it.polimi.ingsw.gc14.Model.Totems;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.HBox;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class TotemFXMLController {
|
||||
@FXML private HBox mainHBox;
|
||||
|
||||
private ClientController controller;
|
||||
|
||||
public void setController(ClientController controller) {
|
||||
this.controller=controller;
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void initialize() {
|
||||
|
||||
}
|
||||
|
||||
public void render() {
|
||||
for (Totems totem : controller.miniModel.availableTotems) {
|
||||
ImageView img = new ImageView(new Image(getClass().getResourceAsStream("/GUIImages/Totems/totem_"+ String.valueOf(totem).toLowerCase(Locale.ROOT) +".png")));
|
||||
img.setFitHeight(240);
|
||||
img.setPreserveRatio(true);
|
||||
img.setOnMouseClicked(e -> controller.totemChoice(controller.myUsername));
|
||||
mainHBox.getChildren().add(img);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -1,11 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.text.Text?>
|
||||
|
||||
|
||||
<HBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/26" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<children>
|
||||
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" wrappingWidth="295.0152587890625" />
|
||||
</children>
|
||||
<HBox fx:id="mainHBox" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/26" xmlns:fx="http://javafx.com/fxml/1" fx:controller="it.polimi.ingsw.gc14.View.GUI.TotemFXMLController">
|
||||
</HBox>
|
||||
|
||||