Refactor scene management.
Init totem choice scene
This commit is contained in:
@@ -1,61 +1,21 @@
|
||||
package it.polimi.ingsw.gc14;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.Network.RMI.Client.RMIClient;
|
||||
import it.polimi.ingsw.gc14.Network.TCP.Client.TCPClient;
|
||||
import it.polimi.ingsw.gc14.View.GUI.GUI;
|
||||
import it.polimi.ingsw.gc14.View.GUI.LoginView;
|
||||
import it.polimi.ingsw.gc14.View.IView;
|
||||
import javafx.application.Application;
|
||||
import javafx.application.Platform;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import static javafx.application.Application.launch;
|
||||
|
||||
public class ClientLauncherGUI extends Application {
|
||||
|
||||
@Override
|
||||
public void start(Stage stage) {
|
||||
LoginView loginView = new LoginView();
|
||||
public void start(Stage stage) throws Exception {
|
||||
GUI view = new GUI(stage);
|
||||
|
||||
ClientController controller = new ClientController(view);
|
||||
view.setController(controller);
|
||||
|
||||
loginView.getBtnAccedi().setOnAction(e -> {
|
||||
String nome = loginView.getNome();
|
||||
int numPlayer = loginView.getNumPlayers();
|
||||
int networkType = loginView.getNetworkType();
|
||||
String ip = loginView.getIP();
|
||||
|
||||
if (nome.isEmpty() || ip.isEmpty()) {
|
||||
loginView.setErrore("Compila tutti i campi.");
|
||||
return;
|
||||
}
|
||||
view.setUsername(nome);
|
||||
|
||||
// Connessione in un thread separato — non bloccare il JavaFX thread!
|
||||
new Thread(() -> {
|
||||
if (networkType == 0) {
|
||||
RMIClient client = new RMIClient(controller, ip, 1099, loginView.getInterfaccia());
|
||||
if (client.connect(nome, numPlayer)) {
|
||||
controller.setClient(client);
|
||||
// Da qui in poi il server chiamerà onGameInit → render()
|
||||
} else {
|
||||
Platform.runLater(() -> loginView.setErrore("Connessione RMI fallita."));
|
||||
}
|
||||
} else {
|
||||
TCPClient client = new TCPClient(controller, ip, 8080,8081);
|
||||
if (client.connect(nome, numPlayer)) {
|
||||
controller.setClient(client);
|
||||
} else {
|
||||
Platform.runLater(() -> loginView.setErrore("Connessione TCP fallita."));
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
});
|
||||
|
||||
stage.setTitle("Mesos");
|
||||
stage.setScene(loginView.getScene());
|
||||
stage.show();
|
||||
view.start(stage);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Reference in New Issue
Block a user