diff --git a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java index 186c949..9975190 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java +++ b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java @@ -62,28 +62,39 @@ public class Controller_Frontend { @FXML private Label intconLabel; - - - - @FXML private Button stepButton; - - @FXML private Button autoRunGUI; + @FXML + private Button stopButton; + private volatile boolean isAutoRunActive = true; + + + + @FXML + private void stopAutoRun(ActionEvent event) { + + isAutoRunActive = false; + } + + + @FXML private void autoRunGUI(ActionEvent event) { + if (!isAutoRunActive) { + isAutoRunActive = true; + } Thread autoRunThread = new Thread(() -> { try { - while (DataRegister.getPC() < prog.length) { + while (DataRegister.getPC() < prog.length && isAutoRunActive){ Platform.runLater(() -> { try { @@ -92,7 +103,7 @@ public class Controller_Frontend { e.printStackTrace(); } }); - Thread.sleep(200); // Millisekunden + Thread.sleep(200); //Verzögerungszeit in Millisekunden } } catch (InterruptedException e) { e.printStackTrace(); @@ -100,9 +111,12 @@ public class Controller_Frontend { }); autoRunThread.setDaemon(true); autoRunThread.start(); + } + + @FXML private void stepintoButton(ActionEvent event) throws IOException { if (lstContentListView.getItems().isEmpty()) { @@ -295,6 +309,7 @@ public class Controller_Frontend { lstContentListView.getStylesheets().add(Objects.requireNonNull(getClass().getResource("styles.css")).toExternalForm()); autoRunGUI.setOnAction(this::autoRunGUI); + stopButton.setOnAction(this::stopAutoRun); } private static void setTRISbuttons(ToggleButtonGroup[] allButtons) { diff --git a/src/main/java/fabrik/simulator/pic16f84/styles.css b/src/main/java/fabrik/simulator/pic16f84/styles.css index b49b6c8..e4d1fcd 100644 --- a/src/main/java/fabrik/simulator/pic16f84/styles.css +++ b/src/main/java/fabrik/simulator/pic16f84/styles.css @@ -1,4 +1,5 @@ .list-cell:selected { -fx-background-color: yellow; -} \ No newline at end of file +} + diff --git a/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml b/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml index 1a0ea2c..8842ca4 100644 --- a/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml +++ b/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml @@ -28,6 +28,7 @@