Skip to content
Snippets Groups Projects
Select Git revision
  • 9dda7b2f73f9ea08ecbfddc9d74c58c21a103783
  • master default protected
2 results

ExercicesConditionnelle.java

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Controller.java 2.05 KiB
    package controller;
    
    import javafx.fxml.FXML;
    import javafx.scene.control.Label;
    import javafx.scene.control.ToggleButton;
    import javafx.scene.control.ToggleGroup;
    import model.GameOfLife;
    import model.Grid;
    import view.MatrixPane;
    
    import static java.util.Objects.requireNonNull;
    
    /**
     * Controller for <i>The Game of Life</i> application.
     */
    public class Controller {
    
        @FXML
        private ToggleButton playToggleButton;
        @FXML
        private ToggleButton pauseToggleButton;
        @FXML
        private Label generationNumberLabel;
        @FXML
        private MatrixPane matrixPane;
    
        private GameOfLife gameOfLife;
    
        @FXML
        private void initialize() {
            initializePlayAndPauseToggleButtons();
        }
    
        private void initializePlayAndPauseToggleButtons() {
            ToggleGroup toggleGroup = new PersistentToggleGroup();
            toggleGroup.getToggles().addAll(playToggleButton, pauseToggleButton);
            pauseToggleButton.setSelected(true);
        }
    
    
        /**
         * Sets {@link GameOfLife} instance.
         *
         * @param gameOfLife {@link GameOfLife} instance
         * @throws NullPointerException if {@code gameOfLife} is {@code null}
         */
    
        public void setGameOfLife(GameOfLife gameOfLife) {
            this.gameOfLife = requireNonNull(gameOfLife, "game of life is null");
            setGenerationNumberLabelTextProperty();
            initializeMatrixPane();
        }
    
        private void setGenerationNumberLabelTextProperty() {
            generationNumberLabel.textProperty().bind(gameOfLife.generationNumberProperty().asString());
        }
    
        private void initializeMatrixPane() {
            Grid grid = gameOfLife.getGrid();
            matrixPane.initialize(grid);
        }
    
        @FXML
        private void playToggleButtonAction() {
            gameOfLife.play();
        }
    
        @FXML
        private void pauseToggleButtonAction() {
            gameOfLife.pause();
        }
    
        @FXML
        private void resetButtonAction() {
            gameOfLife.reset();
            pauseToggleButton.setSelected(true);
        }
    
        @FXML
        private void clearButtonAction() {
            gameOfLife.clear();
            pauseToggleButton.setSelected(true);
        }
    }