InnerTubes use ComponentPresets BODY_TUBE.
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 18 Apr 2012 19:41:33 +0000 (19:41 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 18 Apr 2012 19:41:33 +0000 (19:41 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@566 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/rocketcomponent/InnerTube.java

index 0b8c92d242fbca6150d342fdbdc29400408263cb..937edbf5e1c0a51b46b0d8594eda3621324326ca 100644 (file)
@@ -6,6 +6,7 @@ import java.util.List;
 
 import net.sf.openrocket.l10n.Translator;
 import net.sf.openrocket.motor.Motor;
+import net.sf.openrocket.preset.ComponentPreset;
 import net.sf.openrocket.startup.Application;
 import net.sf.openrocket.util.BugException;
 import net.sf.openrocket.util.Coordinate;
@@ -77,7 +78,27 @@ public class InnerTube extends ThicknessRingComponent
                return InternalComponent.class.isAssignableFrom(type);
        }
        
-       
+       @Override
+       public ComponentPreset.Type getPresetType() {
+               return ComponentPreset.Type.BODY_TUBE;
+       }
+
+       @Override
+       protected void loadFromPreset(ComponentPreset preset) {
+               if ( preset.has(ComponentPreset.OUTER_DIAMETER) )  {
+                       double outerDiameter = preset.get(ComponentPreset.OUTER_DIAMETER);
+                       this.outerRadius = outerDiameter/2.0;
+                       if ( preset.has(ComponentPreset.INNER_DIAMETER) ) {
+                               double innerDiameter = preset.get(ComponentPreset.INNER_DIAMETER);
+                               this.thickness = (outerDiameter-innerDiameter) / 2.0;
+                       }
+               }
+
+               super.loadFromPreset(preset);
+
+               fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
+       }
+
 
        /////////////  Cluster methods  //////////////