Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / src / net / sf / openrocket / rocketcomponent / ThicknessRingComponent.java
index 4bded7079e72173eb68e45e7519aa75c5631b7f8..c2d0a9bd46829c823da5acc749ff73f5fab6d6e8 100644 (file)
@@ -1,5 +1,6 @@
 package net.sf.openrocket.rocketcomponent;
 
+import net.sf.openrocket.preset.ComponentPreset;
 import net.sf.openrocket.util.Coordinate;
 import net.sf.openrocket.util.MathUtil;
 
@@ -16,7 +17,24 @@ public abstract class ThicknessRingComponent extends RingComponent {
        protected double outerRadius = 0;
        protected double thickness = 0;
        
-       
+       @Override
+       protected void loadFromPreset(ComponentPreset preset) {
+               if ( preset.has(ComponentPreset.OUTER_DIAMETER) )  {
+                       this.outerRadiusAutomatic = false;
+                       this.innerRadiusAutomatic = false;
+                       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.MASS_CHANGE);
+
+       }
+
        @Override
        public double getOuterRadius() {
                if (isOuterRadiusAutomatic() && getParent() instanceof RadialParent) {
@@ -45,6 +63,8 @@ public abstract class ThicknessRingComponent extends RingComponent {
                if (thickness > outerRadius)
                        thickness = outerRadius;
                
+               clearPreset();
+               
                fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
        }
        
@@ -64,6 +84,8 @@ public abstract class ThicknessRingComponent extends RingComponent {
                
                this.thickness = thickness;
                
+               clearPreset();
+
                fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
        }