diff --git a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java index 587b4a2..1e4b6e4 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java +++ b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java @@ -94,28 +94,45 @@ public class Controller_Frontend extends PICComponent implements FrontendControl return isSleeping; } - public void stopRunFromBackend(String message){ + + //Refactoring + + public void stopRunFromBackend(String message) { isAutoRunActive = false; - if (isSleeping) + handleSleepOrReset(); + showStopDialog(message); + } + private void handleSleepOrReset() { + if (isSleeping) { wakeUpFromSleep(); - else + } else { dataRegister.resetPC(); + } + } + + private static void showStopDialog(String message) { Stage stoppedStage = new Stage(); stoppedStage.setTitle("Programm unterbrochen!"); + VBox vbox = new VBox(); vbox.setAlignment(javafx.geometry.Pos.CENTER); + Label grundlabel = new Label("Grund: " + message); grundlabel.setStyle("-fx-font-size: 16px; -fx-font-weight: bold;"); + Label ueberlabel = new Label("Programm unterbrochen!"); - vbox.getChildren().add(ueberlabel); - vbox.getChildren().add(grundlabel); + vbox.getChildren().addAll(ueberlabel, grundlabel); VBox.setMargin(grundlabel, new javafx.geometry.Insets(10, 10, 10, 10)); + Scene scene = new Scene(vbox, 300, 90); stoppedStage.setAlwaysOnTop(true); stoppedStage.setScene(scene); stoppedStage.show(); } + + //Refactoring Ende + public void sleep() { isSleeping = true; }