5e774a52684db18e8b61f01c18a598cbf6db0342
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / NoseConeLoader.java
1 package net.sf.openrocket.preset.loader;
2
3 import java.util.Map;
4
5 import net.sf.openrocket.material.Material;
6 import net.sf.openrocket.preset.ComponentPreset;
7 import net.sf.openrocket.preset.ComponentPreset.Type;
8 import net.sf.openrocket.preset.TypedPropertyMap;
9
10 public class NoseConeLoader extends BaseComponentLoader {
11
12         public NoseConeLoader(Map<String, Material> materials) {
13                 super(materials);
14                 fileColumns.add(new DoubleUnitColumnParser("Outer Dia","Units",ComponentPreset.AFT_OUTER_DIAMETER));
15                 fileColumns.add(new DoubleUnitColumnParser("Length","Units",ComponentPreset.LENGTH));
16                 fileColumns.add(new DoubleUnitColumnParser("Insert Length","Units",ComponentPreset.AFT_SHOULDER_LENGTH));
17                 fileColumns.add(new DoubleUnitColumnParser("Insert OD","Units",ComponentPreset.AFT_SHOULDER_DIAMETER));
18                 fileColumns.add(new DoubleUnitColumnParser("Thickness","Units",ComponentPreset.THICKNESS));
19                 fileColumns.add(new ShapeColumnParser() );
20         }
21
22         @Override
23         protected Type getComponentPresetType() {
24                 return ComponentPreset.Type.NOSE_CONE;
25         }
26
27         @Override
28         protected RocksimComponentFileType getFileType() {
29                 return RocksimComponentFileType.NOSE_CONE;
30         }
31
32         @Override
33         protected void postProcess(TypedPropertyMap props) {
34
35                 if ( props.containsKey( ComponentPreset.THICKNESS )) {
36                         double thickness = props.get(ComponentPreset.THICKNESS);
37                         if ( thickness == 0d ) {
38                                 props.remove( ComponentPreset.THICKNESS );
39                                 props.put(ComponentPreset.FILLED, true);
40                         }
41                 }
42                 super.postProcess(props);
43         }
44
45 }