Skip to content
Snippets Groups Projects
Commit 25bde60d authored by LABOUREL Arnaud's avatar LABOUREL Arnaud
Browse files

update javafx

parent 9812d266
Branches main
No related tags found
No related merge requests found
Pipeline #21218 passed
...@@ -13,9 +13,12 @@ repositories { ...@@ -13,9 +13,12 @@ repositories {
} }
dependencies { dependencies {
testImplementation('org.junit.jupiter:junit-jupiter-api:5.10.0', testRuntimeOnly("org.junit.platform:junit-platform-launcher") {
'org.assertj:assertj-core:3.24.2') because("Only needed to run tests in a version of IntelliJ IDEA that bundles older versions")
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' }
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testImplementation("org.assertj:assertj-core:3.24.2")
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
} }
test { test {
...@@ -23,5 +26,5 @@ test { ...@@ -23,5 +26,5 @@ test {
} }
application { application {
mainClassName = "GameOfLifeApplication" mainClass.set("GameOfLifeApplication")
} }
\ No newline at end of file
package controller; package controller;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ToggleButton; import javafx.scene.control.ToggleButton;
import javafx.scene.control.ToggleGroup; import javafx.scene.control.ToggleGroup;
...@@ -15,6 +16,10 @@ import static java.util.Objects.requireNonNull; ...@@ -15,6 +16,10 @@ import static java.util.Objects.requireNonNull;
*/ */
public class Controller { public class Controller {
@FXML
public Button clearButton;
@FXML
public Button resetButton;
@FXML @FXML
private ToggleButton playToggleButton; private ToggleButton playToggleButton;
@FXML @FXML
......
...@@ -17,10 +17,8 @@ import static java.util.Objects.requireNonNull; ...@@ -17,10 +17,8 @@ import static java.util.Objects.requireNonNull;
* {@link GameOfLife} instances run <i>The Game of Life</i>. * {@link GameOfLife} instances run <i>The Game of Life</i>.
*/ */
public class GameOfLife { public class GameOfLife {
private final Random random = new Random(); private final Random random = new Random();
private static final int PERIOD_IN_MILLISECONDS = 100; private static final int PERIOD_IN_MILLISECONDS = 100;
private final Grid grid; private final Grid grid;
private final ReadOnlyLongWrapper generationNumber = new ReadOnlyLongWrapper(); private final ReadOnlyLongWrapper generationNumber = new ReadOnlyLongWrapper();
private Timeline timeline; private Timeline timeline;
......
...@@ -15,13 +15,11 @@ public class FillingMouseListener implements MouseListener { ...@@ -15,13 +15,11 @@ public class FillingMouseListener implements MouseListener {
@Override @Override
public void onMouseReleased(MouseEvent event, Cell cell) { public void onMouseReleased(MouseEvent event, Cell cell) {
System.out.println("Filling Release");
this.matrix.resetWaitingListener(); this.matrix.resetWaitingListener();
} }
@Override @Override
public void onMouseEntered(MouseEvent event, Cell cell) { public void onMouseEntered(MouseEvent event, Cell cell) {
System.out.println("Filling Enter");
if (!event.isPrimaryButtonDown()) { if (!event.isPrimaryButtonDown()) {
this.matrix.resetWaitingListener(); this.matrix.resetWaitingListener();
return; return;
...@@ -33,7 +31,6 @@ public class FillingMouseListener implements MouseListener { ...@@ -33,7 +31,6 @@ public class FillingMouseListener implements MouseListener {
@Override @Override
public void onMousePressed(MouseEvent event, Cell cell) { public void onMousePressed(MouseEvent event, Cell cell) {
System.out.println("Filling Pressed");
cell.toggleState(); cell.toggleState();
CellState state = cell.getState(); CellState state = cell.getState();
this.matrix.setMouseListener(new FillingMouseListener(this.matrix, state)); this.matrix.setMouseListener(new FillingMouseListener(this.matrix, state));
......
...@@ -46,10 +46,7 @@ public class MatrixPane extends GridPane{ ...@@ -46,10 +46,7 @@ public class MatrixPane extends GridPane{
); );
cellRectangle.addEventHandler( cellRectangle.addEventHandler(
MouseEvent.DRAG_DETECTED, MouseEvent.DRAG_DETECTED,
event -> { event -> this.startFullDrag()
System.out.println("Full drag start");
this.startFullDrag();
}
); );
cellRectangle.addEventHandler( cellRectangle.addEventHandler(
MouseDragEvent.MOUSE_DRAG_RELEASED, MouseDragEvent.MOUSE_DRAG_RELEASED,
...@@ -64,12 +61,10 @@ public class MatrixPane extends GridPane{ ...@@ -64,12 +61,10 @@ public class MatrixPane extends GridPane{
private MouseListener mouseListener = new WaitingMouseListener(this); private MouseListener mouseListener = new WaitingMouseListener(this);
void setMouseListener(MouseListener mouseListener) { void setMouseListener(MouseListener mouseListener) {
System.out.println("Change listener");
this.mouseListener = mouseListener; this.mouseListener = mouseListener;
} }
void resetWaitingListener() { void resetWaitingListener() {
System.out.println("Reset listener");
this.mouseListener = new WaitingMouseListener(this); this.mouseListener = new WaitingMouseListener(this);
} }
} }
package view; package view;
import javafx.event.EventType;
import javafx.scene.input.MouseEvent; import javafx.scene.input.MouseEvent;
import model.Cell; import model.Cell;
...@@ -8,6 +7,6 @@ interface MouseListener { ...@@ -8,6 +7,6 @@ interface MouseListener {
default void onMousePressed(MouseEvent event, Cell cell) {} default void onMousePressed(MouseEvent event, Cell cell) {}
default void onMouseReleased(MouseEvent event, Cell cell) {} default void onMouseReleased(MouseEvent event, Cell cell) {}
default void onMouseEntered(MouseEvent event, Cell cell) {}; default void onMouseEntered(MouseEvent event, Cell cell) {}
} }
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
<?import javafx.scene.control.Separator?> <?import javafx.scene.control.Separator?>
<?import javafx.scene.control.ToggleButton?> <?import javafx.scene.control.ToggleButton?>
<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.HBox?>
<?import view.MatrixPane?> <?import view.MatrixPane?>
...@@ -17,11 +16,9 @@ ...@@ -17,11 +16,9 @@
<padding> <padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/> <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
</padding> </padding>
<children>
<HBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" <HBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0"
prefWidth="980.0" spacing="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" prefWidth="980.0" spacing="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
AnchorPane.topAnchor="0.0"> AnchorPane.topAnchor="0.0">
<children>
<Separator maxHeight="-Infinity" maxWidth="-Infinity" orientation="VERTICAL" <Separator maxHeight="-Infinity" maxWidth="-Infinity" orientation="VERTICAL"
prefHeight="24.0" prefWidth="6.0"/> prefHeight="24.0" prefWidth="6.0"/>
<ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity" <ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
...@@ -46,11 +43,9 @@ ...@@ -46,11 +43,9 @@
maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="99.0"/> maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="99.0"/>
<Separator maxHeight="-Infinity" maxWidth="-Infinity" orientation="VERTICAL" <Separator maxHeight="-Infinity" maxWidth="-Infinity" orientation="VERTICAL"
prefHeight="24.0" prefWidth="6.0"/> prefHeight="24.0" prefWidth="6.0"/>
</children>
</HBox> </HBox>
<MatrixPane fx:id="matrixPane" alignment="CENTER" hgap="1.0" <MatrixPane fx:id="matrixPane" alignment="CENTER" hgap="1.0"
maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="600.0" prefWidth="980.0" vgap="1.0" maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="600.0" prefWidth="980.0" vgap="1.0"
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
AnchorPane.topAnchor="35.0"/> AnchorPane.topAnchor="35.0"/>
</children>
</AnchorPane> </AnchorPane>
package model; package model;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
...@@ -14,6 +15,7 @@ public class GridTest { ...@@ -14,6 +15,7 @@ public class GridTest {
} }
@Test @Test
@Disabled
public void testGetNeighbours() { public void testGetNeighbours() {
assertThat(grid.getNeighbors(1, 1)).isNotNull(); assertThat(grid.getNeighbors(1, 1)).isNotNull();
assertThat(grid.getNeighbors(1, 1)).hasSize(8); assertThat(grid.getNeighbors(1, 1)).hasSize(8);
...@@ -29,6 +31,7 @@ public class GridTest { ...@@ -29,6 +31,7 @@ public class GridTest {
} }
@Test @Test
@Disabled
public void testCountAliveNeighbours() { public void testCountAliveNeighbours() {
assertThat(grid.countAliveNeighbors(1, 1)).isEqualTo(0); assertThat(grid.countAliveNeighbors(1, 1)).isEqualTo(0);
grid.getCell(2, 2).setState(CellState.ALIVE); grid.getCell(2, 2).setState(CellState.ALIVE);
...@@ -37,6 +40,7 @@ public class GridTest { ...@@ -37,6 +40,7 @@ public class GridTest {
} }
@Test @Test
@Disabled
public void testCalculateNextState() { public void testCalculateNextState() {
grid.getCell(1, 0).setState(CellState.ALIVE); grid.getCell(1, 0).setState(CellState.ALIVE);
grid.getCell(1, 1).setState(CellState.ALIVE); grid.getCell(1, 1).setState(CellState.ALIVE);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment