1 package net.sf.openrocket.preset.loader;
3 import net.sf.openrocket.material.Material;
4 import net.sf.openrocket.preset.ComponentPreset;
5 import net.sf.openrocket.preset.ComponentPreset.Type;
6 import net.sf.openrocket.preset.TypedPropertyMap;
10 public class ParachuteLoader extends BaseComponentLoader {
12 private final MaterialHolder materials;
14 public ParachuteLoader(MaterialHolder materials, File theBasePath) {
15 super(materials, theBasePath);
16 this.materials = materials;
17 fileColumns.add(new IntegerColumnParser("n sides", ComponentPreset.SIDES));
18 fileColumns.add(new DoubleUnitColumnParser("OD","Units",ComponentPreset.DIAMETER));
19 fileColumns.add(new IntegerColumnParser("Shroud Count", ComponentPreset.LINE_COUNT));
20 fileColumns.add(new DoubleUnitColumnParser("Shroud Len", "Units", ComponentPreset.LINE_LENGTH));
21 fileColumns.add(new LineMaterialColumnParser(materials,"Shroud Material",ComponentPreset.LINE_MATERIAL));
22 fileColumns.add(new DoubleUnitColumnParser("Chute Thickness", "Units", ComponentPreset.THICKNESS));
23 fileColumns.add( new SurfaceMaterialColumnParser(materials,"Chute Material", ComponentPreset.MATERIAL));
28 protected Type getComponentPresetType() {
29 return ComponentPreset.Type.PARACHUTE;
34 protected RocksimComponentFileType getFileType() {
35 return RocksimComponentFileType.PARACHUTE;
40 protected void postProcess(TypedPropertyMap props) {
41 super.postProcess(props);
43 // Fix the material since some files use bulk materials for streamers.
44 Double thickness = props.get( ComponentPreset.THICKNESS );
45 Material.Surface material = (Material.Surface) props.get( ComponentPreset.MATERIAL );
47 material = materials.getSurfaceMaterial(material, thickness);
48 props.put(ComponentPreset.MATERIAL, material);