Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / src / net / sf / openrocket / rocketcomponent / Streamer.java
index 8d73c45718b009a44c80aa5314c0314a19de3833..058392e93e0b56c457c46a06251384dfe3052cca 100644 (file)
@@ -1,5 +1,9 @@
 package net.sf.openrocket.rocketcomponent;
 
+import net.sf.openrocket.l10n.Translator;
+import net.sf.openrocket.preset.ComponentPreset;
+import net.sf.openrocket.preset.ComponentPreset.Type;
+import net.sf.openrocket.startup.Application;
 import net.sf.openrocket.util.MathUtil;
 
 public class Streamer extends RecoveryDevice {
@@ -8,6 +12,7 @@ public class Streamer extends RecoveryDevice {
        
        public static final double MAX_COMPUTED_CD = 0.4;
        
+       private static final Translator trans = Application.getTranslator();
 
        private double stripLength;
        private double stripWidth;
@@ -27,6 +32,7 @@ public class Streamer extends RecoveryDevice {
                if (MathUtil.equals(this.stripLength, stripLength))
                        return;
                this.stripLength = stripLength;
+               clearPreset();
                fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
        }
        
@@ -39,6 +45,7 @@ public class Streamer extends RecoveryDevice {
                        return;
                this.stripWidth = stripWidth;
                this.length = stripWidth;
+               clearPreset();
                fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
        }
        
@@ -83,6 +90,27 @@ public class Streamer extends RecoveryDevice {
        
        
 
+       @Override
+       public Type getPresetType() {
+               return ComponentPreset.Type.STREAMER;
+       }
+
+
+       @Override
+       protected void loadFromPreset(ComponentPreset preset) {
+               if ( preset.has(ComponentPreset.LENGTH)) {
+                       this.stripLength = preset.get(ComponentPreset.LENGTH);
+               }
+               if ( preset.has(ComponentPreset.WIDTH)) {
+                       this.stripWidth = preset.get(ComponentPreset.WIDTH);
+               }
+               super.loadFromPreset(preset);
+               // Fix the length to the stripWidth since RocketComponent assigns ComponentPreset.LENGTH to length.
+               this.length = this.stripWidth;
+               fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
+       }
+
+
        @Override
        public double getComponentCD(double mach) {
                double density = this.getMaterial().getDensity();
@@ -95,7 +123,7 @@ public class Streamer extends RecoveryDevice {
        
        @Override
        public String getComponentName() {
-               return "Streamer";
+               return trans.get ("Streamer.Streamer");
        }
        
        @Override