]> git.gag.com Git - debian/openrocket/blobdiff - core/src/net/sf/openrocket/file/openrocket/OpenRocketLoader.java
Refactor the Query & Download thread and progress management out of TCQueryActivity...
[debian/openrocket] / core / src / net / sf / openrocket / file / openrocket / OpenRocketLoader.java
index c4fc7d7376a0ccadd767483e84f31165f26dbd89..f8d6bed5e3f315af7a51fd90821bae0f6b24c09f 100644 (file)
@@ -23,8 +23,6 @@ import net.sf.openrocket.file.simplesax.SimpleSAX;
 import net.sf.openrocket.logging.LogHelper;
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.motor.Motor;
-import net.sf.openrocket.motor.MotorDigest;
-import net.sf.openrocket.motor.ThrustCurveMotor;
 import net.sf.openrocket.rocketcomponent.BodyComponent;
 import net.sf.openrocket.rocketcomponent.BodyTube;
 import net.sf.openrocket.rocketcomponent.Bulkhead;
@@ -1004,18 +1002,21 @@ class MotorHandler extends ElementHandler {
                
                // No motors
                if (motors.size() == 0) {
-                       String str = "No motor with designation '" + designation + "'";
-                       if (manufacturer != null)
-                               str += " for manufacturer '" + manufacturer + "'";
-                       str += " found.";
-                       warnings.add(str);
+                       Warning.MissingMotor mmw = new Warning.MissingMotor();
+                       mmw.setDesignation(designation);
+                       mmw.setDigest(digest);
+                       mmw.setDiameter(diameter);
+                       mmw.setLength(length);
+                       mmw.setManufacturer(manufacturer);
+                       mmw.setType(type);
+                       warnings.add(mmw);
                        return null;
                }
                
                // One motor
                if (motors.size() == 1) {
                        Motor m = motors.get(0);
-                       if (digest != null && !MotorDigest.digestMotor(m).equals(digest)) {
+                       if (digest != null && !digest.equals(m.getDigest())) {
                                String str = "Motor with designation '" + designation + "'";
                                if (manufacturer != null)
                                        str += " for manufacturer '" + manufacturer + "'";
@@ -1030,7 +1031,7 @@ class MotorHandler extends ElementHandler {
                        
                        // Check for motor with correct digest
                        for (Motor m : motors) {
-                               if (MotorDigest.digestMotor(m).equals(digest)) {
+                               if (digest.equals(m.getDigest())) {
                                        return m;
                                }
                        }
@@ -1045,7 +1046,7 @@ class MotorHandler extends ElementHandler {
                        // No digest, check for preferred digest (OpenRocket <= 1.1.0)
                        // TODO: MEDIUM: This should only be done for document versions 1.1 and below
                        for (Motor m : motors) {
-                               if (PreferredMotorDigests.DIGESTS.contains(MotorDigest.digestMotor(m))) {
+                               if (PreferredMotorDigests.DIGESTS.contains(m.getDigest())) {
                                        return m;
                                }
                        }
@@ -1519,6 +1520,8 @@ class FlightDataHandler extends ElementHandler {
                        double timeToApogee = Double.NaN;
                        double flightTime = Double.NaN;
                        double groundHitVelocity = Double.NaN;
+                       double launchRodVelocity = Double.NaN;
+                       double deploymentVelocity = Double.NaN;
                        
                        try {
                                maxAltitude = DocumentConfig.stringToDouble(attributes.get("maxaltitude"));
@@ -1549,10 +1552,17 @@ class FlightDataHandler extends ElementHandler {
                                                DocumentConfig.stringToDouble(attributes.get("groundhitvelocity"));
                        } catch (NumberFormatException ignore) {
                        }
+                       try {
+                               launchRodVelocity = DocumentConfig.stringToDouble(attributes.get("launchrodvelocity"));
+                       } catch (NumberFormatException ignore) {
+                       }
+                       try {
+                               deploymentVelocity = DocumentConfig.stringToDouble(attributes.get("deploymentvelocity"));
+                       } catch (NumberFormatException ignore) {
+                       }
                        
-                       // TODO: HIGH: Store and load launchRodVelocity
                        data = new FlightData(maxAltitude, maxVelocity, maxAcceleration, maxMach,
-                                       timeToApogee, flightTime, groundHitVelocity, Double.NaN);
+                                       timeToApogee, flightTime, groundHitVelocity, launchRodVelocity, deploymentVelocity);
                }
                
                data.getWarningSet().addAll(warningSet);