--- /dev/null
+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);
+ }
+
+}