diff --git a/src/main/java/client/main/controller/FXCreateGame.java b/src/main/java/client/main/controller/FXCreateGame.java index 45c503ee11519f5de06fc113e8ea92d7a635372f..96f8174c40cc78cb7cbc0a039c6d0d8d3872d85e 100644 --- a/src/main/java/client/main/controller/FXCreateGame.java +++ b/src/main/java/client/main/controller/FXCreateGame.java @@ -1,5 +1,15 @@ package main.java.client.main.controller; +import javafx.fxml.Initializable; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.TextField; +import main.java.client.ClientApp; +import main.java.client.main.model.MainApplicationModel; +import main.java.common.dataModel.UserLight; +import javafx.fxml.FXML; + +import javafx.scene.paint.Color; import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; @@ -22,6 +32,132 @@ import main.java.client.main.model.MainApplicationModel; import main.java.common.dataModel.UserLight; public class FXCreateGame implements Initializable { +<<<<<<< src/main/java/client/main/controller/FXCreateGame.java + private MainApplicationModel model; + private Stage stage; + + + @FXML + protected ComboBox spectatorsCombo = new ComboBox(); + + @FXML + private ComboBox chatCombo; + + @FXML + protected ComboBox colorCombo = new ComboBox(); + + @FXML + private TextField createGameTextFieldLimitMove; + + @FXML + private Text errorFields; + + @FXML + private Text errorFieldsInteger; + + + public FXCreateGame(){ + this.model = ClientApp.mainCore.getFX().getModel(); + stage = new Stage(); + } + + public void setStage(Stage stage){ + this.stage = stage; + } + + public void initialize(URL fxmlFileLocation, ResourceBundle resources) { + + errorFields.setVisible(false); + errorFields.setFill(Color.RED); + + errorFieldsInteger.setVisible(false); + errorFieldsInteger.setFill(Color.RED); + + chatCombo.getItems().setAll("Oui", "Non"); + chatCombo.getSelectionModel().selectedItemProperty().addListener( + new ChangeListener() { + @Override + public void changed(ObservableValue selected, // + String oldValue, String newValue) { + System.out.println(newValue); + } + } + ); + + spectatorsCombo.getItems().setAll("Oui", "Non"); + spectatorsCombo.getSelectionModel().selectedItemProperty().addListener( + new ChangeListener() { + @Override + public void changed(ObservableValue selected, // + String oldValue, String newValue) { + System.out.println(newValue); + } + } + ); + + colorCombo.getItems().setAll("Blanc", "Noir"); + colorCombo.getSelectionModel().selectedItemProperty().addListener( + new ChangeListener() { + @Override + public void changed(ObservableValue selected, // + String oldValue, String newValue) { + System.out.println(newValue); + } + } + ); + + } + + @FXML + private void handleButtonClick(MouseEvent e) throws IOException { + String buttonSource = ((Button) e.getSource()).getId(); + switch(buttonSource){ + case "createGameButtonValidate": + createGame(); + break; + case "createGameButtonClose": + this.stage = (Stage)((Node)e.getSource()).getScene().getWindow(); + FXHome fxHome = new FXHome(); + fxHome.initialize("../fxml/home.fxml", this.stage); + break; + default: + System.out.println("["+buttonSource+"] A handler button was triggered, but no action was performed."); + } + } + + + private void createGame() throws IOException { + + UserLight userLight = this.model.getUserLight(); + + try { + Boolean chat = this.chatCombo.getValue().equals("Oui") ? true : false; + Boolean spectators = this.spectatorsCombo.getValue().equals("Oui") ? true : false; + Boolean colorWhite = this.colorCombo.getValue().equals("Blanc") ? true : false; + int limitMove = Integer.parseInt(this.createGameTextFieldLimitMove.getText()); + + + BorderPane layout = FXMLLoader.load( + new URL(main.java.client.main.controller.FXHome.class.getResource("../fxml/createGame.fxml").toExternalForm()) + ); + + Scene scene = new Scene(layout, ClientApp.APPLICATION_WIDTH, ClientApp.APPLICATION_HEIGHT); + scene.getStylesheets().add(ClientApp.CSS_FILE_PATH); + + System.out.println(chat + " " + spectators + " " + colorWhite + " " + limitMove); + ClientApp.mainCore.getMainToData().newGame(userLight, spectators, chat, colorWhite, limitMove, scene); + } catch (NumberFormatException e) { + errorFieldsInteger.setVisible(true); + } catch (Exception e) { + if (this.chatCombo.getValue() == null || this.spectatorsCombo.getValue() == null || this.colorCombo.getValue() == null || this.createGameTextFieldLimitMove.getText().trim().isEmpty()){ + errorFields.setVisible(true); + } else { + System.out.println(e); + } + } + + } +======= private MainApplicationModel model; private Stage stage; @@ -111,5 +247,6 @@ public class FXCreateGame implements Initializable { } } +>>>>>>> src/main/java/client/main/controller/FXCreateGame.java } diff --git a/src/main/java/client/main/controller/FXHome.java b/src/main/java/client/main/controller/FXHome.java index a4076895b9bb15da5a7729c906078f2be3ed18e3..54dd24f983f54089392af89007e55b3c9463d685 100644 --- a/src/main/java/client/main/controller/FXHome.java +++ b/src/main/java/client/main/controller/FXHome.java @@ -1,7 +1,13 @@ package main.java.client.main.controller; + +import javafx.scene.Node; +import javafx.scene.Parent; +import javafx.scene.layout.Border; + import javafx.collections.FXCollections; import javafx.collections.ObservableList; + import main.java.client.ClientApp; import main.java.client.main.model.MainApplicationModel; import main.java.common.dataModel.UserLight; @@ -105,11 +111,11 @@ public class FXHome { this.stage.setScene(new Scene(layout)); break; case "homeButtonCreateGame": - BorderPane layout = FXMLLoader.load( - new URL(FXHome.class.getResource("../fxml/createGame.fxml").toExternalForm()) - ); - stage.setScene(new Scene(layout)); - stage.show(); + FXMLLoader loader = new FXMLLoader(getClass().getResource("../fxml/createGame.fxml")); + Parent padre = loader.load(); + Scene switcher = new Scene(padre); + this.stage = (Stage)((Node)e.getSource()).getScene().getWindow(); + this.stage.setScene(switcher); break; case "homeDeconnection": FXConnection fxConnection = new FXConnection(); diff --git a/src/main/java/client/main/fxml/createGame.fxml b/src/main/java/client/main/fxml/createGame.fxml index 1c48a3cabc5399deedf8e15ee24bf19320c1485e..e805516a12779cdbe71bfd213fe4e7d777855e20 100644 --- a/src/main/java/client/main/fxml/createGame.fxml +++ b/src/main/java/client/main/fxml/createGame.fxml @@ -7,11 +7,8 @@ - - - @@ -57,6 +54,7 @@ +