diff --git a/core/src/net/sf/openrocket/document/Simulation.java b/core/src/net/sf/openrocket/document/Simulation.java index a695a1165..75f6cf0b2 100644 --- a/core/src/net/sf/openrocket/document/Simulation.java +++ b/core/src/net/sf/openrocket/document/Simulation.java @@ -146,40 +146,22 @@ public class Simulation implements ChangeSource, Cloneable { if (options == null) throw new IllegalArgumentException("options cannot be null"); - this.document = document; this.rocket = rocket; - - if (status == Status.UPTODATE) { - this.status = Status.LOADED; - } else if (data == null) { - this.status = Status.NOT_SIMULATED; - } else { - this.status = status; - } - this.name = name; - + this.status = status; + this.simulatedConditions = options.clone(); + this.simulatedData = data; + this.document = document; + addChangeListener(this.document); + this.options = options; - + this.options.addChangeListener(new ConditionListener()); + final FlightConfiguration config = rocket.getSelectedConfiguration(); this.setFlightConfigurationId(config.getFlightConfigurationID()); - - options.addChangeListener(new ConditionListener()); - addChangeListener(document); - - if (extensions != null) { - this.simulationExtensions.addAll(extensions); - } - - - if (data != null && this.status != Status.NOT_SIMULATED) { - simulatedData = data; - if (this.status == Status.LOADED) { - simulatedConditions = options.clone(); - simulatedConfigurationID = config.getModID(); - } - } - + this.simulatedConfigurationID = config.getModID(); + + this.simulationExtensions.addAll(extensions); } public FlightConfiguration getActiveConfiguration() { diff --git a/core/src/net/sf/openrocket/file/openrocket/importt/SingleSimulationHandler.java b/core/src/net/sf/openrocket/file/openrocket/importt/SingleSimulationHandler.java index 6483e09bc..629d3be25 100644 --- a/core/src/net/sf/openrocket/file/openrocket/importt/SingleSimulationHandler.java +++ b/core/src/net/sf/openrocket/file/openrocket/importt/SingleSimulationHandler.java @@ -109,13 +109,6 @@ class SingleSimulationHandler extends AbstractElementHandler { public void endHandler(String element, HashMap attributes, String content, WarningSet warnings) { - String s = attributes.get("status"); - Simulation.Status status = (Status) DocumentConfig.findEnum(s, Simulation.Status.class); - if (status == null) { - warnings.add("Simulation status unknown, assuming outdated."); - status = Simulation.Status.OUTDATED; - } - SimulationOptions options; FlightConfigurationId idToSet= FlightConfigurationId.ERROR_FCID; if (conditionHandler != null) { @@ -126,16 +119,23 @@ class SingleSimulationHandler extends AbstractElementHandler { options = new SimulationOptions(); } - if (name == null) + if (name == null) name = "Simulation"; + // If the simulation was saved with flight data (which may just be a summary) + // mark it as loaded from the file else as not simulated. We're ignoring the + // simulation status attribute, since (1) it really isn't relevant now, and (2) + // sim summaries are getting marked as not simulated when they're saved FlightData data; if (dataHandler == null) data = null; else data = dataHandler.getFlightData(); - if (data == null) { + Simulation.Status status; + if (data != null) { + status = Status.LOADED; + } else { status = Status.NOT_SIMULATED; } @@ -153,4 +153,4 @@ class SingleSimulationHandler extends AbstractElementHandler { return extension; } -} \ No newline at end of file +}