Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / NoseConeLoader.java
diff --git a/core/src/net/sf/openrocket/preset/loader/NoseConeLoader.java b/core/src/net/sf/openrocket/preset/loader/NoseConeLoader.java
new file mode 100644 (file)
index 0000000..8c8f407
--- /dev/null
@@ -0,0 +1,44 @@
+package net.sf.openrocket.preset.loader;
+
+import net.sf.openrocket.preset.ComponentPreset;
+import net.sf.openrocket.preset.ComponentPreset.Type;
+import net.sf.openrocket.preset.TypedPropertyMap;
+
+import java.io.File;
+
+public class NoseConeLoader extends BaseComponentLoader {
+
+       public NoseConeLoader(MaterialHolder materials, File theBasePath) {
+               super(materials, theBasePath);
+               fileColumns.add(new DoubleUnitColumnParser("Outer Dia","Units",ComponentPreset.AFT_OUTER_DIAMETER));
+               fileColumns.add(new DoubleUnitColumnParser("Length","Units",ComponentPreset.LENGTH));
+               fileColumns.add(new DoubleUnitColumnParser("Insert Length","Units",ComponentPreset.AFT_SHOULDER_LENGTH));
+               fileColumns.add(new DoubleUnitColumnParser("Insert OD","Units",ComponentPreset.AFT_SHOULDER_DIAMETER));
+               fileColumns.add(new DoubleUnitColumnParser("Thickness","Units",ComponentPreset.THICKNESS));
+               fileColumns.add(new ShapeColumnParser() );
+       }
+
+       @Override
+       protected Type getComponentPresetType() {
+               return ComponentPreset.Type.NOSE_CONE;
+       }
+
+       @Override
+       protected RocksimComponentFileType getFileType() {
+               return RocksimComponentFileType.NOSE_CONE;
+       }
+
+       @Override
+       protected void postProcess(TypedPropertyMap props) {
+
+               if ( props.containsKey( ComponentPreset.THICKNESS )) {
+                       double thickness = props.get(ComponentPreset.THICKNESS);
+                       if ( thickness == 0d ) {
+                               props.remove( ComponentPreset.THICKNESS );
+                               props.put(ComponentPreset.FILLED, true);
+                       }
+               }
+               super.postProcess(props);
+       }
+
+}