summaryrefslogtreecommitdiff
path: root/sources/simulator/VSSimulatorFrame.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/simulator/VSSimulatorFrame.java')
-rw-r--r--sources/simulator/VSSimulatorFrame.java45
1 files changed, 33 insertions, 12 deletions
diff --git a/sources/simulator/VSSimulatorFrame.java b/sources/simulator/VSSimulatorFrame.java
index 1fb5cab..caf06cb 100644
--- a/sources/simulator/VSSimulatorFrame.java
+++ b/sources/simulator/VSSimulatorFrame.java
@@ -149,21 +149,35 @@ public class VSSimulatorFrame extends VSFrame {
} else if (sourceText.equals(
finalPrefs.getString("lang.save"))) {
+ VSSimulatorCanvas simulatorCanvas =
+ currentSimulator.getSimulatorCanvas();
+ boolean flag = !simulatorCanvas.isPaused()
+ && !simulatorCanvas.hasFinished();
+
+ if (flag)
+ pauseCurrentSimulator();
- pauseCurrentSimulator();
- resetCurrentSimulator();
VSSerialize serialize = new VSSerialize();
serialize.saveSimulator(VSSerialize.LAST_FILENAME,
currentSimulator);
+ if (flag)
+ startCurrentSimulator();
} else if (sourceText.equals(
finalPrefs.getString("lang.saveas"))) {
+ VSSimulatorCanvas simulatorCanvas =
+ currentSimulator.getSimulatorCanvas();
+ boolean flag = !simulatorCanvas.isPaused()
+ && !simulatorCanvas.hasFinished();
+ if (flag)
+ pauseCurrentSimulator();
- pauseCurrentSimulator();
- resetCurrentSimulator();
VSSerialize serialize = new VSSerialize();
serialize.saveSimulator(currentSimulator);
+ if (flag)
+ startCurrentSimulator();
+
} else if (sourceText.equals(
finalPrefs.getString("lang.about"))) {
new VSAbout(finalPrefs, VSSimulatorFrame.this);
@@ -174,14 +188,7 @@ public class VSSimulatorFrame extends VSFrame {
} else if (sourceText.equals(
finalPrefs.getString("lang.start"))) {
- VSMenuItemStates menuItemState =
- currentSimulator.getMenuItemStates();
- menuItemState.setStart(false);
- menuItemState.setPause(true);
- menuItemState.setReset(false);
- menuItemState.setReplay(true);
- currentSimulator.getSimulatorCanvas().play();
- updateSimulatorMenu();
+ startCurrentSimulator();
} else if (sourceText.equals(
finalPrefs.getString("lang.pause"))) {
@@ -537,6 +544,20 @@ public class VSSimulatorFrame extends VSFrame {
}
/**
+ * Starts the current simulator
+ */
+ public void startCurrentSimulator() {
+ VSMenuItemStates menuItemState =
+ currentSimulator.getMenuItemStates();
+ menuItemState.setStart(false);
+ menuItemState.setPause(true);
+ menuItemState.setReset(false);
+ menuItemState.setReplay(true);
+ currentSimulator.getSimulatorCanvas().play();
+ updateSimulatorMenu();
+ }
+
+ /**
* Pauses the current simulator
*/
public void pauseCurrentSimulator() {