From ce9f1e387a7140baa3d72a90b04d97b8017fd8ca Mon Sep 17 00:00:00 2001 From: hneemann Date: Thu, 18 Jul 2019 07:26:53 +0200 Subject: [PATCH] disables "Start Tests" action if model is running. See #284 --- .../java/de/neemann/digital/gui/Main.java | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java index 733a74c4d..b9660339e 100644 --- a/src/main/java/de/neemann/digital/gui/Main.java +++ b/src/main/java/de/neemann/digital/gui/Main.java @@ -134,6 +134,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS private ToolTipAction runToBreakAction; private ToolTipAction showMeasurementDialog; private ToolTipAction showMeasurementGraph; + private ToolTipAction runTests; private File baseFilename; private File filename; @@ -978,7 +979,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS .setToolTip(Lang.get("menu_element_tt")) .setEnabledChain(false); - ToolTipAction runTests = new ToolTipAction(Lang.get("menu_runTests"), ICON_TEST) { + runTests = new ToolTipAction(Lang.get("menu_runTests"), ICON_TEST) { @Override public void actionPerformed(ActionEvent e) { startTests(); @@ -1230,6 +1231,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS showMeasurementDialog.setEnabled(false); showMeasurementGraph.setEnabled(false); runToBreakAction.setEnabled(false); + runTests.setEnabled(true); // keep errors if (circuitComponent.getHighLightStyle() != Style.ERROR) circuitComponent.removeHighLighted(); @@ -1244,6 +1246,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS showMeasurementDialog.setEnabled(true); showMeasurementGraph.setEnabled(true); stoppedState.getAction().setEnabled(true); + runTests.setEnabled(false); if (createAndStartModel(false, ModelEvent.MICROSTEP, null)) circuitComponent.setManualChangeObserver(new MicroStepObserver(model)); } @@ -1251,6 +1254,23 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS stateManager.setActualState(stoppedState); } + private class RunModelState extends State { + @Override + public void enter() { + enter(true, null); + } + + void enter(boolean runRealTime, ModelModifier modelModifier) { + super.enter(); + stoppedState.getAction().setEnabled(true); + showMeasurementDialog.setEnabled(true); + showMeasurementGraph.setEnabled(true); + runTests.setEnabled(false); + if (createAndStartModel(runRealTime, ModelEvent.STEP, modelModifier)) + circuitComponent.setManualChangeObserver(new FullStepObserver(model)); + } + } + private void clearModelDescription() { if (model != null) model.access(() -> model.close()); @@ -1671,23 +1691,6 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS } } - - private class RunModelState extends State { - @Override - public void enter() { - enter(true, null); - } - - void enter(boolean runRealTime, ModelModifier modelModifier) { - super.enter(); - stoppedState.getAction().setEnabled(true); - showMeasurementDialog.setEnabled(true); - showMeasurementGraph.setEnabled(true); - if (createAndStartModel(runRealTime, ModelEvent.STEP, modelModifier)) - circuitComponent.setManualChangeObserver(new FullStepObserver(model)); - } - } - //*********************** // remote interface start //***********************