summaryrefslogtreecommitdiff
path: root/src/main/java/simulator/VSSimulatorFrame.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/simulator/VSSimulatorFrame.java')
-rw-r--r--src/main/java/simulator/VSSimulatorFrame.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/simulator/VSSimulatorFrame.java b/src/main/java/simulator/VSSimulatorFrame.java
index 3cf4e91..818bea9 100644
--- a/src/main/java/simulator/VSSimulatorFrame.java
+++ b/src/main/java/simulator/VSSimulatorFrame.java
@@ -504,6 +504,7 @@ public class VSSimulatorFrame extends VSFrame {
tabbedPane.addTab(prefs.getString("lang.simulator")
+ " " + simulator.getSimulatorNum(), simulator);
tabbedPane.setSelectedComponent(simulator);
+ currentSimulator = simulator;
if (simulators.size() == 1) {
menuEdit.setEnabled(true);
@@ -576,6 +577,9 @@ public class VSSimulatorFrame extends VSFrame {
* Starts the current simulator
*/
public void startCurrentSimulator() {
+ if (currentSimulator == null)
+ return;
+
VSMenuItemStates menuItemState =
currentSimulator.getMenuItemStates();
menuItemState.setStart(false);
@@ -587,6 +591,23 @@ public class VSSimulatorFrame extends VSFrame {
}
/**
+ * Opens the given simulator file and starts playback if load succeeds.
+ *
+ * @param filename the simulation file to open
+ *
+ * @return the loaded simulator, or null if loading failed
+ */
+ public VSSimulator openAndStartSimulator(String filename) {
+ VSSerialize serialize = new VSSerialize();
+ VSSimulator simulator = serialize.openSimulator(filename, this);
+
+ if (simulator != null)
+ startCurrentSimulator();
+
+ return simulator;
+ }
+
+ /**
* Pauses the current simulator
*/
public void pauseCurrentSimulator() {